[project] name = "newsreader" version = "0.5.3" authors = [{ name = "Sonny" }] license = { text = "GPL-3.0" } requires-python = ">=3.11" dependencies = [ "django~=4.2", "celery~=5.4", "psycopg", "django-axes", "django-celery-beat~=2.7.0", "django-rest-framework", "djangorestframework-camel-case", "pymemcache", "python-dotenv~=1.0.1", "ftfy~=6.2", "requests", "feedparser", "bleach", "beautifulsoup4", "lxml", ] [dependency-groups] test-tools = ["ruff", "factory_boy", "freezegun"] development = [ "django-debug-toolbar", "django-stubs", "django-extensions", ] ci = ["coverage~=7.6.1"] production = ["gunicorn~=23.0"] [project.optional-dependencies] sentry = ["sentry-sdk~=2.0"] [tool.uv] environments = ["sys_platform == "linux""] default-groups = ["test-tools"] [tool.ruff] include = ["pyproject.toml", "src/**/*.py"] line-length = 88 [tool.ruff.lint] select = ["E4", "E7", "E9", "F", "I"] [tool.ruff.lint.isort] lines-between-types=1 lines-after-imports=2 default-section = "third-party" known-first-party = ["transip_client"] section-order = [ "future", "standard-library", "django", "third-party", "first-party", "local-folder", ] [tool.ruff.lint.isort.sections] django = ["django"] [tool.coverage.run] source = ["./src/newsreader/"] omit = [ "**/tests/**" "**/migrations/**", "**/conf/**", "**/apps.py", "**/admin.py", "**/tests.py", "**/urls.py", "**/wsgi.py", "**/celery.py", "**/__init__.py ]