forked from data.coop/membersystem
159 lines
4.1 KiB
TOML
159 lines
4.1 KiB
TOML
[build-system]
|
|
requires = ["hatchling"]
|
|
build-backend = "hatchling.build"
|
|
|
|
[project]
|
|
name = "membersystem"
|
|
description = ''
|
|
readme = "README.md"
|
|
requires-python = ">=3.11"
|
|
keywords = []
|
|
authors = [
|
|
{ name = "Víðir Valberg Guðmundsson", email = "valberg@orn.li" },
|
|
]
|
|
dependencies = [
|
|
"Django>=5.1b1,<5.2",
|
|
"django-money~=3.5",
|
|
"django-allauth~=0.63",
|
|
"psycopg[binary]~=3.2",
|
|
"environs[django]>=11,<12",
|
|
"uvicorn~=0.30",
|
|
"whitenoise~=6.7",
|
|
"django-zen-queries~=2.1",
|
|
"django-registries==0.0.3",
|
|
"django-view-decorator==0.0.4",
|
|
"django-oauth-toolkit~=2.4",
|
|
"django_stubs_ext~=5.0",
|
|
"stripe~=10.5",
|
|
]
|
|
version = "0.0.1"
|
|
|
|
[tool.hatch.build.targets.wheel]
|
|
packages = ["src"]
|
|
|
|
[tool.hatch.env]
|
|
requires = ["hatch-pip-compile"]
|
|
|
|
[tool.hatch.envs.default]
|
|
type = "pip-compile"
|
|
|
|
[tool.hatch.envs.dev]
|
|
type = "pip-compile"
|
|
dependencies = [
|
|
"coverage[toml]==7.3.0",
|
|
"pytest==7.2.2",
|
|
"pytest-cov",
|
|
"pytest-django==4.5.2",
|
|
"mypy==1.1.1",
|
|
"django-stubs==1.16.0",
|
|
"pip-tools==7.3.0",
|
|
"django-debug-toolbar==4.2.0",
|
|
"django-browser-reload==1.7.0",
|
|
"model-bakery==1.17.0",
|
|
]
|
|
|
|
[[tool.hatch.envs.tests.matrix]]
|
|
python = ["3.12"]
|
|
django = ["5.1b1"]
|
|
|
|
[tool.hatch.envs.tests.overrides]
|
|
matrix.django.dependencies = [
|
|
{ value = "django~={matrix:django}" },
|
|
]
|
|
matrix.python.dependencies = [
|
|
{ value = "typing_extensions==4.5.0", if = ["3.10"]},
|
|
]
|
|
|
|
[tool.hatch.envs.default.scripts]
|
|
cov = "pytest --cov-report=term-missing --cov-config=pyproject.toml --cov=src --cov=tests --cov=append {args}"
|
|
no-cov = "cov --no-cov {args}"
|
|
typecheck = "mypy --config-file=pyproject.toml ."
|
|
requirements = "hatch env run --env default -- python --version; hatch env run --env dev -- python --version"
|
|
server = "./src/manage.py runserver 0.0.0.0:8000"
|
|
migrate = "./src/manage.py migrate"
|
|
makemigrations = "./src/manage.py makemigrations"
|
|
createsuperuser = "./src/manage.py createsuperuser"
|
|
shell = "./src/manage.py shell"
|
|
# You need to install Stripe CLI from here to run this: https://github.com/stripe/stripe-cli/releases
|
|
stripe_cli = "stripe listen --forward-to 0.0.0.0:8000/order/stripe/webhook/"
|
|
|
|
[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"
|
|
pythonpath = ". tests"
|
|
|
|
[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"
|
|
plugins = ["mypy_django_plugin.main"]
|
|
|
|
[tool.django-stubs]
|
|
django_settings_module = "project.settings"
|
|
|
|
[[tool.mypy.overrides]]
|
|
module = "tests.*"
|
|
allow_untyped_defs = true
|
|
|
|
[tool.ruff]
|
|
target-version = "py312"
|
|
extend-exclude = [
|
|
".git",
|
|
"__pycache__",
|
|
"manage.py",
|
|
"asgi.py",
|
|
"wsgi.py",
|
|
]
|
|
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)
|
|
"D105", # Missing docstring in magic method
|
|
"D106", # Missing docstring in public nested class
|
|
"FIX", # TODO, FIXME, XXX
|
|
"TD", # TODO, FIXME, XXX
|
|
"ANN002", # Missing type annotation for `*args`
|
|
"ANN003", # Missing type annotation for `**kwargs`
|
|
]
|
|
|
|
[tool.ruff.lint.isort]
|
|
force-single-line = true
|
|
|
|
[tool.ruff.lint.per-file-ignores]
|
|
"tests.py" = [
|
|
"S101", # Use of assert
|
|
"SLF001", # Private member access
|
|
"D100", # Docstrings
|
|
"D103", # Docstrings
|
|
]
|