Skip to main content

Democritus Domains

PyPI CI Lint codecov The Democritus Project uses semver version 2.0.0 The Democritus Project uses ruff to format and lint code License: LGPL v3

Democritus functions[1] for working with domains.

[1] Democritus functions are simple, effective, modular, well-tested, and well-documented Python functions.

We use d8s (pronounced "dee-eights") as an abbreviation for democritus (you can read more about this here).

Installation

pip install d8s-domains

Usage

You import the library like:

from d8s_domains import *

Once imported, you can use any of the functions listed below.

Functions

  • def is_domain(possible_domain: str) -> bool:
        """Check if the given string is a domain."""
    
  • def domain_examples(n: int = 10) -> List[str]:
        """Create n domain names."""
    
  • def domains_find(text: str, **kwargs: bool) -> List[str]:
        """Parse domain names from the given text."""
    
  • def domain_dns(domain: str) -> str:
        """Get the DNS results for the given domain."""
    
  • def domain_certificate_peers(domain: str) -> List[str]:
        """Return a list of all domains sharing a certificate with the given domain."""
    
  • def domain_whois(domain: str) -> Optional[Dict[str, Any]]:
        """."""
    
  • def domain_subdomains(domain_name: str) -> str:
        """Get the subdomains for the given domain name."""
    
  • def domain_second_level_name(domain_name: str) -> str:
        """Get the second level name for the given domain name (e.g. google from https://google.co.uk)."""
    
  • def domain_tld(domain_name: str) -> str:
        """Get the top level domain for the given domain name."""
    
  • def domain_rank(domain_name: str) -> int:
        """."""
    
  • def domain_is_member(domain_to_check: str, domain_base: str) -> bool:
        """Given two domains, check if the first domain is a member of the second domain.
    A member means it is either the domain itself, or a subdomain of the domain."""
    
  • def domain_as_punycode(domain_name: str) -> str:
        """Convert the given domain name to Punycode (https://en.wikipedia.org/wiki/Punycode)."""
    
  • def domain_as_unicode(domain_name: str) -> str:
        """Convert a given domain name to Unicode (https://en.wikipedia.org/wiki/Unicode)."""
    
  • def tlds() -> List[str]:
        """Get the top level domains from https://iana.org/."""
    
  • def is_tld(possible_tld: str) -> bool:
        """Return whether or not the possible_tld is a valid tld."""
    

Development

👋  If you want to get involved in this project, we have some short, helpful guides below:

If you have any questions or there is anything we did not cover, please raise an issue and we'll be happy to help.

Credits

This package was created with Cookiecutter and Floyd Hightower's Python project template.

Metadata

Release files for d8s-domains 0.7.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 d8s-domains 0.7.0
File Size Uploaded
d8s_domains-0.7.0.tar.gz 95.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for d8s-domains 0.7.0
File Interpreter ABI Platform
d8s_domains-0.7.0-py3-none-any.whl Python 3 none any Details

Total release size: 115.8 kB

Release files / d8s_domains-0.7.0.tar.gz

Download URL d8s_domains-0.7.0.tar.gz
Size 95.6 kB
Tags Source
SHA-256 checksum
How to use checksums
e9627eb843389e8d34d6c10cd9913952fe1220c0b68983cfea73017354d270a5
BLAKE2b-256 checksum
How to use checksums
8e9b038d8978d6e1d8f3d858e70d2202dfc4257b57695bac06d3f159291bc63b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 1, 2026.

Transparency log

Release files / d8s_domains-0.7.0-py3-none-any.whl

Download URL d8s_domains-0.7.0-py3-none-any.whl
Size 20.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c94a3b328edd1023eaa7697f5dc2a6d47bd594a5f173cc3a0b7f45716d1befb0
BLAKE2b-256 checksum
How to use checksums
8643e65a5cb1425449619303d03c72db09bb5d6c97f4def0710035687be7698f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 1, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.7.0 This release

2 release files

0.6.0

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

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