schon/pyproject.toml
Egor fureunoir Gorbunov 118882ac1b Features: 1) Add new make-messages.ps1 and compile-messages.ps1 scripts for Windows localization workflow; 2) Update Docker ENTRYPOINT scripts to use bash for app, worker, stock_updater, and beat containers; 3) Bump project version to 2.9.1 in pyproject.toml and settings;
Fixes: 1) Ensure `install.ps1` handles non-zero exit codes gracefully; 2) Remove redundant `vm.overcommit_memory` Docker sysctl setting; 3) Add explicit exit command to `starter.ps1` for clean terminations;

Extra: Minor formatting and consistency improvements across ENTRYPOINT scripts;
2025-07-03 18:33:37 +03:00

124 lines
No EOL
3.6 KiB
TOML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[tool.poetry]
name = "eVibes"
version = "2.9.1"
description = "eVibes is an open-source eCommerce backend service built with Django. Its designed for flexibility, making it ideal for various use cases and learning Django skills. The project is easy to customize, allowing for straightforward editing and extension."
authors = ["fureunoir <contact@fureunoir.com>"]
readme = "README.md"
package-mode = false
[tool.poetry.dependencies]
aiosmtpd = "1.4.6"
celery = { version = "5.5.3", optional = true }
celery-prometheus-exporter = { version = "1.7.0", optional = true }
colorlog = "6.9.0"
click = "8.2.1"
cryptography = "45.0.4"
django = "5.2"
django-cacheops = "7.2"
django-celery-beat = { version = "2.8.1", optional = true }
django-celery-results = { version = "2.6.0", optional = true }
django-constance = "4.3.2"
django-cors-headers = "4.7.0"
django-dbbackup = "4.3.0"
django-elasticsearch-dsl = "8.0"
django-elasticsearch-dsl-drf = "0.22.5"
django-extensions = "4.1"
django-filter = "25.1"
django-health-check = "3.20.0"
django-hosts = "6.0"
django-jazzmin = "3.0.1"
django-json-widget = "2.0.1"
django-mailbox = "4.10.1"
django-model-utils = "5.0.0"
django-modeltranslation = "0.19.15"
django-mptt = "0.17.0"
django-prometheus = "2.3.1"
django-redis = "6.0.0"
django-ratelimit = "4.1.0"
django-storages = "1.14.6"
django-stubs = "5.2.1"
django-summernote = "0.8.20.0"
django-widget-tweaks = "1.5.0"
django-md-field = "0.1.0"
djangorestframework = "3.16.0"
djangorestframework-camel-case = "1.4.2"
djangorestframework-recursive = "0.1.2"
djangorestframework-simplejwt = { extras = ["crypto"], version = "5.5.0" }
djangorestframework-stubs = "3.16.0"
djangorestframework-xml = "2.0.0"
djangorestframework-yaml = "2.0.0"
docutils = "0.21.2"
drf-spectacular = { extras = ["sidecar"], version = "0.28.0" }
elasticsearch = "8.18.1"
elasticsearch-dsl = "8.18.0"
filelock = "3.18.0"
filetype = "1.2.0"
graphene-django = "3.2.3"
graphene-file-upload = "1.3.0"
gunicorn = "23.0.0"
httpx = "0.28.1"
jupyter = { version = "1.1.1", optional = true }
mypy = "1.16.1"
openai = { version = "1.88.0", optional = true }
paramiko = "3.5.1"
pillow = "11.2.1"
polib = "1.2.0"
poetry-core = "2.1.3"
PyJWT = "2.9.0"
python = ">=3.12,<3.13"
python-slugify = "8.0.4"
psutil = "6.1.1"
psycopg2 = "2.9.10"
pydantic = "2.9.2"
pygraphviz = { version = "1.14", optional = true, markers = "sys_platform != 'win32'" }
pymdown-extensions = "10.15"
redis = "6.2.0"
requests = "2.32.4"
ruff = "0.12.0"
sentry-sdk = { extras = ["django", "celery", "opentelemetry", "redis"], version = "2.27.0" }
six = "1.17.0"
swapper = "1.4.0"
yapf = "0.43.0"
zeep = "4.3.1"
[tool.poetry.group.dev.dependencies]
black = "25.1.0"
celery-stubs = "0.1.3"
isort = "6.0.1"
flake8 = "7.2.0"
mypy-extensions = "1.1.0"
pytest = "8.4.1"
pytest-django = "4.11.1"
coverage = "7.9.1"
pre-commit = "4.2.0"
bandit = "1.8.5"
[tool.poetry.extras]
graph = ["pygraphviz"]
worker = ["celery", "django-celery-beat", "django-celery-results", "celery-prometheus-exporter"]
openai = ["openai"]
jupyter = ["jupyter"]
docs = ["sphinx", "sphinx-rtd-theme", "m2r2"]
testing = ["pytest", "pytest-django", "coverage"]
linting = ["black", "isort", "flake8", "bandit"]
[tool.mypy]
disable_error_code = ["no-redef", "import-untyped"]
exclude = ["*/migrations/*"]
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"