[tool.poetry] name = "feedvault" version = "0.1.0" description = "FeedVault is a Django app for archiving RSS feeds." authors = ["Joakim Hellsén "] readme = "README.md" [tool.poetry.dependencies] python = "^3.12" django = "^5.0.6" python-dotenv = "^1.0.1" gunicorn = "^21.2.0" dateparser = "^1.2.0" django-ninja = "^1.1.0" django-debug-toolbar = "^4.3.0" whitenoise = { extras = ["brotli"], version = "^6.6.0" } rich = "^13.7.1" django-htmx = "^1.17.3" django-redis = {extras = ["hiredis"], version = "^5.4.0"} psycopg = {extras = ["binary"], version = "^3.1.19"} # TODO: Use psycopg[c] in Dockerfile reader = "^3.12" [tool.poetry.group.dev.dependencies] ruff = "^0.3.0" djlint = "^1.34.1" pre-commit = "^3.7.1" [build-system] build-backend = "poetry.core.masonry.api" requires = ["poetry-core"] [tool.ruff] exclude = ["migrations"] fix = true unsafe-fixes = true preview = true line-length = 120 lint.select = ["ALL"] lint.ignore = [ "ARG001", # Checks for the presence of unused arguments in function definitions. "ARG002", # Checks for the presence of unused arguments in instance method definitions. "COM812", # Checks for the absence of trailing commas. "CPY001", # Missing copyright notice at top of file "D100", # Checks for undocumented public module definitions. "D101", # Checks for undocumented public class definitions. "D102", # Checks for undocumented public method definitions. "D104", # Missing docstring in public package. "D105", # Missing docstring in magic method. "D106", # Checks for undocumented public class definitions, for nested classes. "D402", # Checks for function docstrings that include the function's signature in the summary line. "DJ001", # Checks nullable string-based fields (like CharField and TextField) in Django models. "ERA001", # Found commented-out code "FIX002", # Line contains TODO "ISC001", # Checks for implicitly concatenated strings on a single line. "PLR6301", # Checks for the presence of unused self parameter in methods definitions. "TD003", # Checks that a TODO comment is associated with a link to a relevant issue or ticket. ] [tool.ruff.lint.pydocstyle] convention = "google" [tool.ruff.lint.per-file-ignores] "**/tests.py" = [ "S101", # Allow asserts "ARG", # Allow unused arguments "FBT", # Don't care about booleans as positional arguments in tests, e.g. via @pytest.mark.parametrize() "PLR2004", # Allow "assert response.status_code == 200" when testing views "D102", # Allow missing docstrings in tests "PLR6301", # Checks for the presence of unused self parameter in methods definitions. ] [tool.djlint] format_attribute_template_tags = true