Files
twitch-drop-notifier/pyproject.toml

79 lines
2.6 KiB
TOML

[tool.poetry]
name = "twitch-drop-notifier"
version = "0.1.0"
description = ""
authors = ["Joakim Hellsén <tlovinator@gmail.com>"]
readme = "README.md"
package-mode = false
[tool.poetry.dependencies]
python = "^3.12"
discord-webhook = "^1.3.1"
django = { version = "^5.1", allow-prereleases = true }
django-debug-toolbar = "^4.4.6"
django-simple-history = "^3.7.0"
pillow = "^10.4.0"
platformdirs = "^4.2.2"
python-dotenv = "^1.0.1"
requests = "^2.32.3"
requests-cache = "^1.2.1"
sentry-sdk = { extras = ["django"], version = "^2.13.0" }
undetected-playwright-patch = "^1.40.0.post1700587210000"
whitenoise = { extras = ["brotli"], version = "^6.7.0" }
[tool.poetry.group.dev.dependencies]
djlint = "^1.34.1"
pre-commit = "^3.8.0"
pytest = "^8.3.2"
pytest-django = "^4.8.0"
ruff = "^0.5.1"
[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"
[tool.ruff]
# https://docs.astral.sh/ruff/settings/
target-version = "py312"
fix = true
unsafe-fixes = true
preview = true
lint.select = ["ALL"]
line-length = 119
lint.pydocstyle.convention = "google"
lint.ignore = [
"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.
"ERA001", # Found commented-out code
"FIX002", # Line contains TODO
"COM812", # Checks for the absence of trailing commas.
"ISC001", # Checks for implicitly concatenated strings on a single line.
"DJ001", # Checks nullable string-based fields (like CharField and TextField) in Django models.
]
[tool.ruff.lint.per-file-ignores]
"**/tests/**" = [
"ARG", # Unused function args -> fixtures nevertheless are functionally relevant...
"FBT", # Don't care about booleans as positional arguments in tests, e.g. via @pytest.mark.parametrize()
"PLR2004", # Magic value used in comparison, ...
"S101", # asserts allowed in tests...
"S311", # Standard pseudo-random generators are not suitable for cryptographic purposes
]
"**/migrations/**" = [
"RUF012", # Checks for mutable default values in class attributes.
]
[tool.djlint]
profile = "django"
format_attribute_template_tags = true
ignore = "H006" # Img tag should have height and width attributes.
[tool.pytest.ini_options]
DJANGO_SETTINGS_MODULE = "core.settings"
python_files = ["test_*.py"]