[tool.poetry] name = "Sith" version = "3" description = "Le web Sith de l'AE" authors = [ "Skia ", "klmp200 ", "Krophil ", "Maréchal ", "Och ", "tleb ", "Soldat ", "Nabos ", "Terre ", "Lo-J ", "Vial " ] documentation = "https://sith-ae.readthedocs.io/" homepage = "https://ae.utbm.fr/" license = "GPL-3.0-only" [tool.poetry.dependencies] python = "^3.10" Django = "^4.2.14" django-ninja = "^1.2.2" django-ninja-extra = "^0.21.2" Pillow = "^10.4.0" mistune = "^3.0.2" django-jinja = "^2.11" cryptography = "^43.0.0" django-phonenumber-field = "^8.0.0" phonenumbers = "^8.12" django-ajax-selects = "^2.2.1" reportlab = "^4.2" django-haystack = "^3.2.1" xapian-haystack = "^3.0.1" libsass = "^0.23" django-ordered-model = "^3.7" django-simple-captcha = "^0.6.0" python-dateutil = "^2.8.2" sentry-sdk = "^2.11.0" pygraphviz = "^1.1" Jinja2 = "^3.1" django-countries = "^7.5.1" dict2xml = "^1.7.3" Sphinx = "^5" # Needed for building xapian tomli = "^2.0.1" django-honeypot = "^1.2.0" [tool.poetry.group.prod.dependencies] # deps used in prod, but unnecessary for development psycopg2-binary = "^2.9" redis = {extras = ["hiredis"], version = "^5.0.8"} [tool.poetry.group.prod] optional = true [tool.poetry.group.dev.dependencies] # deps used for development purposes, but unneeded in prod django-debug-toolbar = "^4.4.6" ipython = "^8.26.0" pre-commit = "^3.8.0" ruff = "^0.5.5" # Version used in pipeline is controlled by pre-commit hooks in .pre-commit.config.yaml djhtml = "^3.0.6" faker = "^26.0.0" [tool.poetry.group.tests.dependencies] # deps used for testing purposes freezegun = "^1.5.1" # used to test time-dependent code pytest = "^8.3.2" pytest-cov = "^5.0.0" pytest-django = "^4.8.0" model-bakery = "^1.18.2" [tool.poetry.group.docs.dependencies] # deps used to work on the documentation mkdocs = "^1.6.0" mkdocs-material = "^9.5.28" mkdocstrings = "^0.25.1" mkdocstrings-python = "^1.10.5" mkdocs-include-markdown-plugin = "^6.2.1" [tool.poetry.group.docs] optional = true [tool.xapian] version = "1.4.25" [tool.ruff] output-format = "concise" # makes ruff error logs easier to read [tool.ruff.lint] select = [ "A", # shadowing of Python builtins "B", "C4", # use comprehensions when possible "I", # isort "DJ", # django-specific rules, "F401", # unused import "FBT", # boolean trap "UP008", # Use super() instead of super(__class__, self) "UP009", # utf-8 encoding declaration is unnecessary ] ignore = [ "DJ001", # null=True in CharField/TextField. this one would require a migration ] [tool.ruff.lint.pydocstyle] convention = "google" [tool.pytest.ini_options] DJANGO_SETTINGS_MODULE = "sith.settings" python_files = ["tests.py", "test_*.py", "*_tests.py"] markers = ["slow"] [build-system] requires = ["poetry-core>=1.0.0"] build-backend = "poetry.core.masonry.api"