cmsmanage/pyproject.toml
2024-12-06 02:12:50 -05:00

197 lines
4.2 KiB
TOML

[build-system]
build-backend = "pdm.backend"
requires = [ "pdm-backend" ]
[project]
name = "cmsmanage"
version = "0.1.0"
description = ""
authors = [
{ name = "Adam Goldsmith", email = "contact@adamgoldsmith.name" },
]
requires-python = ">=3.11"
classifiers = [
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
]
dependencies = [
"bitstring~=4.2",
"django~=5.1",
"django-admin-logs~=1.3",
"django-auth-ldap~=5.1",
"django-autocomplete-light~=3.11",
"django-bootstrap5~=24.3",
"django-configurations[database,email]~=2.5",
"django-db-views~=0.1",
"django-filter~=24.3",
"django-markdownx~=4.0",
"django-model-utils~=5.0",
"django-nh3~=0.1",
"django-object-actions~=4.3",
"django-postgres-metrics~=0.15",
"django-q2~=1.7",
"django-recurrence~=1.11",
"django-sendfile2~=0.7",
"django-simple-history~=3.7",
"django-stubs-ext~=5.1",
"django-tables2~=2.7",
"django-template-partials~=24.4",
"django-vite~=3.0",
"django-weasyprint~=2.3",
"django-widget-tweaks~=1.5",
"djangorestframework~=3.15",
"google-api-python-client~=2.154",
"google-auth-oauthlib~=1.2",
"lxml~=5.3",
"markdownify~=0.14",
"mdformat~=0.7",
"mdformat-tables~=1.0",
"nh3~=0.2",
"openapi-client-udm~=1.0",
"psycopg[binary,pool]~=3.2",
"requests~=2.32",
"semver~=3.0",
"tablib[ods,xlsx]~=3.7",
"udm-rest-client~=1.2",
"weasyprint~=63.0",
]
optional-dependencies.server = [
"setuptools~=75.6",
"uvicorn[standard]~=0.32",
]
entry-points."djangoq.errorreporters".admin_email = "cmsmanage.django_q2_admin_email_reporter:AdminEmailReporter"
[dependency-groups]
dev = [
"coverage~=7.6",
"django-extensions~=3.2",
"hypothesis[django]~=6.122",
"ipython~=8.30",
"tblib~=3.0",
]
debug = [
"django-debug-toolbar~=4.4",
]
lint = [
"djlint~=1.36",
"pyproject-fmt~=2.5",
"ruff~=0.8",
]
typing = [
"django-stubs~=5.1",
"djangorestframework-stubs[compatible-mypy]~=3.15",
"google-api-python-client-stubs~=1.28",
"mypy~=1.11",
"setuptools~=75.6",
"types-bleach~=6.2",
"types-lxml~=2024.11",
"types-markdown~=3.7",
"types-psycopg2~=2.9",
"types-pygments~=2.18",
"types-python-dateutil~=2.9",
"types-requests~=2.32",
"types-urllib3~=1.26",
]
[[tool.pdm.source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"
[[tool.pdm.source]]
url = "https://git.claremontmakerspace.org/api/packages/CMS/pypi/simple"
verify_ssl = true
name = "CMS"
include_packages = [ "openapi-client-udm" ]
exclude_packages = [ "*" ]
[tool.pdm.scripts]
start = "./manage.py runserver"
fmt.shell = "ruff check --fix ; ruff format . ; djlint --reformat ."
[tool.ruff]
line-length = 88
lint.select = [
"A",
"B",
"C4",
"DJ012",
"E4",
"E7",
"E9",
"F",
"FIX003",
"FURB",
"I",
"INP",
"ISC",
"LOG",
"PERF",
"PIE",
"PL",
"PTH",
"Q",
"RSE",
"SIM",
"TCH",
"UP",
]
lint.ignore = [ "ISC001" ]
lint.isort.known-first-party = [
"cmsmanage",
"dashboard",
"doorcontrol",
"membershipworks",
"paperwork",
"rentals",
"reservations",
"tasks",
]
lint.isort.section-order = [ "future", "standard-library", "django", "third-party", "first-party", "local-folder" ]
lint.isort.sections."django" = [ "django" ]
[tool.pyproject-fmt]
indent = 4
[tool.coverage.run]
source = [
"cmsmanage",
"dashboard",
"doorcontrol",
"membershipworks",
"paperwork",
"rentals",
"reservations",
]
omit = [
"*/migrations/*",
]
[tool.mypy]
plugins = [
"./cmsmanage/mypy_django_configurations_plugin.py",
"mypy_django_plugin.main",
"mypy_drf_plugin.main",
]
[tool.djlint]
profile = "django"
extension = ".dj.html"
indent = 2
blank_line_after_tag = "load,extends"
max_blank_lines = 1
ignore = "T003,H017,H021,H030,H031"
custom_blocks = "partialdef"
format_css = true
format_js = true
css.indent_size = 2
js.indent_size = 2
[tool.django-stubs]
django_settings_module = "cmsmanage.settings"
strict_settings = false