Fixes: 1) Corrected `ForeignKey` type assertions across models; 2) Resolved typos and formatting inconsistencies in `.env` and README; 3) Fixed explicit boolean checks in user manager methods. Extra: Updated type hints in multiple models, serializers, and views.
117 lines
No EOL
3.6 KiB
TOML
117 lines
No EOL
3.6 KiB
TOML
[tool.poetry]
|
||
name = "eVibes"
|
||
version = "2.8.9"
|
||
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
|
||
|
||
[build-system]
|
||
requires = ["poetry-core"]
|
||
build-backend = "poetry.core.masonry.api"
|
||
|
||
[tool.poetry.dependencies]
|
||
aiosmtpd = "1.4.6"
|
||
celery = { version = "5.5.2", optional = true }
|
||
celery-prometheus-exporter = { version = "1.7.0", optional = true }
|
||
colorlog = "6.9.0"
|
||
cryptography = "44.0.3"
|
||
django = "5.2"
|
||
django-cacheops = "7.2"
|
||
django-celery-beat = { version = "2.8.0", optional = true }
|
||
django-celery-results = { version = "2.6.0", optional = true }
|
||
django-constance = "4.3.2"
|
||
django-cors-headers = "4.7.0"
|
||
django-daisy = "1.0.23"
|
||
django-dbbackup = "4.2.1"
|
||
django-elasticsearch-dsl = "8.0"
|
||
django-elasticsearch-dsl-drf = "0.22.5"
|
||
django-extensions = "4.1"
|
||
django-filter = "25.1"
|
||
django-health-check = "3.19.1"
|
||
django-hosts = "6.0"
|
||
django-json-widget = "2.0.1"
|
||
django-mailbox = "4.10.1"
|
||
django-model-utils = "5.0.0"
|
||
django-modeltranslation = "0.19.14"
|
||
django-mptt = "0.17.0"
|
||
django-prometheus = "^2.3.1"
|
||
django-redis = "5.4.0"
|
||
django-ratelimit = "4.1.0"
|
||
django-storages = "1.14.6"
|
||
django-stubs = "5.2.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"
|
||
drf-spectacular = { extras = ["sidecar"], version = "0.28.0" }
|
||
elasticsearch-dsl = "8.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.77.0", optional = true }
|
||
paramiko = "3.5.1"
|
||
pillow = "11.2.1"
|
||
polib = "1.2.0"
|
||
poetry-core = "2.1.3"
|
||
python = ">=3.12,<3.13"
|
||
psutil = "6.1.1"
|
||
psycopg2 = "2.9.10"
|
||
pygraphviz = { version = "1.14", optional = true, markers = "sys_platform != 'win32'" }
|
||
pymdown-extensions = "10.15"
|
||
redis = "6.0.0"
|
||
requests = "2.32.3"
|
||
ruff = "0.11.8"
|
||
sentry-sdk = { extras = ["django", "celery", "opentelemetry", "redis"], version = "2.27.0" }
|
||
six = "1.17.0"
|
||
swapper = "1.4.0"
|
||
zeep = "4.3.1"
|
||
|
||
[tool.poetry.group.dev.dependencies]
|
||
black = "25.1.0"
|
||
celery-stubs = "0.1.3"
|
||
isort = "5.13.2"
|
||
flake8 = "7.2.0"
|
||
mypy-extensions = "1.1.0"
|
||
pytest = "8.4.1"
|
||
pytest-django = "4.11.1"
|
||
coverage = "7.8.2"
|
||
pre-commit = "4.2.0"
|
||
safety = "3.5.2"
|
||
bandit = "1.2.0"
|
||
|
||
[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 = ["import-untyped", "misc"]
|
||
exclude = ["*/migrations/*"]
|
||
|
||
[tool.ruff]
|
||
line-length = 120
|
||
target-version = "py38"
|
||
exclude = ["migrations", "media", "static", "storefront"]
|
||
|
||
[tool.ruff.lint]
|
||
select = ["E", "W", "F", "B", "I", "RUF", "UP", "N", "A", "COM", "C4", "DJ001", "RSE", "SIM", "ISC", "TID252", "PGH004"]
|
||
ignore = ["B904", "RUF001", "RUF002", "RUF003", "RUF005", "RUF012", "A003", "A002", "COM812", "S603"]
|
||
per-file-ignores = { "__init__.py" = ["E402", "F401"] }
|
||
|
||
[tool.ruff.format]
|
||
quote-style = "double"
|
||
indent-style = "space" |