TLDParse
Split a given domain into its different parts (subdomain, domain, suffix).
It was built in the aim to be very fast. To do so, it starts in reverse, going from the TLD down to any subdomains.
Installation
pip install tldparse
Basic usage
The following code will show you the basic usage you can have from this library.
from tldparse import DomainResult
parsed = DomainResult('https://example.github.io/with/some/path')
print(parsed.tld) # io
print(parsed.domain) # github
print(parsed.subdomain) # example
Common usage
A common usage is to check whereas the given domain is the fqdn or if it has subdomains
from tldparse import DomainResult
email = 'user@sub.domain.com'
mbox, domain = email.split('@')
parsed = DomainResult(domain)
assert parsed.fqdn == domain, "Please register using a domain with no subdomain parts"
Advanced usage
Replacing TLDParse with a custom one:
DomainResult class use the default TLDParse object that relies on the list of suffixes provided by Mozilla.
(The list is freely available at https://publicsuffix.org/list/public_suffix_list.dat)
But you can either pass another parser, such as:
class MyCustomParser:
def __call__(self, domain, private=True):
# PLEASE DON'T DO THAT
return domain.rsplit('.', 2) # Consider a TLD has only one part. Ignores things such as ".co.uk"
from tldparse import DomainResult
parser = MyCostumParser()
result = DomainResult('example.github.com', parser=parser)
print(result.fqdn) # github.com
result = DomainResult('bbc.co.uk', parser=parser)
print(result.fqdn) # co.uk # Too bad
Using private subdomains:
By default, the library will consider the subdomains as part of the fqdn for certain domain.
But you can change this behavior by setting the private parameter to True.
from tldparse import DomainResult
result = DomainResult('example.github.io')
print(result.fqdn) # example.github.io
result = DomainResult('example.github.io', private=False)
print(result.fqdn) # github.io
Adding/Removing TLDs entries:
You can add/remove entries to the parser by using the add/remove methods of the tldparse object:
from .tldparse import TLDParse, DomainResult
# Adding a custom domain
parser.add('weebly.co.uk') # added in private
result = DomainResult('example.weebly.co.uk', parser=parser, private=False)
print(result.suffix) # 'co.uk'
print(result.domain) # 'weebly'
print(result.subdomain) # 'example'
result = DomainResult('example.weebly.co.uk', parser=parser)
print(result.suffix) # 'weebly.co.uk'
print(result.domain) # 'example'
# Removing a domain
TLDParse.remove('github.io')
result = DomainResult('example.github.io')
print(result.suffix) # 'io'
print(result.domain) # 'github'
print(result.subdomain) # 'example'
Support
If you find an issue, please open a support requests, or even better, a Pull Requests :)
Thank you!
Metadata
Release files for tldparse 1.0.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| tldparse-1.0.5.tar.gz | 93.5 kB | Without provenance | Details for tldparse-1.0.5.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| tldparse-1.0.5-py2.py3-none-any.whl | Python 2, Python 3 | none | any | Details for tldparse-1.0.5-py2.py3-none-any.whl |
Total release size: 185.4 kB
Release files / tldparse-1.0.5.tar.gz
| Download URL | tldparse-1.0.5.tar.gz |
|---|---|
| Size | 93.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
47ed932c0937fec8545ad2b7d89429eea941b9e3301223c363db2d3f8f343412
|
|
BLAKE2b-256 checksum How to use checksums |
bbd323776af21d592a1de87fc3b78dc7b79a74180e91888112f6fd9234f03797
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.12.6
|
Release files / tldparse-1.0.5-py2.py3-none-any.whl
| Download URL | tldparse-1.0.5-py2.py3-none-any.whl |
|---|---|
| Size | 91.9 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
4758810bf461246807f89da92a90c4120cd3675ee423c2431a0a5cfacd52d9eb
|
|
BLAKE2b-256 checksum How to use checksums |
fce243b77ccbf36814e65a8111d121ab3831cf1fba33b0ca4564c47b1af8c4db
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.12.6
|
Security for tldparse 1.0.5
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.