qbit_manage/pyproject.toml
bobokun 93ba10260e
feat(build): add PyPI publishing workflow and package distribution setup
- Add GitHub Actions workflow for automated PyPI publishing with trusted publishing support
- Add comprehensive Makefile targets for building, testing, and uploading packages
- Configure project scripts entry point for CLI installation via pip/uv
- Add version command line argument and main() entry point function
- Update gitignore to exclude distribution files
- Bump version to 4.5.5-develop13
- Add installation instructions for pip-based installation
2025-08-23 16:21:48 -04:00

68 lines
1.6 KiB
TOML

[build-system]
requires = ["setuptools>=42", "wheel"]
build-backend = "setuptools.build_meta"
# Keep using setup.py for version handling
# Dependencies are specified here for uv to use
[project]
name = "qbit_manage"
# Version is dynamically determined from setup.py
dynamic = ["version"]
description = "This tool will help manage tedious tasks in qBittorrent and automate them. Tag, categorize, remove Orphaned data, remove unregistered torrents and much much more."
readme = "README.md"
requires-python = ">=3.9"
license = "MIT"
authors = [
{name = "bobokun"},
]
dependencies = [
"bencodepy==0.9.5",
"croniter==6.0.0",
"fastapi==0.116.1",
"GitPython==3.1.45",
"humanize==4.12.3",
"pytimeparse2==1.7.1",
"qbittorrent-api==2025.7.0",
"requests==2.32.5",
"retrying==1.4.2",
"ruamel.yaml==0.18.15",
"uvicorn==0.35.0",
]
[project.scripts]
qbit-manage = "qbit_manage:main"
[project.urls]
Homepage = "https://github.com/StuffAnThings"
Repository = "https://github.com/StuffAnThings/qbit_manage"
[project.optional-dependencies]
dev = [
"pre-commit==4.3.0",
"ruff==0.12.10",
]
[tool.ruff]
line-length = 130
[tool.ruff.lint]
select = [
"I", # isort - import order
"UP", # pyupgrade
"T10", # debugger
"E", # pycodestyle errors
"W", # pycodestyle warnings
"F", # pyflakes
]
ignore = [
"E722", # E722 Do not use bare except, specify exception instead
"E402", # E402 module level import not at top of file
]
[tool.ruff.lint.isort]
force-single-line = true
[tool.ruff.format]
line-ending = "auto"