schon/pyproject.toml
Egor fureunoir Gorbunov d07e724934 Features: 1) Add LogLevel Enum to standardize logging levels; 2) Introduce generalized logging utility in VendorManager with Celery runtime context support; 3) Add support for attribute group warnings using the new logging method;
Fixes: 1) Ensure logging conditions are guarded by proper vendor and attribute checks; 2) Correct `__str__` method fallback logic for `VendorManager`;

Extra: 1) Update dependencies including `docutils` to 0.21.2, `psutil` to 7.1.2, and `pip` to >=25.3; 2) Clean up `pyproject.toml` and `uv.lock` with refined version specifications and added new entries; 3) Refactor import statements and remove redundant code; 4) Upgrade Python version to 3.13 in config.
2025-10-25 15:51:25 +03:00

124 lines
3.5 KiB
TOML

[project]
name = "eVibes"
version = "3.1.0"
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 = [
"aiosmtpd==1.4.6",
"colorlog==6.10.1",
"click==8.3.0",
"cryptography==46.0.3",
"django==5.2.7",
"django-cacheops==7.2",
"django-constance==4.3.2",
"django-cors-headers==4.9.0",
"django-dbbackup==5.0.0",
"django-elasticsearch-dsl==8.2",
"django-extensions==4.1",
"django-filter==25.2",
"django-health-check==3.20.0",
"django-hosts==7.0.0",
"django-jazzmin==3.0.1",
"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-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",
"docutils==0.21.2",
"drf-spectacular[sidecar]==0.28.0",
"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",
"polib==1.2.0",
"PyJWT==2.10.1",
"python-slugify==8.0.4",
"psutil==7.1.2",
"psycopg2==2.9.11",
"pydantic==2.12.3",
"pymdown-extensions==10.16.1",
"redis==7.0.0",
"requests==2.32.5",
"sentry-sdk[django,celery,opentelemetry]==2.42.1",
"six==1.17.0",
"swapper==1.4.0",
"zeep==4.3.2",
"pip>=25.3",
"coverage>=7.11.0",
]
[project.optional-dependencies]
testing = ["pytest==8.4.2", "pytest-django==4.11.1", "coverage==7.11.0"]
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",
]
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"]
[dependency-groups]
testing = ["pytest==8.4.2", "pytest-django==4.11.1", "coverage==7.11.0"]
linting = [
"isort==7.0.0",
"bandit==1.8.6",
"pre-commit==4.3.0",
"mypy==1.18.2",
"mypy-extensions==1.1.0",
"ruff==0.14.2",
"celery-stubs==0.1.3",
]
dev = [{ include-group = "testing" }, { include-group = "linting" }]
[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"