[project] name = "CMSManage" version = "0.1.0" description = "" authors = [ {name = "Adam Goldsmith", email = "contact@adamgoldsmith.name"}, ] dependencies = [ "django~=5.1", "django-admin-logs~=1.3", "django-auth-ldap~=4.8", "django-markdownx~=4.0", "django-recurrence~=1.11", "django-widget-tweaks~=1.5", "django-stubs-ext~=5.0", "markdownify~=0.13", "mdformat~=0.7", "mdformat-tables~=1.0", "django-autocomplete-light~=3.11", "weasyprint~=62.3", "requests~=2.32", "semver~=3.0", "djangorestframework~=3.15", "django-q2~=1.6", "lxml~=5.3", "django-object-actions~=4.2", "bitstring~=4.2", "udm-rest-client~=1.2", "openapi-client-udm~=1.0", "django-nh3~=0.1", "nh3~=0.2", "django-tables2~=2.7", "tablib[ods,xlsx]~=3.6", "django-filter~=24.3", "django-db-views~=0.1", "django-weasyprint~=2.3", "django-sendfile2~=0.7", "django-bootstrap5~=24.2", "django-configurations[database,email]~=2.5", "django-vite~=3.0", "django-template-partials~=24.4", "google-api-python-client~=2.144", "google-auth-oauthlib~=1.2", "django-model-utils~=5.0", "psycopg[binary,pool]~=3.2", "django-simple-history~=3.7", "django-postgres-metrics~=0.15", ] requires-python = ">=3.11" [project.optional-dependencies] server = [ "uvicorn[standard]~=0.30", "setuptools~=74.1", ] [project.entry-points."djangoq.errorreporters"] admin_email = "cmsmanage.django_q2_admin_email_reporter:AdminEmailReporter" [tool.ruff] line-length = 88 [tool.ruff.lint] select = [ "E4", "E7", "E9", "F", "I", "C4", "UP", "PERF", "PL", "SIM", "FIX003", "DJ012", "A", "INP", "ISC", "Q", "PIE", "LOG", "RSE", "TCH", "PTH", "FURB", "B", ] ignore = ["ISC001"] [tool.ruff.lint.isort] known-first-party = [ "cmsmanage", "dashboard", "doorcontrol", "membershipworks", "paperwork", "rentals", "reservations", "tasks", ] section-order = ["future", "standard-library", "django", "third-party", "first-party", "local-folder"] [tool.ruff.lint.isort.sections] "django" = ["django"] [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 [tool.djlint.css] indent_size = 2 [tool.djlint.js] indent_size = 2 [tool.mypy] plugins = [ "./cmsmanage/mypy_django_configurations_plugin.py", "mypy_django_plugin.main", "mypy_drf_plugin.main", ] [tool.django-stubs] django_settings_module = "cmsmanage.settings" strict_settings = false [tool.coverage.run] source = [ "cmsmanage", "dashboard", "doorcontrol", "membershipworks", "paperwork", "rentals", "reservations", ] omit = [ "*/migrations/*", ] [[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"] [tool.pdm.dev-dependencies] lint = [ "djlint~=1.35", "ruff~=0.6", ] typing = [ "mypy~=1.10", "django-stubs~=5.0", "setuptools~=74.1", "types-bleach~=6.1", "types-requests~=2.32", "types-urllib3~=1.26", "djangorestframework-stubs[compatible-mypy]~=3.15", "types-Markdown~=3.7", "types-Pygments~=2.18", "types-psycopg2~=2.9", "types-lxml~=2024.8", "google-api-python-client-stubs~=1.27", "types-python-dateutil~=2.9", ] debug = [ "django-debug-toolbar~=4.4", ] dev = [ "django-extensions~=3.2", "ipython~=8.27", "hypothesis[django]~=6.112", "tblib~=3.0", "coverage~=7.6", ] [tool.pdm.scripts] start = "./manage.py runserver" fmt.shell = "ruff check --fix ; ruff format . ; djlint --reformat ." [build-system] requires = ["pdm-backend"] build-backend = "pdm.backend"