[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", "unifi-access~=0.1", "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", "unifi-access" ] 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