Skip to main content

entirius-django-enrichment

A Django module for reviewed content enrichment in Entirius, the open-source modular ecommerce platform. It runs an accept-before-write loop for product content (descriptions, attributes, SEO, media): typed tasks are spawned, an external worker returns proposals, an operator reviews them, and only accepted proposals are written back to the source module through an adapter.

PyPI Python License: MPL-2.0

What it does

  • Spawns enrichment tasks over a scope of products: a list, a filter, a CSV file or a quality gap.
  • Takes proposals from an external worker, one per field, with idempotent intake and staged media files.
  • Offers a review queue with single and bulk accept and reject; a value that changed since the proposal was made is never overwritten without a second confirmation.
  • Writes accepted proposals through a per-module adapter and supports a single-level undo.
  • Runs spawn rules on a schedule and prunes finished work after a retention window.
  • Exposes an admin API (JWT, Pydantic schemas, OpenAPI) for the CMS and the worker.

Installation

uv add entirius-django-enrichment
pip install entirius-django-enrichment

Optional extras: entirius-django-enrichment[demo] (Pillow, for the seed_demo_proposals command).

INSTALLED_APPS = [
    ...
    "django_utils",
    "django_enrichment",
]

# urls.py
urlpatterns = [
    path("", include("django_enrichment.urls")),
]

# adapters of the source modules in use
ENRICHMENT_ADAPTERS = {"pim": "django_pim.services.enrichment_adapter"}

ENRICHMENT_ADAPTERS is the one setting a working installation needs; the other ENRICHMENT_* settings are listed with their defaults in https://github.com/entirius/entirius-django-enrichment/blob/develop/AGENTS.md (section Settings).

Quick start

from django_enrichment.services import task_service

task = task_service.spawn(
    type="translate",
    scope_spec={"mode": "list", "module": "pim", "refs": ["SKU-1", "SKU-2"]},
    params={"language": "de"},
)

The worker then pulls the task and posts proposals to api/enrichment/v2/admin/proposals/.

Requirements

  • Python 3.11 or newer, Django 5.0 or newer.
  • A Celery worker consuming the enrichment queue (bulk apply, undo, retention, scheduled spawn rules).
  • Entirius packages pulled in: entirius-django-utils. Adapters live in the source modules; the catalog adapter ships with entirius-django-pim and is loaded lazily, so this module never imports it.

Documentation

Part of Entirius

This module runs inside the Entirius backend service (Volkanos) and improves the content other modules own.

Development

make install     # sync dependencies (uv, incl. extras)
make check       # lint + format check (ruff)
make test        # test suite (pytest + pytest-django, sqlite in memory)

Development and agent instructions: https://github.com/entirius/entirius-django-enrichment/blob/develop/AGENTS.md

License

Mozilla Public License 2.0 (MPL-2.0) — see https://github.com/entirius/entirius-django-enrichment/blob/develop/LICENSE.

Metadata

Release files for entirius-django-enrichment 2.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for entirius-django-enrichment 2.2.0
File Size Uploaded
entirius_django_enrichment-2.2.0.tar.gz 159.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for entirius-django-enrichment 2.2.0
File Interpreter ABI Platform
entirius_django_enrichment-2.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 238.1 kB

Release files / entirius_django_enrichment-2.2.0.tar.gz

Download URL entirius_django_enrichment-2.2.0.tar.gz
Size 159.7 kB
Tags Source
SHA-256 checksum
How to use checksums
504bfcbab3bd21962a75cb197d78bfa90d46ce9f251943f2533768a54f0218af
BLAKE2b-256 checksum
How to use checksums
c4231dc9d69e2ffbaa073e111183d45a3a4b2634d846a0cf7b22a9b95deaed3d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / entirius_django_enrichment-2.2.0-py3-none-any.whl

Download URL entirius_django_enrichment-2.2.0-py3-none-any.whl
Size 78.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1f99f6d8867d64778b35a4be4315d0ea915756bb8199de5e3565d70916eb238f
BLAKE2b-256 checksum
How to use checksums
0e33fd5e92cb289b67eb759764c54eb32a3ed3d73bb5d28d3368536b15de0ac4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

This release

2.2.0 This release

2 release files

2.1.0

2 release files

2.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page