[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", ] [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", "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 = ["setuptools>=68", "wheel"] build-backend = "setuptools.build_meta" [tool.setuptools] include-package-data = true [tool.setuptools.packages.find] where = ["."] include = ["repub*"] [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.mypy] files = "repub,tests" ignore_missing_imports = true follow_imports = "normal" disallow_untyped_calls = true disallow_any_generics = true disallow_subclassing_any = true warn_return_any = true warn_redundant_casts = true warn_unused_ignores = true warn_unused_configs = true warn_unreachable = true show_error_codes = true no_implicit_optional = true