# SPDX-FileCopyrightText: 2023-present Tobias Kunze
# SPDX-License-Identifier: Apache-2.0

[project]
name = "pretalx"
dynamic = ["version"]
description = "Conference organisation: CfPs, scheduling, much more"
readme = "README.rst"
license = "AGPL-3.0-only"
# SHOULD be the following, but Python does not support SPDX v3 (yet?)
#license = "AGPL-3.0-only WITH AdditionRef-Pretalx-AGPL-3.0-Terms"
license-files = ["LICENSE"]
requires-python = ">=3.10"
keywords = ["conference", "event", "schedule", "talk", "cfp"]
authors = [
  {name = "Tobias Kunze", email = "r@rixx.de"},
]
maintainers = [
  {name = "Tobias Kunze", email = "r@rixx.de"},
]
classifiers = [
  "Development Status :: 5 - Production/Stable",
  "Environment :: Web Environment",
  "Framework :: Django :: 5.2",
  "Intended Audience :: Developers",
  "Intended Audience :: Other Audience",
  "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",
  "Topic :: Internet :: WWW/HTTP :: Dynamic Content",
]

dependencies = [
  "beautifulsoup4[lxml]~=4.14.0",
  "bleach~=6.3.0",
  "celery~=5.5.0",
  "css_inline~=0.18.0",
  "cssutils~=2.11.0",
  "defusedcsv~=3.0.0",
  "defusedxml~=0.7.0",
  "diff-match-patch==20241021",
  "Django[argon2]~=5.2.2",
  "django-context-decorator",
  "django-countries~=8.1.0",
  "django-csp~=4.0.0",
  "django-filter==25.2",
  "django-formset-js-improved==0.5.0.4",
  "django-formtools~=2.5.1",
  "django-hierarkey~=2.0.1",
  "django-i18nfield~=1.11.0",
  "django-minify-html~=1.14.0",
  "django-scopes~=2.0.0",
  "django-tables2~=2.8.0",
  "djangorestframework~=3.16.0",
  "drf-flex-fields~=1.0.0",
  "Markdown~=3.10.0",
  "Pillow~=12.0.0",
  "publicsuffixlist~=1.0.0",
  "python-dateutil~=2.9.0",
  "qrcode~=8.0",
  "reportlab~=4.4.0",
  "requests~=2.32.0",
  "rules~=3.5.0",
  "urlman~=2.0.1",
  "vobject~=0.9.0",
  "whitenoise[brotli]~=6.11.0",
  "zxcvbn~=4.5.0",
]

[project.optional-dependencies]
dev = [
  "black",
  "build",
  "check-manifest",
  "coverage",
  "django-watchfiles",
  "djhtml",
  "flake8",
  "flake8-bugbear",
  "freezegun",
  "isort",
  "jsonschema",
  "pytest",
  "pytest-cov",
  "pytest-django",
  "pytest-mock",
  "pytest-sugar",
  "pytest-xdist",
  "responses",
  "twine",
  "urllib3",
]
devdocs = [
  "drf-spectacular~=0.29.0",
  # Pinning sphinx to <9 due to https://github.com/tox-dev/sphinx-autodoc-typehints/issues/586
  "sphinx<9.0",
  "sphinx-autobuild",
  "sphinx-autodoc-typehints",
  "sphinx-copybutton",
  "sphinxcontrib-django",
  "sphinxcontrib-httpdomain",
  "sphinxcontrib-spelling",
]
postgres = ["psycopg2-binary~=2.9.0"]
redis = ["redis~=7.1.0"]

[build-system]
build-backend = "setuptools.build_meta"
requires = ["setuptools", "wheel"]

[project.urls]
Homepage = "https://pretalx.com"
Documentation = "https://docs.pretalx.org"
Repository = "https://github.com/pretalx/pretalx"
Changelog = "https://docs.pretalx.org/changelog/"
Issues = "https://github.com/pretalx/pretalx/issues"

[tool.setuptools]
include-package-data = true

[tool.setuptools.dynamic]
version = {attr = "pretalx.__version__"}

[tool.setuptools.packages.find]
where = ["src"]
include = ["pretalx*"]
exclude = ["pretalx/frontend/node_modules"]

[tool.check-manifest]
ignore = [
  ".*",
  "assets/*",
  "CODE_OF_CONDUCT.md",
  "CONTRIBUTORS",
  "docs/*",
  "src/local/*",
  "src/tests",
  "src/tests/*",
  "SECURITY.md",
]
