/ pyproject.toml
pyproject.toml
  1  [build-system]
  2  requires = ["pdm-backend"]
  3  build-backend = "pdm.backend"
  4  
  5  [project]
  6  name = "aria2p"
  7  description = "Command-line tool and library to interact with an aria2c daemon process with JSON-RPC."
  8  authors = [{name = "Timothée Mazzucotelli", email = "dev@pawamoy.fr"}]
  9  license = {text = "ISC"}
 10  readme = "README.md"
 11  requires-python = ">=3.9"
 12  keywords = ["aria2", "aria2c", "aria2-cli"]
 13  dynamic = ["version"]
 14  classifiers = [
 15      "Development Status :: 4 - Beta",
 16      "Intended Audience :: Developers",
 17      "Programming Language :: Python",
 18      "Programming Language :: Python :: 3",
 19      "Programming Language :: Python :: 3 :: Only",
 20      "Programming Language :: Python :: 3.9",
 21      "Programming Language :: Python :: 3.10",
 22      "Programming Language :: Python :: 3.11",
 23      "Programming Language :: Python :: 3.12",
 24      "Programming Language :: Python :: 3.13",
 25      "Programming Language :: Python :: 3.14",
 26      "Topic :: Software Development",
 27      "Topic :: Utilities",
 28      "Typing :: Typed",
 29  ]
 30  dependencies = [
 31      "loguru>=0.5",
 32      "platformdirs>=4.2",
 33      "requests>=2.19",
 34      "tomli>=2.0; python_version < '3.11'",
 35      "websocket-client>=0.58",
 36  ]
 37  
 38  [project.optional-dependencies]
 39  tui = [
 40      "asciimatics>=1.13",
 41      "pyperclip>=1.8",
 42  ]
 43  
 44  [project.urls]
 45  Homepage = "https://pawamoy.github.io/aria2p"
 46  Documentation = "https://pawamoy.github.io/aria2p"
 47  Changelog = "https://pawamoy.github.io/aria2p/changelog"
 48  Repository = "https://github.com/pawamoy/aria2p"
 49  Issues = "https://github.com/pawamoy/aria2p/issues"
 50  Discussions = "https://github.com/pawamoy/aria2p/discussions"
 51  Gitter = "https://gitter.im/aria2p/community"
 52  Funding = "https://github.com/sponsors/pawamoy"
 53  
 54  [project.scripts]
 55  aria2p = "aria2p.cli.main:main"
 56  
 57  [tool.pdm.version]
 58  source = "call"
 59  getter = "scripts.get_version:get_version"
 60  
 61  [tool.pdm.build]
 62  # Include as much as possible in the source distribution, to help redistributors.
 63  excludes = ["**/.pytest_cache"]
 64  source-includes = [
 65      "config",
 66      "docs",
 67      "scripts",
 68      "share",
 69      "tests",
 70      "duties.py",
 71      "mkdocs.yml",
 72      "*.md",
 73      "LICENSE",
 74  ]
 75  
 76  [tool.pdm.build.wheel-data]
 77  # Manual pages can be included in the wheel.
 78  # Depending on the installation tool, they will be accessible to users.
 79  # pipx supports it, uv does not yet, see https://github.com/astral-sh/uv/issues/4731.
 80  data = [
 81      {path = "share/**/*", relative-to = "."},
 82  ]
 83  
 84  [dependency-groups]
 85  dev = [
 86      # maintenance
 87      "build>=1.2",
 88      "git-changelog>=2.5",
 89      "twine>=5.1",
 90  
 91      # ci
 92      "duty>=1.4",
 93      "ruff>=0.4",
 94      "pytest>=8.2",
 95      "pytest-cov>=5.0",
 96      "pytest-randomly>=3.15",
 97      "pytest-rerunfailures>=11.1",
 98      "pytest-xdist>=3.6",
 99      "mypy>=1.10",
100      "types-markdown>=3.6",
101      "types-pyyaml>=6.0",
102      "types-requests>=2.32",
103      "fastapi>=0.100",
104      "psutil>=5.9.5",
105      "responses>=0.23",
106      "uvicorn>=0.23",
107  
108      # docs
109      "black>=24.4",
110      "markdown-callouts>=0.4",
111      "markdown-exec>=1.8",
112      "mkdocs>=1.6",
113      "mkdocs-coverage>=1.0",
114      "mkdocs-gen-files>=0.5",
115      "mkdocs-git-revision-date-localized-plugin>=1.2",
116      "mkdocs-literate-nav>=0.6",
117      "mkdocs-material>=9.5",
118      "mkdocs-minify-plugin>=0.8",
119      "mkdocstrings[python]>=0.25",
120      # YORE: EOL 3.10: Remove line.
121      "tomli>=2.0; python_version < '3.11'",
122  ]