[project]
name = "onlinejudge"
version = "2.0.0"
description = ""
readme = "README.md"
requires-python = ">=3.12"
dependencies = [
    "channels>=4.3.2,<5",
    "channels-redis>=4.3.0,<5",
    "uvicorn[standard]>=0.34.0,<1",
    "django>=6.0.4,<6.1",
    "django-cas-ng>=5.1.1,<6",
    "django-dbconn-retry>=0.3.1,<0.4",
    "django-dramatiq>=0.15.0,<0.16",
    "django-redis>=6.0.0,<7",
    "djangorestframework>=3.17.1,<4",
    "dramatiq>=2.1.0,<3",
    "gunicorn>=26.0.0,<27",
    "openai>=2.34.0,<3",
    "otpauth>=2.2.1,<3",
    "pillow>=12.2.0,<13",
    "psycopg>=3.3.4,<4",
    "psycopg-binary>=3.3.4,<4",
    "python-dateutil>=2.9.0.post0,<3",
    "qrcode>=8.2,<9",
    "sentry-sdk[django]>=2.0.0,<3",
    "tree-sitter>=0.25.2",
    "tree-sitter-c>=0.24.2",
    "tree-sitter-python>=0.25.0",
    "xlsxwriter>=3.2.9,<4",
    "asgiref>=3.11.1",
    "jieba>=0.42.1",
]

[dependency-groups]
dev = [
    "ruff>=0.15.11",
]

[tool.pyright]
venvPath = "."
venv = ".venv"

[tool.ruff]
line-length = 180
exclude = ["*/migrations/*", "*settings.py", "*/apps.py", ".venv"]

[tool.ruff.format]
quote-style = "double"

[tool.ruff.lint]
select = ["E", "F", "I"]
