schon/pyproject.toml
Egor fureunoir Gorbunov 43dc556063 Features: 1) Migrate from Jazzmin to django-unfold for admin UI;
Fixes: 1) Remove deprecated Jazzmin configuration and replace with unfold dependencies; 2) Update DRF API title to use new PROJECT_NAME; 3) Fix import order and remove unused imports in core/viewsets.py;

Extra: 1) Add PROJECT_NAME to base settings; 2) Update INSTALLED_APPS to include unfold-related apps; 3) Clean up unused config references.
2025-11-15 01:38:14 +03:00

123 lines
3.4 KiB
TOML

[project]
name = "eVibes"
version = "2025.4"
description = "eVibes — 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.22.0",
"aiosmtpd==1.4.6",
"channels==4.3.1",
"channels-redis>=4.3.0",
"colorlog==6.10.1",
"coverage==7.11.3",
"click==8.3.0",
"cryptography==46.0.3",
"django==5.2.8",
"django-cacheops==7.2",
"django-constance==4.3.4",
"django-cors-headers==4.9.0",
"django-dbbackup==5.0.1",
"django-elasticsearch-dsl==8.2",
"django-extensions==4.1",
"django-filter==25.2",
"django-health-check==3.20.0",
"django-json-widget==2.1.0",
"django-mailbox==4.10.1",
"django-model-utils==5.0.0",
"django-modeltranslation==0.19.17",
"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-stubs==5.2.7",
"django-summernote==0.8.20.0",
"django-unfold>=0.71.0",
"django-widget-tweaks==1.5.0",
"django-md-field==0.1.0",
"djangorestframework==3.16.1",
"djangorestframework-camel-case==1.4.2",
"djangorestframework-recursive==0.1.2",
"djangorestframework-simplejwt[crypto]==5.5.1",
"djangorestframework-stubs==3.16.5",
"djangorestframework-xml==2.0.0",
"djangorestframework-yaml==2.0.0",
"drf-spectacular[sidecar]==0.29.0",
"drf-spectacular-websocket>=1.3.1",
"elasticsearch-dsl==8.18.0",
"filelock==3.20.0",
"filetype==1.2.0",
"graphene-django==3.2.3",
"graphene-file-upload==1.3.0",
"gunicorn==23.0.0",
"httpx==0.28.1",
"paramiko==4.0.0",
"pillow==12.0.0",
"pip>=25.3",
"polib==1.2.0",
"PyJWT==2.10.1",
"pytest==9.0.1",
"pytest-django==4.11.1",
"python-slugify==8.0.4",
"psutil==7.1.3",
"psycopg2==2.9.11",
"pymdown-extensions==10.17.1",
"redis==7.0.1",
"requests==2.32.5",
"sentry-sdk[django,celery,opentelemetry]==2.44.0",
"six==1.17.0",
"swapper==1.4.0",
"uvicorn==0.38.0",
"zeep==4.3.2",
"whitenoise>=6.11.0",
"websockets>=15.0.1",
]
[project.optional-dependencies]
graph = ["pygraphviz==1.14; sys_platform != 'win32'"]
worker = [
"celery==5.5.3",
"django-celery-beat==2.8.1",
"django-celery-results==2.6.0",
"celery-prometheus-exporter==1.7.0",
]
linting = [
"isort==7.0.0",
"mypy==1.18.2",
"mypy-extensions==1.1.0",
"ruff==0.14.5",
"celery-stubs==0.1.3",
]
openai = ["openai==2.6.1"]
jupyter = ["jupyter==1.1.1"]
docs = ["sphinx==8.2.3", "sphinx-rtd-theme==3.0.2", "m2r2==0.3.4"]
[tool.uv]
package = false
[tool.uv.pip]
python-version = "3.13"
[tool.mypy]
strict = false
disable_error_code = ["import-untyped", "no-redef"]
exclude = "(^|[\\/])(migrations|storefront)([\\/]|$)"
plugins = ["mypy_django_plugin.main", "mypy_drf_plugin.main"]
[tool.django-stubs]
django_settings_module = "evibes.settings"
[tool.ruff]
line-length = 120
target-version = "py312"
exclude = ["media", "static", "storefront"]
[tool.ruff.lint]
select = ["E4", "E7", "E9", "F", "B", "Q"]
ignore = ["RUF012", "A002", "A003"]
[tool.ruff.format]
quote-style = "double"
indent-style = "space"