[build-system]
requires = ["pdm-backend"]
build-backend = "pdm.backend"

[project]
name = "mkdocstrings"
description = "Automatic documentation from sources, for MkDocs."
authors = [{name = "Timothée Mazzucotelli", email = "dev@pawamoy.fr"}]
license = "ISC"
license-files = ["LICENSE"]
readme = "README.md"
requires-python = ">=3.10"
keywords = ["mkdocs", "mkdocs-plugin", "docstrings", "autodoc", "documentation"]
dynamic = ["version"]
classifiers = [
    "Development Status :: 4 - Beta",
    "Intended Audience :: Developers",
    "Programming Language :: Python",
    "Programming Language :: Python :: 3",
    "Programming Language :: Python :: 3 :: Only",
    "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",
    "Topic :: Documentation",
    "Topic :: Software Development",
    "Topic :: Software Development :: Documentation",
    "Topic :: Utilities",
    "Typing :: Typed",
]
dependencies = [
    "Jinja2>=3.1",
    "Markdown>=3.6",
    "MarkupSafe>=1.1",
    "mkdocs>=1.6",
    "mkdocs-autorefs>=1.4",
    "pymdown-extensions>=6.3",
]

[project.optional-dependencies]
crystal = ["mkdocstrings-crystal>=0.3.4"]
python-legacy = ["mkdocstrings-python-legacy>=0.2.1"]
python = ["mkdocstrings-python>=1.16.2"]

[project.urls]
Homepage = "https://mkdocstrings.github.io"
Documentation = "https://mkdocstrings.github.io"
Changelog = "https://mkdocstrings.github.io/changelog"
Repository = "https://github.com/mkdocstrings/mkdocstrings"
Issues = "https://github.com/mkdocstrings/mkdocstrings/issues"
Discussions = "https://github.com/mkdocstrings/mkdocstrings/discussions"
Gitter = "https://gitter.im/mkdocstrings/community"
Funding = "https://github.com/sponsors/pawamoy"

[project.entry-points."mkdocs.plugins"]
mkdocstrings = "mkdocstrings:MkdocstringsPlugin"

[tool.pdm.version]
source = "call"
getter = "scripts.get_version:get_version"

[tool.pdm.build]
# Include as much as possible in the source distribution, to help redistributors.
excludes = ["**/.pytest_cache"]
source-includes = [
    "config",
    "docs",
    "scripts",
    "share",
    "tests",
    "duties.py",
    "zensical.toml",
    "*.md",
    "LICENSE",
]

[tool.pdm.build.wheel-data]
# Manual pages can be included in the wheel.
# Depending on the installation tool, they will be accessible to users.
# pipx supports it, uv does not yet, see https://github.com/astral-sh/uv/issues/4731.
data = [
    {path = "share/**/*", relative-to = "."},
]

[dependency-groups]
maintain = [
    "git-changelog>=2.5",
    "twine>=5.1",
    "yore>=0.3.3",
]
ci = [
    "dirty-equals>=0.9",
    "duty>=1.6",
    "griffe>=2.0",
    "pytest>=8.2",
    "pytest-cov>=5.0",
    "pytest-randomly>=3.15",
    "pytest-xdist>=3.6",
    "ruff>=0.4",
    "ty>=0.0.14",
    "types-markdown>=3.6",
    "types-pyyaml>=6.0",
]
 docs = [
    "ghp-import>=2.1",
    "markdown-callouts>=0.4",
    "markdown-exec>=1.8",
    "mkdocstrings[python]>=0.29",
    # YORE: EOL 3.10: Remove line.
    "tomli>=2.0; python_version < '3.11'",
    "zensical>=0.0.21",
]

[tool.uv]
default-groups = ["maintain", "ci", "docs"]
