Fixes: 1) Resolve annotations compatibility with mypy `type: ignore` adjustments; 2) Correct `resolve_price_with_currency` method to ensure proper float returns; 3) Handle scenarios for empty or null queryset in vendor methods. Extra: 1) Refactor utility functions for better type annotations and robustness; 2) Minor formatting corrections and removal of redundant mypy strict setting; 3) Improve method return types for consistency.
124 lines
No EOL
3.6 KiB
TOML
124 lines
No EOL
3.6 KiB
TOML
[tool.poetry]
|
||
name = "eVibes"
|
||
version = "2.9.2"
|
||
description = "eVibes is an open-source eCommerce backend service built with Django. It’s 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/*", "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" |