Skip to content

Latest commit

 

History

History
65 lines (46 loc) · 1.91 KB

README.md

File metadata and controls

65 lines (46 loc) · 1.91 KB

pgconnstr

A Python module for parsing and manipulating PostgreSQL libpq style connection strings and URIs.

PyPI version PyPI Supported Python Versions GitHub license GitHub Actions (Tests)

License

LGPLv3. See the file LICENSE for details.

class ConnectionString

pgconnstr.ConnectionString represents a libpq connection string.

>>> from pgconnstr import ConnectionString
>>> c = ConnectionString(host='1.2.3.4', dbname='mydb', port=5432, user='anon',
...                      password="sec'ret", application_name='myapp')
...
>>> print(str(c))
application_name=myapp dbname=mydb host=1.2.3.4 password=sec\'ret port=5432 user=anon
>>> print(str(ConnectionString(str(c), dbname='otherdb')))
application_name=myapp dbname=otherdb host=1.2.3.4 password=sec\'ret port=5432 user=anon

Components may be accessed as attributes.

>>> c.dbname
'mydb'
>>> c.host
'1.2.3.4'
>>> c.port
'5432'

Standard components will default to None if not explicitly set. See https://www.postgresql.org/docs/12/libpq-connect.html#LIBPQ-PARAMKEYWORDS for the list of standard keywords.

>>> c.connect_timeout is None
True

The standard URI format is also accessible:

>>> print(c.uri)
postgresql://anon:sec%27ret@1.2.3.4:5432/mydb?application_name=myapp

>>> print(ConnectionString(c, host='2001:db8::1234').uri)
postgresql://anon:sec%27ret@[2001:db8::1234]:5432/mydb?application_name=myapp