[project] name = "pdoc" description = "API Documentation for Python Projects" readme = "README.md" requires-python = ">=3.10" license = { text="MIT-0" } authors = [{name = "Maximilian Hils", email = "pdoc@maximilianhils.com"}] dynamic = ["version"] dependencies = [ "Jinja2 >= 2.11.0", "pygments >= 2.12.0", "MarkupSafe >= 1.1.1", "markdown2 >= 2.5.4", ] classifiers = [ "Topic :: Documentation", "Topic :: Software Development :: Documentation", "Topic :: Utilities", "License :: Public Domain", "Development Status :: 5 - Production/Stable", "Environment :: Console", "Intended Audience :: Developers", "Operating System :: OS Independent", "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", "Typing :: Typed", ] [project.urls] Homepage = "https://pdoc.dev" Source = "https://github.com/mitmproxy/pdoc/" Documentation = "https://pdoc.dev/docs/pdoc.html" Issues = "https://github.com/mitmproxy/pdoc/issues" [project.scripts] pdoc = "pdoc.__main__:cli" [dependency-groups] dev = [ "tox>=4.21.2", "tox-uv>=1.13.0", "ruff>=0.6.9", "mypy>=1.11.2", "types-pygments>=2.18.0.20240506", "pytest>=8.3.3", "pytest-cov>=5.0.0", "pytest-timeout>=2.3.1", "hypothesis>=6.113.0", "pdoc-pyo3-sample-library>=1.0.11", "pydantic>=2.12.0", ] [build-system] requires = ["setuptools"] build-backend = "setuptools.build_meta" [tool.setuptools.dynamic] version = {attr = "pdoc.__version__"} [tool.setuptools.packages.find] include = ["pdoc*"] # continue exclude: https://github.com/nedbat/coveragepy/issues/198 [tool.coverage.report] show_missing = true exclude_lines = [ "pragma: no cover", "@overload", "if TYPE_CHECKING:", "pass", "continue", ] [tool.pytest.ini_options] testpaths = "test" addopts = "-p no:xdist" timeout = 120 markers = [ "slow: marks tests as slow.", ] [[tool.mypy.overrides]] module = "pytest.*" ignore_missing_imports = true [[tool.mypy.overrides]] module = "demopackage2" ignore_missing_imports = true [[tool.mypy.overrides]] module = "markdown2" ignore_missing_imports = true [tool.ruff] extend-exclude = ["test/testdata/demo.py"] target-version = "py310" [tool.ruff.lint] select = ["E", "F", "I"] ignore = ["E501"] isort = { force-single-line = true, force-sort-within-sections = true } [tool.ruff.per-file-target-version] "test/testdata/misc_py312.py" = "py312" "test/testdata/misc_py313.py" = "py313" "test/testdata/misc_py314.py" = "py314" [tool.tox] legacy_tox_ini = """ [tox] envlist = lint, py toxworkdir = {env:TOX_WORK_DIR:.tox} runner = uv-venv-lock-runner [testenv] commands = pdoc --version pytest --cov=pdoc --cov-report term-missing {posargs:-m "not slow"} [testenv:old-dependencies] uv_resolution = lowest [testenv:lint] commands = ruff check . {posargs} mypy pdoc test {posargs} """