2024-01-13 15:39:31 +01:00
[ project ]
name = "membersystem"
description = ''
readme = "README.md"
requires-python = ">=3.11"
keywords = [ ]
authors = [
{ name = "Víðir Valberg Guðmundsson" , email = "valberg@orn.li" } ,
2025-01-15 07:16:12 +00:00
{ name = "Benjamin Balder Bach" , email = "benjamin@overtag.dk" } ,
2024-01-13 15:39:31 +01:00
]
dependencies = [
2024-08-09 08:33:14 +02:00
"Django~=5.1" ,
2024-07-31 21:17:00 +00:00
"django-allauth~=0.63" ,
2025-01-15 07:16:12 +00:00
"django-dirtyfields~=1.9.5" ,
2024-08-09 08:33:14 +02:00
"django-money~=3.5" ,
"django-oauth-toolkit~=2.4" ,
2024-01-13 15:39:31 +01:00
"django-registries==0.0.3" ,
2024-01-14 12:27:36 +01:00
"django-view-decorator==0.0.4" ,
2024-08-14 09:17:29 +00:00
"django-oauth-toolkit~=2.4" ,
"django-ratelimit~=4.1" ,
2024-08-09 08:33:14 +02:00
"django-zen-queries~=2.1" ,
2024-08-03 17:55:32 +00:00
"django_stubs_ext~=5.0" ,
2024-08-09 08:33:14 +02:00
"environs[django]>=11,<12" ,
2025-01-15 07:16:12 +00:00
"httpx~=0.28.1" ,
2024-08-09 08:33:14 +02:00
"psycopg[binary]~=3.2" ,
2024-08-03 17:55:32 +00:00
"stripe~=10.5" ,
2024-08-09 08:33:14 +02:00
"uvicorn~=0.30" ,
"whitenoise~=6.7" ,
2024-01-13 15:39:31 +01:00
]
2024-03-03 11:05:08 +01:00
version = "0.0.1"
2024-01-13 15:39:31 +01:00
2024-12-26 00:03:26 +01:00
[ tool . uv ]
dev-dependencies = [
2025-01-15 07:16:12 +00:00
"coverage[toml]~=7.6" ,
"pytest~=8.3" ,
2024-01-13 15:39:31 +01:00
"pytest-cov" ,
2025-01-15 07:16:12 +00:00
"pytest-django~=4.8" ,
"mypy~=1.11" ,
"django-stubs[compatible-mypy]~=5.0" ,
"django-debug-toolbar~=4.4" ,
"django-browser-reload~=1.15" ,
2024-01-13 15:39:31 +01:00
"model-bakery==1.17.0" ,
]
[ tool . pytest . ini_options ]
DJANGO_SETTINGS_MODULE = "tests.settings"
addopts = "--reuse-db"
norecursedirs = "build dist docs .eggs/* *.egg-info htmlcov .git"
python_files = "test*.py"
testpaths = "tests"
2025-01-15 07:16:12 +00:00
pythonpath = ". src tests"
2024-01-13 15:39:31 +01:00
[ tool . coverage . run ]
branch = true
parallel = true
[ tool . coverage . report ]
exclude_lines = [
"no cov" ,
"if __name__ == .__main__.:" ,
"if TYPE_CHECKING:" ,
]
[ tool . mypy ]
mypy_path = "src/"
exclude = [
"venv/" ,
"dist/" ,
"docs/" ,
]
namespace_packages = false
show_error_codes = true
strict = true
warn_unreachable = true
follow_imports = "normal"
2024-08-03 17:55:32 +00:00
plugins = [ "mypy_django_plugin.main" ]
2024-01-13 15:39:31 +01:00
[ tool . django-stubs ]
2024-08-03 17:55:32 +00:00
django_settings_module = "project.settings"
2024-01-13 15:39:31 +01:00
[ [ tool . mypy . overrides ] ]
module = "tests.*"
allow_untyped_defs = true
2024-02-29 21:25:59 +01:00
[ tool . ruff ]
target-version = "py312"
extend-exclude = [
".git" ,
"__pycache__" ,
2024-07-15 00:19:37 +02:00
"manage.py" ,
"asgi.py" ,
"wsgi.py" ,
2024-02-29 21:25:59 +01:00
]
line-length = 120
[ tool . ruff . lint ]
select = [ "ALL" ]
ignore = [
"G004" , # Logging statement uses f-string
"ANN101" , # Missing type annotation for `self` in method
"ANN102" , # Missing type annotation for `cls` in classmethod
"EM101" , # Exception must not use a string literal, assign to variable first
"EM102" , # Exception must not use a f-string literal, assign to variable first
"COM812" , # missing-trailing-comma (https://docs.astral.sh/ruff/formatter/#conflicting-lint-rules)
"ISC001" , # single-line-implicit-string-concatenation (https://docs.astral.sh/ruff/formatter/#conflicting-lint-rules)
2024-08-14 09:17:29 +00:00
"D100" , # Missing docstring in public module
"D101" , # Missing docstring in public class
"D102" , # Missing docstring in public method
2024-07-15 00:19:37 +02:00
"D105" , # Missing docstring in magic method
"D106" , # Missing docstring in public nested class
2024-08-14 09:17:29 +00:00
"D107" , # Missing docstring in `__init__`
2025-01-15 07:16:12 +00:00
"D203" , # `one-blank-line-before-class` (D203) and `no-blank-line-before-class` (D211) are incompatible. Ignoring `one-blank-line-before-class`
"D213" , # `multi-line-summary-first-line` (D212) and `multi-line-summary-second-line` (D213) are incompatible. Ignoring `multi-line-summary-second-line`.
2024-07-15 00:19:37 +02:00
"FIX" , # TODO, FIXME, XXX
"TD" , # TODO, FIXME, XXX
"ANN002" , # Missing type annotation for `*args`
"ANN003" , # Missing type annotation for `**kwargs`
2024-08-14 09:17:29 +00:00
"FBT001" , # Misbehaves: Boolean-typed positional argument in function definition
"FBT002" , # Misbehaves: Boolean-typed positional argument in function definition
"TRY003" , # Avoid specifying long messages outside the exception class
2024-02-29 21:25:59 +01:00
]
[ tool . ruff . lint . isort ]
force-single-line = true
2024-07-15 00:19:37 +02:00
[ tool . ruff . lint . per-file-ignores ]
"tests.py" = [
"S101" , # Use of assert
"SLF001" , # Private member access
"D100" , # Docstrings
"D103" , # Docstrings
]
2025-01-15 07:16:12 +00:00
"tests/*" = [
"ANN001" ,
"ANN201" ,
"ARG001" , # TODO: Unused function argument. These are mostly pytest fixtures. Find a way to allow these in tests. Remove this after.
"D103" ,
"D104" ,
"S101" , # Use of `assert` detected
"PGH004" ,
"PT004" ,
"RET504" ,
]