[project] dependencies = [ "celery>=5.5.0,<6.0.0", "colorlog>=6.9.0,<7.0.0", "django-cors-headers>=4.7.0,<5.0.0", "django-environ>=0.12.0,<1.0.0", "django-extensions>=4.1.0,<5.0.0", "django-guid>=3.5.1,<4.0.0", "django-health-check>=3.18.3,<4.0.0", "django-minio-storage>=0.5.7,<0.6.0", "django-ninja>=1.3.0,<2.0.0", "django-prometheus>=2.4.1,<3.0.0", "django-redis>=6.0.0,<7.0.0", "django-silk[formatting]>=5.4.0,<6.0.0", "django-stubs-ext>=5.1.3,<6.0.0", "gunicorn>=23.0.0,<24.0.0", "httpx>=0.28.1,<0.29.0", "opentelemetry-api>=1.35.0", "opentelemetry-distro>=0.56b0", "opentelemetry-exporter-otlp>=1.35.0", "opentelemetry-exporter-zipkin-proto-http>=1.11.1", "opentelemetry-instrumentation-asyncio>=0.56b0", "opentelemetry-instrumentation-celery>=0.56b0", "opentelemetry-instrumentation-dbapi>=0.56b0", "opentelemetry-instrumentation-django>=0.56b0", "opentelemetry-instrumentation-httpx>=0.56b0", "opentelemetry-instrumentation-psycopg2>=0.56b0", "opentelemetry-instrumentation-requests>=0.56b0", "opentelemetry-instrumentation-sqlite3>=0.56b0", "opentelemetry-instrumentation-threading>=0.56b0", "opentelemetry-instrumentation-urllib>=0.56b0", "opentelemetry-instrumentation-urllib3>=0.56b0", "opentelemetry-instrumentation-wsgi>=0.56b0", "opentelemetry-sdk>=1.35.0", "pillow>=11.1.0,<12.0.0", "psycopg2-binary>=2.9.10,<3.0.0", "pydantic>=2.10.5,<3.0.0", "pyjwt>=2.10.1,<3.0.0", "python-json-logger>=3.2.1,<4.0.0", "pytz>=2024.2,<2025.0", "redis>=6.2.0,<7.0.0", "yandex-cloud-ml-sdk>=0.3.1,<0.4.0", ] name = "adnova-backend" readme = "README.md" requires-python = ">=3.10,<3.14" version = "0.1.0" [dependency-groups] dev = [ "coverage", "django-debug-toolbar>=5.2,<5.3", "django-stubs[compatible-mypy]", "mypy", "ruff", ] [tool.ruff] builtins = [] cache-dir = ".ruff_cache" exclude = [ ".bzr", ".direnv", ".eggs", ".git", ".git-rewrite", ".hg", ".mypy_cache", ".nox", ".pants.d", ".pytype", ".ruff_cache", ".svn", ".tox", ".venv", "__pypackages__", "_build", "buck-out", "dist", "migrations", "node_modules", "venv", ] extend-exclude = [] extend-include = [] fix = false fix-only = false force-exclude = true include = ["**/pyproject.toml", "*.ipynb", "*.py", "*.pyi"] indent-width = 4 line-length = 79 namespace-packages = [] output-format = "full" preview = false required-version = ">=0.8.4" respect-gitignore = true show-fixes = true src = [".", "src"] target-version = "py310" unsafe-fixes = false [tool.ruff.analyze] detect-string-imports = true direction = "Dependencies" exclude = [] include-dependencies = {} preview = false [tool.ruff.format] docstring-code-format = true docstring-code-line-length = 79 exclude = [] indent-style = "space" line-ending = "lf" preview = false quote-style = "double" skip-magic-trailing-comma = false [tool.ruff.lint] allowed-confusables = ["ℹ"] dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$" exclude = ["tests.py"] explicit-preview-rules = false extend-fixable = [] extend-per-file-ignores = {} extend-safe-fixes = [] extend-select = [] extend-unsafe-fixes = [] external = [] fixable = ["ALL"] ignore = [ "ANN401", "ARG", "COM812", "D", "DJ001", "DJ007", "FBT001", "FBT002", "N813", "PLR2004", "PT009", "PT027", "RUF001", "S311", ] logger-objects = [] per-file-ignores = {} preview = false select = ["ALL"] task-tags = ["FIXME", "HACK", "TODO", "WORKOUT"] typing-modules = [] unfixable = [] [tool.ruff.lint.pylint] max-args = 6 [tool.mypy] ignore_missing_imports = true no_implicit_optional = false plugins = ["mypy_django_plugin.main"] show_error_context = false strict = false [tool.django-stubs] django_settings_module = "config.settings" strict_settings = false [tool.coverage.run] omit = [ "config/asgi.py", "config/errors.py", "config/handlers.py", "config/settings.py", "config/urls.py", "config/wsgi.py", "integrations/yandexai/*", "manage.py", ] [tool.coverage.report] skip_covered = true