switch to uv and to nix flakes

This commit is contained in:
Abel Luck 2026-03-29 12:59:08 +02:00
parent 14005f36ce
commit b1bdef2d5d
20 changed files with 1522 additions and 1751 deletions

View file

@ -1,71 +1,70 @@
[tool.poetry]
name = "repub"
[project]
name = "republisher-redux"
version = "0.1.0"
description = ""
authors = ["Abel Luck <abel@guardianproject.info>"]
description = "Mirror RSS and Atom feeds completely offline"
readme = "README.md"
#packages = [{include = "repub", from = "repub"}]
[tool.poetry.scripts]
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",
]
[project.scripts]
repub = "repub.entrypoint:entrypoint"
[tool.poetry.dependencies]
python = "^3.11"
scrapy = "^2.11.1"
prometheus-client = "^0.20.0"
python-dateutil = "^2.9.0.post0"
colorlog = "^6.8.2"
feedparser = "^6.0.11"
lxml = "^5.2.1"
pillow = "^10.3.0"
ffmpeg-python = "^0.2.0"
[dependency-groups]
dev = [
"pytest>=8.1.1,<9.0.0",
"black>=24.4.0,<25.0.0",
"flake8>=7.0.0,<8.0.0",
"mypy>=1.9.0,<2.0.0",
"bandit>=1.7.8,<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 = ["poetry-core"]
build-backend = "poetry.core.masonry.api"
requires = ["setuptools>=68", "wheel"]
build-backend = "setuptools.build_meta"
[tool.setuptools]
include-package-data = true
[tool.poetry.dev-dependencies]
pytest = "^8.1.1"
black = "^24.4.0"
flake8 = "^7.0.0"
mypy = "^1.9.0"
bandit = "^1.7.8"
types-PyYAML = "^6.0.12.20240311"
isort = "^5.13.2"
flake8-black = "^0.3.6"
[tool.setuptools.packages.find]
where = ["."]
include = ["repub*"]
[tool.pytest.ini_options]
testpaths = ["tests"]
[tool.isort]
py_version = 310
py_version = 311
profile = "black"
src_paths = ["src", "tests"]
src_paths = ["repub", "tests"]
[tool.black]
line-length = 88
target-version = ['py310']
target-version = ['py313']
[tool.mypy]
files = "gm,tests"
files = "repub,tests"
ignore_missing_imports = true
follow_imports = "normal"
# Ensure full coverage
disallow_untyped_calls = true
#disallow_untyped_defs = true
#disallow_incomplete_defs = true
#disallow_untyped_decorators = true
#check_untyped_defs = true
# Restrict dynamic typing
disallow_any_generics = true
disallow_subclassing_any = true
warn_return_any = true
# Know exactly what you're doing
warn_redundant_casts = true
warn_unused_ignores = true
warn_unused_configs = true
warn_unreachable = true
show_error_codes = true
# Explicit is better than implici
no_implicit_optional = true