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

[project]
name = "griffe"
description = """Signatures for entire Python programs. \
Extract the structure, the frame, the skeleton of your project, \
to generate API documentation or find breaking changes in your API."""
authors = [{name = "Timothée Mazzucotelli", email = "pawamoy@pm.me"}]
license = {text = "ISC"}
readme = "README.md"
requires-python = ">=3.8"
keywords = ["api", "signature", "breaking-changes", "static-analysis", "dynamic-analysis"]
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.8",
    "Programming Language :: Python :: 3.9",
    "Programming Language :: Python :: 3.10",
    "Programming Language :: Python :: 3.11",
    "Programming Language :: Python :: 3.12",
    "Topic :: Documentation",
    "Topic :: Software Development",
    "Topic :: Software Development :: Documentation",
    "Topic :: Utilities",
    "Typing :: Typed",
]
dependencies = [
    "colorama>=0.4",
]

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

[project.scripts]
griffe = "griffe.cli:main"

[tool.pdm]
version = {source = "scm"}
plugins = [
    "pdm-multirun",
]

[tool.pdm.build]
package-dir = "src"
editable-backend = "editables"

[tool.pdm.dev-dependencies]
duty = ["duty>=0.10"]
ci-quality = ["griffe[duty,docs,quality,typing,security]"]
ci-tests = ["griffe[duty,tests]"]
docs = [
    "black>=23.9",
    "griffe-inherited-docstrings>=1.0",
    "markdown-callouts>=0.3",
    "markdown-exec>=1.7",
    "mkdocs>=1.5",
    "mkdocs-coverage>=1.0",
    "mkdocs-gen-files>=0.5",
    "mkdocs-git-committers-plugin-2>=1.2",
    "mkdocs-literate-nav>=0.6",
    "mkdocs-material>=9.4",
    "mkdocs-minify-plugin>=0.7",
    "mkdocstrings[python]>=0.23",
    "rich>=12.6",
    "tomli>=2.0; python_version < '3.11'",
]
maintain = [
    "black>=23.9",
    "blacken-docs>=1.16",
    "git-changelog>=2.3",
]
quality = [
    "ruff>=0.0",
]
tests = [
    "jsonschema>=4.17",
    "pysource-codegen>=0.4",
    "pysource-minimize>=0.5",
    "pytest>=7.4",
    "pytest-cov>=4.1",
    "pytest-randomly>=3.15",
    "pytest-xdist>=3.3",
]
typing = [
    "mypy>=1.5",
    "types-markdown>=3.5",
    "types-pyyaml>=6.0",
]
security = [
    "safety>=2.3",
]
