Skip to main content

A tool for parsing and manipulating PostgreSQL libpq style connection strings and URIs

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pgconnstr-1.0.1.zip (8.9 kB view hashes)

Uploaded Source

Built Distribution

pgconnstr-1.0.1-py2.py3-none-any.whl (7.5 kB view hashes)

Uploaded Python 2 Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page