[project] name = "checkout" version = "0.0.1" requires-python = ">=3.13" classifiers = [ "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3.13" ] dependencies = [ "crispy-bootstrap5>=0.6", "django>=4.1", "django-anymail[mailgun]>=8.6", "django-cleanup>=6", "django-crispy-forms>=1.14", "django-csp>=3.7", "django-environ>=0.9", "django-extensions>=3.1.5", "django-htmx>=1.12.2", "django-solo>=2", "freezegun>=1.2.1", "gunicorn>=20.1", "matplotlib>=3.5.1", "pillow>=9.3", "requests>=2.28.1", "whitenoise>=6.2", ] [tool.ruff] target-version = "py313" src = [ "src", ] select = [ "ALL", ] unfixable = [ "T20", "RUF001", "RUF002", "RUF003", ] ignore = [ "ANN", # flake8-annotations "BLE", # flake8-blind-except "TCH", # flake8-type-checking / TODO: revisit later ? "E501", # long lines "D1", # missing docstring "TRY003", # Avoid specifying long messages outside the exception class "RUF012", # Mutable class attributes should be annotated with `typing.ClassVar` ] pydocstyle.convention = "pep257" per-file-ignores."**/tests/*" = [ "S101", # Use of assert detected. "S105", # Possible hardcoded password. "B011", # Do not call assert False since python -O removes these calls. "ARG001", # Unused function argument (mostly fixtures) "PLR2004", # Magic value used in comparison, consider replacing {value} with a constant variable "S311", # Standard pseudo-random generators are not suitable for cryptographic purposes. ] # File {name} is part of an implicit namespace package. Add an `__init__.py`. per-file-ignores."tasks.py" = [ "INP001", ] per-file-ignores."src/conftest.py" = [ "INP001", ] per-file-ignores."src/manage.py" = [ "INP001", ] per-file-ignores."src/purchase/management/commands/generate_dummy_baskets.py" = [ "S311", # Standard pseudo-random generators are not suitable for cryptographic purposes. ] mccabe.max-complexity = 10 [tool.pytest.ini_options] addopts = "--color=yes --driver Firefox" minversion = "6.0" DJANGO_SETTINGS_MODULE = "checkout.settings" testpaths = [ "src", ] markers = [ "flaky", ] [dependency-groups] dev = [ "pre-commit>=2.7", "pytest>=6.0", "pytest-cov>=3.0.0", "pytest-django>=4.5.0", "pytest-selenium>=4.0.0", "pytest-rerunfailures>=13.0", "pre-commit>=2.7", "model-bakery>=1.1", "invoke>=2.0.0", "factory-boy>=3.2.1", "selenium>=4.4.3", "black>=22.12.0", "pip-tools>=6.0", "ruff>=0.0.237", ] [tool.uv] package = false ############################################################################### # ruff ###############################################################################