Files
django-helpdesk/pyproject.toml
Benbb96 8e8e230cb2 bump to version 2.5.0
2.4.1 shipped from the 2.4.x maintenance branch, so main is now developing
toward the next minor rather than toward a 2.4.x patch: it carries the colour
mode work and the per-queue behaviour change, neither of which belongs in a
patch release.
2026-09-14 00:31:08 +02:00

183 lines
4.4 KiB
TOML

[project]
name = "django-helpdesk"
version = "2.5.0"
description = "Django-powered ticket tracker for your helpdesk"
authors = [
{name = "Ross Poulton", email = "ross@rossp.org"},
]
requires-python = ">=3.10"
readme = "README.rst"
license = {text = "BSD-3-Clause"}
keywords = ["django", "helpdesk", "django-helpdesk", "tickets", "incidents", "cases", "bugs", "track", "support"]
maintainers = [
{name = "Christopher Broderick", email = "uhurusurfa@gmail.com"},
{name = "David Vadnais - Github@DavidVadnais"},
{name = "Ben - Github:@Benbb96"},
]
packages = [
{ include="helpdesk", from="." },
]
dependencies = [
"django>=5.2",
# Kept as a hard dependency on purpose: it activates automatically when listed
# in INSTALLED_APPS, as docs/install.rst suggests, so a copy that follows our
# own instructions would refuse to start without it.
"django-cleanup",
"email-reply-parser",
"markdown",
"beautifulsoup4",
"nh3",
"djangorestframework",
"django-model-utils",
"oauthlib",
"requests-oauthlib",
"requests",
]
classifiers = [
"Development Status :: 5 - Production/Stable",
"Environment :: Web Environment",
"Framework :: Django",
"Framework :: Django :: 5.2",
"Framework :: Django :: 6.0",
"Intended Audience :: Customer Service",
"Natural Language :: English",
"Operating System :: OS Independent",
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
"Programming Language :: Python :: 3.15",
"Topic :: Office/Business",
"Topic :: Software Development :: Bug Tracking",
"Topic :: Software Development :: Libraries :: Python Modules",
]
[project.optional-dependencies]
teams = [
"pinax_teams",
]
# Poll mailboxes with a periodic celery task instead of cron. See
# docs/configuration.rst. django-celery-beat is what actually schedules it, and
# was previously left to the operator to work out.
celery = [
"celery",
"django-celery-beat",
]
# Check incoming ticket submissions against Akismet. See docs/spam.rst.
# helpdesk.lib.text_is_spam already degrades to "not spam" when this is absent.
spam = [
"akismet",
]
# Everything above, for anyone who wants what earlier releases installed by
# default.
all = [
"django-helpdesk[celery,spam,teams]",
]
[dependency-groups]
docs = [
"furo>=2025.12.19",
]
teams = [
"pinax-invitations>=8.0.0",
"pinax-teams>=3.0.0",
]
test = [
"argparse>=1.4.0",
"coverage>=7.16.0",
"factory-boy>=3.3.3",
"faker>=37.11.0",
"freezegun>=1.5.5",
"isort>=6.0.1",
"mock>=5.2.0",
"numpy>=2.0.2",
"pbr>=7.0.0",
"pillow>=11.3.0",
"pysocks>=1.7.1",
]
[project.scripts]
demodesk = "demodesk.manage:main"
[project.urls]
Homepage = "https://github.com/django-helpdesk/django-helpdesk"
[build-system]
requires = ["pdm-backend"]
build-backend = "pdm.backend"
[tool.pdm]
distribution = true
[tool.pdm.build]
package-dir = "src"
includes = ["src", "src/helpdesk"]
excludes = [
".venv",
"tests",
]
[tool.ruff]
exclude = [".venv", "migrations", "docs", "src/helpdesk/static", "src/helpdesk/template*"]
[tool.djlint]
blank_line_before_tag="load,extends"
blank_line_after_tag="load,extends"
close_void_tags=true
custom_blocks="toc,example"
custom_html="mjml"
exclude=".venv,venv,.tox,.eggs,.git,static"
extend_exclude=".custom"
format_attribute_template_tags=true
format_css=true
format_js=true
ignore_blocks="raw,example"
indent=2
max_attribute_length=120
max_line_length=120
profile="django"
preserve_blank_lines=true
use_gitignore=true
[tool.djlint.css]
indent_size=2
[tool.djlint.js]
indent_size=2
[tool.coverage.run]
branch = true
source = ["src/helpdesk"]
dynamic_context = "test_function"
omit = [
"*/helpdesk/migrations/*",
# omit single files
# "main/asgi.py",
]
[tool.coverage.report]
ignore_errors = true
show_missing = true
skip_covered = false
exclude_lines = [
# Have to re-enable the standard pragma
"pragma: no cover",
# Don't complain if tests don't hit defensive assertion code:
"raise AssertionError",
"raise NotImplementedError",
# Don't complain if non-runnable code isn't run:
"if 0:",
"if __name__ == .__main__.:",
"if __name__==.__main__.:",
]
[tool.coverage.html]
show_contexts = true