Skip to main content

dsnparse

Parse dsn connection url strings. Responsible for parsing dsn strings in projects like prom and morp.

This is a generic version of dj-database-url.

So, now you can create dsns like this:

scheme://user:pass@host:port/path?query=query_val#fragment

For example, let's look at a prom dsn:

prom.interface.postgres.Interface://testuser:testpw@localhost/testdb

Now let's parse it:

import dsnparse

dsn = "prom.interface.postgres.Interface://testuser:testpw@localhost:1234/testdb"
r = dsnparse.parse(dsn)

print(r.scheme) # prom.interface.postgres.Interface
print(r.username) # testuser
print(r.password) # testpw
print(r.host) # localhost
print(r.port) # 1234
print(r.hostloc) # localhost:1234
print(r.paths) # ['testdb']

Also, dsnparse can easily use environment variables:

r = dsnparse.parse_environ('ENVIRONMENT_VARIABLE_NAME')

I tried to keep the interface very similar to urlparse so it will feel familiar to use.

Customizing

By default, dsnparse.parse(dsn) returns a ParseResult instance, but that can be customized:

import dsnparse

class MyResult(dsnparse.ParseResult):
    def configure(self):
        # expose an interface property
        self.interface = self.scheme

dsn = "Interface://testuser:testpw@localhost:1234/testdb"
r = dsnparse.parse(dsn, parse_class=MyResult)
print(isinstance(r, MyResult)) # True
print(r.interface) # Interface

Install

Use pip:

pip install dsnparse

or use pip with github:

pip install -U "git+https://github.com/Jaymon/dsnparse#egg=dsnparse"

Release files for dsnparse 0.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dsnparse 0.4.0
File Size Uploaded
dsnparse-0.4.0.tar.gz 9.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for dsnparse 0.4.0
File Interpreter ABI Platform
dsnparse-0.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 18.5 kB

Release files / dsnparse-0.4.0.tar.gz

Download URL dsnparse-0.4.0.tar.gz
Size 9.3 kB
Tags Source
SHA-256 checksum
How to use checksums
301a251ef74832dccfb3535650b270749c8c7ef49437847a4cd3ed353b873ff2
BLAKE2b-256 checksum
How to use checksums
a11ff906185824fe38ca95131a736ec5a78774c437066747fed131f1debcedaa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.10.14

Release files / dsnparse-0.4.0-py3-none-any.whl

Download URL dsnparse-0.4.0-py3-none-any.whl
Size 9.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
67db9977a53cf78b1fb5d3d5641cd55442370560935fdf821edb587946b8c67d
BLAKE2b-256 checksum
How to use checksums
922d77561298370e748428a2b5b753ab41c0b8c946b4e2d7a5c1f0b81ff5dd42
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.10.14

Release history Release notifications | RSS feed

This release

0.4.0 This release

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.1

1 release file

0.2.0

1 release file

0.1.15

1 release file

0.1.14

1 release file

0.1.13

1 release file

0.1.12

1 release file

0.1.11

1 release file

0.1.10

1 release file

0.1.9

1 release file

0.1.8

1 release file

0.1.5

1 release file

0.1.4

1 release file

0.1.3

1 release file

0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page