republisher/pyproject.toml

108 lines
2.3 KiB
TOML

[project]
name = "republisher-redux"
version = "0.1.0"
description = "Mirror RSS and Atom feeds completely offline"
readme = "README.md"
authors = [{ name = "Abel Luck", email = "abel@guardianproject.info" }]
requires-python = ">=3.13"
dependencies = [
"scrapy>=2.11.1,<3.0.0",
"prometheus-client>=0.20.0,<0.21.0",
"python-dateutil>=2.9.0.post0,<3.0.0",
"colorlog>=6.8.2,<7.0.0",
"feedparser>=6.0.11,<7.0.0",
"lxml>=5.2.1,<6.0.0",
"pillow>=10.3.0,<11.0.0",
"ffmpeg-python>=0.2.0,<0.3.0",
"Quart>=0.20.0,<0.21.0",
"apscheduler>=3.11.0,<4.0.0",
"aiosqlite>=0.21.0,<0.22.0",
"datastar-py>=0.8.0,<0.9.0",
"greenlet>=3.2.4,<4.0.0",
"htpy>=25.12.0,<26.0.0",
"peewee>=3.19.0,<4.0.0",
"pygea @ git+https://guardianproject.dev/anynews/pygea.git",
]
[project.scripts]
repub = "repub.entrypoint:entrypoint"
[dependency-groups]
dev = [
"pytest>=8.1.1,<9.0.0",
"black>=24.4.0,<25.0.0",
"flake8>=7.0.0,<8.0.0",
"bandit>=1.7.8,<2.0.0",
"pyright>=1.1.403,<2.0.0",
"types-PyYAML>=6.0.12.20240311,<7.0.0",
"isort>=5.13.2,<6.0.0",
"flake8-black>=0.3.6,<0.4.0",
]
[build-system]
requires = ["setuptools>=68", "wheel"]
build-backend = "setuptools.build_meta"
[tool.setuptools]
include-package-data = true
[tool.setuptools.packages.find]
where = ["."]
include = ["repub*"]
[tool.setuptools.package-data]
repub = ["sql/*.sql", "static/*.css", "static/*.js"]
[tool.pytest.ini_options]
testpaths = ["tests"]
[tool.isort]
py_version = 311
profile = "black"
src_paths = ["repub", "tests"]
[tool.black]
line-length = 88
target-version = ['py313']
[tool.pylint.format]
max-line-length = "88"
[tool.pyright]
include = ["repub", "tests"]
exclude = [
"repub/crawl.py",
"repub/exporters.py",
"repub/media.py",
"repub/rss.py",
"repub/spiders",
"repub/srcset.py",
]
pythonVersion = "3.13"
typeCheckingMode = "basic"
reportMissingImports = false
[tool.flake8]
ignore = [
"D100",
"D101",
"D102",
"D104",
"D107",
]
exclude = [
".git",
"__pycache__",
"docs/source/conf.py",
"build",
"dist",
"data/db/",
"kealytics/tests/",
"*.pyc",
"*.egg-info",
".cache",
".eggs",
]
max-complexity = 10
import-order-style = "cryptography"
application-import-names = ["repub"]
format = "${cyan}%(path)s${reset}:${yellow_bold}%(row)d${reset}:${green_bold}%(col)d${reset}: ${red_bold}%(code)s${reset} %(text)s"