1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113
|
[project]
name = "tldextract"
authors = [{name = "John Kurkowski", email = "john.kurkowski@gmail.com"}]
license = "BSD-3-Clause"
license-files = ["LICENSE"]
description = "Accurately separates a URL's subdomain, domain, and public suffix, using the Public Suffix List (PSL). By default, this includes the public ICANN TLDs and their exceptions. You can optionally support the Public Suffix List's private domains as well."
keywords = [
"tld",
"domain",
"subdomain",
"url",
"parse",
"extract",
"urlparse",
"urlsplit",
"public",
"suffix",
"list",
"publicsuffix",
"publicsuffixlist",
]
classifiers = [
"Development Status :: 5 - Production/Stable",
"Topic :: Utilities",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
]
requires-python = ">=3.10"
dynamic = ["version"]
readme = "README.md"
dependencies = [
"idna",
"requests>=2.1.0",
"requests-file>=1.4",
"filelock>=3.0.8",
]
[project.optional-dependencies]
release = [
"build",
"twine",
]
testing = [
"mypy",
"pytest",
"pytest-gitignore",
"pytest-mock",
"responses",
"ruff",
"syrupy",
"tox",
"tox-uv",
"types-filelock",
"types-requests",
]
[project.urls]
Homepage = "https://github.com/john-kurkowski/tldextract"
[project.scripts]
tldextract = "tldextract.cli:main"
[build-system]
requires = [
"setuptools>=80",
"setuptools-scm>=8",
]
build-backend = "setuptools.build_meta"
[tool.setuptools]
packages = ["tldextract"]
include-package-data = true
[tool.setuptools_scm]
write_to = "tldextract/_version.py"
[tool.mypy]
explicit_package_bases = true
strict = true
[tool.pytest.ini_options]
addopts = "--doctest-modules"
filterwarnings = [
"ignore:The 'registered_domain' property is deprecated:DeprecationWarning:tldextract.*:"
]
[tool.ruff.format]
docstring-code-format = true
[tool.ruff.lint]
select = [
"A",
"B",
"C",
"D",
"E",
"F",
"I",
"N",
"UP",
"W",
]
ignore = [
"E501", # line too long; if formatter does its job, not worried about the rare long line
]
[tool.ruff.lint.pydocstyle]
convention = "pep257"
|