Replace WYSIWYG editor with Markdown editor across all relevant models and admin fields. Add utilities for rendering and stripping markdown. Adjust serializers, views, and templates to support markdown content. Introduce `PastedImage` model and upload endpoint for handling inline image uploads in markdown. This change simplifies content formatting while enhancing flexibility with markdown support.
156 lines
3.8 KiB
TOML
156 lines
3.8 KiB
TOML
[project]
|
|
name = "schon"
|
|
version = "2026.1"
|
|
description = "Schon — 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.25.0",
|
|
"aiosmtpd==1.4.6",
|
|
"channels==4.3.2",
|
|
"channels-redis==4.3.0",
|
|
"colorlog==6.10.1",
|
|
"coverage==7.13.4",
|
|
"click==8.3.1",
|
|
"cryptography==46.0.5",
|
|
"django==5.2.11",
|
|
"django-cacheops==7.2",
|
|
"django-constance==4.3.4",
|
|
"django-cors-headers==4.9.0",
|
|
"django-dbbackup==5.2.0",
|
|
"django-elasticsearch-dsl==8.2",
|
|
"django-extensions==4.1",
|
|
"django-filter==25.2",
|
|
"django-health-check==4.0.6",
|
|
"django-import-export[all]==4.4.0",
|
|
"django-json-widget==2.1.1",
|
|
"django-model-utils==5.0.0",
|
|
"django-md-field==0.1.0",
|
|
"django-modeltranslation==0.19.19",
|
|
"django-mptt==0.18.0",
|
|
"django-redis==6.0.0",
|
|
"django-ratelimit==4.1.0",
|
|
"django-storages==1.14.6",
|
|
"django-unfold==0.81.0",
|
|
"django-unfold-markdown==0.1.2",
|
|
"django-debug-toolbar==6.2.0",
|
|
"django-widget-tweaks==1.5.1",
|
|
"djangorestframework==3.16.1",
|
|
"djangorestframework-recursive==0.1.2",
|
|
"djangorestframework-simplejwt[crypto]==5.5.1",
|
|
"djangorestframework-xml==2.0.0",
|
|
"djangorestframework-yaml==2.0.0",
|
|
"djangoql==0.19.1",
|
|
"docutils==0.22.4",
|
|
"drf-spectacular==0.29.0",
|
|
"drf-spectacular-websocket==1.3.1",
|
|
"drf-orjson-renderer==1.8.0",
|
|
"elasticsearch-dsl==8.18.0",
|
|
"filelock==3.24.3",
|
|
"filetype==1.2.0",
|
|
"graphene-django==3.2.3",
|
|
"graphene-file-upload==1.3.0",
|
|
"httpx==0.28.1",
|
|
"markdown==3.10.2",
|
|
"opentelemetry-instrumentation-django==0.60b1",
|
|
"paramiko==4.0.0",
|
|
"pillow==12.1.1",
|
|
"pip==26.0.1",
|
|
"polib==1.2.0",
|
|
"PyJWT==2.11.0",
|
|
"pytest==9.0.2",
|
|
"pytest-django==4.12.0",
|
|
"python-slugify==8.0.4",
|
|
"psutil==7.2.2",
|
|
"psycopg[binary]==3.3.3",
|
|
"redis==7.2.1",
|
|
"requests==2.32.5",
|
|
"sentry-sdk[django,celery,opentelemetry]==2.53.0",
|
|
"six==1.17.0",
|
|
"swapper==1.4.0",
|
|
"uvicorn==0.41.0",
|
|
"zeep==4.3.2",
|
|
"websockets==16.0",
|
|
"whitenoise==6.12.0",
|
|
]
|
|
|
|
[project.optional-dependencies]
|
|
worker = [
|
|
"celery==5.6.2",
|
|
"django-celery-beat==2.8.1",
|
|
"django-celery-results==2.6.0",
|
|
]
|
|
linting = [
|
|
"ty==0.0.16",
|
|
"ruff==0.15.4",
|
|
"celery-types==0.24.0",
|
|
"django-stubs==5.2.9",
|
|
"djangorestframework-stubs==3.16.8",
|
|
"types-requests==2.32.4.20260107",
|
|
"types-redis==4.6.0.20241004",
|
|
"types-paramiko==4.0.0.20250822",
|
|
"types-psutil==7.2.2.20260130",
|
|
"types-pillow==10.2.0.20240822",
|
|
"types-docutils==0.22.3.20260223",
|
|
"types-six==1.17.0.20251009",
|
|
]
|
|
openai = ["openai==2.24.0"]
|
|
jupyter = ["jupyter==1.1.1"]
|
|
|
|
[tool.uv]
|
|
package = false
|
|
|
|
[tool.uv.pip]
|
|
python-version = "3.13"
|
|
|
|
[tool.ruff]
|
|
line-length = 88
|
|
target-version = "py312"
|
|
exclude = [
|
|
"Dockerfiles",
|
|
"monitoring",
|
|
"scripts",
|
|
"static",
|
|
"storefront",
|
|
"tmp",
|
|
"media",
|
|
]
|
|
|
|
[tool.ruff.lint]
|
|
select = ["E4", "E7", "E9", "F", "B", "Q", "I"]
|
|
ignore = ["RUF012", "A002", "A003"]
|
|
|
|
[tool.ruff.lint.isort]
|
|
known-first-party = ["schon", "engine"]
|
|
|
|
[tool.ruff.format]
|
|
quote-style = "double"
|
|
indent-style = "space"
|
|
|
|
[tool.ty.src]
|
|
exclude = [
|
|
"Dockerfiles/**",
|
|
"monitoring/**",
|
|
"scripts/**",
|
|
"static/**",
|
|
"storefront/**",
|
|
"tmp/**",
|
|
"media/**",
|
|
]
|
|
|
|
[tool.ty.environment]
|
|
python-version = "3.12"
|
|
|
|
[tool.ty.terminal]
|
|
output-format = "concise"
|
|
|
|
[tool.ty.rules]
|
|
possibly-unresolved-reference = "warn"
|
|
possibly-missing-attribute = "warn"
|
|
possibly-missing-import = "warn"
|
|
unsupported-base = "warn"
|
|
|
|
|
|
[tool.django-stubs]
|
|
django_settings_module = "schon.settings.__init__"
|