schon/pyproject.toml
Egor fureunoir Gorbunov c728204cb1 chore(deps): update dependencies in uv.lock
upgrade versions for `aiogram` (3.24.0 → 3.25.0), `async-lru` (2.1.0 → 2.2.0), `coverage` (7.13.3 → 7.13.4), and `cryptography` (46.0.4 → 46.0.5) to incorporate latest bug fixes and enhancements.
2026-02-21 19:49:47 +03:00

153 lines
3.7 KiB
TOML

[project]
name = "schon"
version = "2026.1"
description = "Schon — your store without the extra baggage. Everything works out of the box: storefront, product catalog, cart, and orders. Minimal complexity, maximum flexibility — install, adjust to your needs, and start selling."
authors = [{ name = "fureunoir", email = "contact@fureunoir.com" }]
readme = "README.md"
requires-python = ">=3.12,<=3.13"
dependencies = [
"aiogram==3.25.0",
"aiosmtpd==1.4.6",
"channels==4.3.2",
"channels-redis==4.3.0",
"colorlog==6.10.1",
"coverage==7.13.4",
"click==8.3.1",
"cryptography==46.0.5",
"django==5.2.11",
"django-cacheops==7.2",
"django-constance==4.3.4",
"django-cors-headers==4.9.0",
"django-dbbackup==5.2.0",
"django-elasticsearch-dsl==8.2",
"django-extensions==4.1",
"django-filter==25.2",
"django-health-check==4.0.4",
"django-import-export[all]==4.4.0",
"django-json-widget==2.1.1",
"django-model-utils==5.0.0",
"django-md-field==0.1.0",
"django-modeltranslation==0.19.19",
"django-mptt==0.18.0",
"django-prometheus==2.4.1",
"django-redis==6.0.0",
"django-ratelimit==4.1.0",
"django-storages==1.14.6",
"django-unfold==0.80.2",
"django-widget-tweaks==1.5.1",
"djangorestframework==3.16.1",
"djangorestframework-recursive==0.1.2",
"djangorestframework-simplejwt[crypto]==5.5.1",
"djangorestframework-xml==2.0.0",
"djangorestframework-yaml==2.0.0",
"djangoql==0.19.1",
"docutils==0.22.4",
"drf-spectacular==0.29.0",
"drf-spectacular-websocket==1.3.1",
"drf-orjson-renderer==1.8.0",
"elasticsearch-dsl==8.18.0",
"filelock==3.24.3",
"filetype==1.2.0",
"graphene-django==3.2.3",
"graphene-file-upload==1.3.0",
"httpx==0.28.1",
"paramiko==4.0.0",
"pillow==12.1.1",
"pip==26.0.1",
"polib==1.2.0",
"PyJWT==2.11.0",
"pytest==9.0.2",
"pytest-django==4.12.0",
"python-slugify==8.0.4",
"psutil==7.2.2",
"psycopg[binary]==3.3.3",
"redis==7.2.0",
"requests==2.32.5",
"sentry-sdk[django,celery,opentelemetry]==2.53.0",
"six==1.17.0",
"swapper==1.4.0",
"uvicorn==0.41.0",
"zeep==4.3.2",
"websockets==16.0",
"whitenoise==6.11.0",
]
[project.optional-dependencies]
worker = [
"celery==5.6.2",
"django-celery-beat==2.8.1",
"django-celery-results==2.6.0",
]
linting = [
"ty==0.0.18",
"ruff==0.15.2",
"celery-types==0.24.0",
"django-stubs==5.2.9",
"djangorestframework-stubs==3.16.8",
"types-requests==2.32.4.20260107",
"types-redis==4.6.0.20241004",
"types-paramiko==4.0.0.20250822",
"types-psutil==7.2.2.20260130",
"types-pillow==10.2.0.20240822",
"types-docutils==0.22.3.20251115",
"types-six==1.17.0.20251009",
]
openai = ["openai==2.21.0"]
jupyter = ["jupyter==1.1.1"]
[tool.uv]
package = false
[tool.uv.pip]
python-version = "3.13"
[tool.ruff]
line-length = 88
target-version = "py312"
exclude = [
"Dockerfiles",
"monitoring",
"scripts",
"static",
"storefront",
"tmp",
"media",
]
[tool.ruff.lint]
select = ["E4", "E7", "E9", "F", "B", "Q", "I"]
ignore = ["RUF012", "A002", "A003"]
[tool.ruff.lint.isort]
known-first-party = ["schon", "engine"]
[tool.ruff.format]
quote-style = "double"
indent-style = "space"
[tool.ty.src]
exclude = [
"Dockerfiles/**",
"monitoring/**",
"scripts/**",
"static/**",
"storefront/**",
"tmp/**",
"media/**",
]
[tool.ty.environment]
python-version = "3.12"
[tool.ty.terminal]
output-format = "concise"
[tool.ty.rules]
possibly-unresolved-reference = "warn"
possibly-missing-attribute = "warn"
possibly-missing-import = "warn"
unsupported-base = "warn"
[tool.django-stubs]
django_settings_module = "schon.settings.__init__"