Skip to main content

stapel-listings

CI coverage pypi downloads python license llms.txt

Listings and catalog vertical for the Stapel framework — composable Django apps that deploy as a monolith or as microservices without changing module code.

Listing is the marketplace core: an owner, an opaque category, typed attribute values, a two-machine lifecycle + moderation status, a publish pipeline, and first-class favorites. It consumes stapel-categories (feature schema, over comm) and stapel-attributes (value validation), and stays decoupled from search, moderation and currencies (see the boundaries below).

Install

pip install stapel-listings
INSTALLED_APPS = [
    # ...
    "stapel_listings",
]

# urls.py
path("listings/", include("stapel_listings.urls"))

Requires a categories.features comm Function provider (stapel-categories) for value validation against a category's schema.

Settings

All configuration lives in the STAPEL_LISTINGS namespace (dict setting, flat setting, or env var — resolved lazily). Full table with seam semantics in MODULE.md.

Key Default Meaning
CATEGORY_FEATURES_FUNCTION "categories.features" comm Function resolving a category's feature schema.
PRICE_BASE_CONVERTER identity Dotted-path (amount, currency, base) -> Decimal.
AUTO_APPROVE_ON_PUBLISH False Publish immediately when no moderation module is installed.
REQUIRE_IMAGE_ON_PUBLISH True Require ≥1 image to publish.
DEFAULT_LISTING_TTL_DAYS 30 Days until a published listing expires.

comm surface

Emits (Actions): listing.submitted (moderation boundary), listing.published / listing.updated / listing.removed (search boundary). Consumes: category.changed, moderation.completed, user.deleted. Provides Function: listings.status. Calls: categories.features.

Boundaries: search/filtering is a separate stapel-search module fed by the listing.* events (this module builds features_search but exposes no search endpoints); moderation is a separate stapel-moderation module (this module emits listing.submitted and applies moderation.completed, it runs no moderation pipeline).

Extension points

See MODULE.md — the agent-facing map of every fork-free seam (settings, serializer seams, comm surface, GDPR provider).

Development

pip install -e . && pip install pytest pytest-django ruff
./setup-hooks.sh
pytest tests/

License

MIT

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

stapel_listings-0.3.7.tar.gz (46.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

stapel_listings-0.3.7-py3-none-any.whl (48.5 kB view details)

Uploaded Python 3

File details

Details for the file stapel_listings-0.3.7.tar.gz.

File metadata

  • Download URL: stapel_listings-0.3.7.tar.gz
  • Upload date:
  • Size: 46.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for stapel_listings-0.3.7.tar.gz
Algorithm Hash digest
SHA256 f04c4bee84422a51969a2f5c4360997c1820f96eb538a185ea4f41095c8e1005
MD5 3e313d6a832108e08f05b07a6bcb9818
BLAKE2b-256 db981c50dff7e624584c49e8933570e94114167d93d98311fba1f56314940254

See more details on using hashes here.

Provenance

The following attestation bundles were made for stapel_listings-0.3.7.tar.gz:

Publisher: publish.yml on usestapel/stapel-listings

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file stapel_listings-0.3.7-py3-none-any.whl.

File metadata

File hashes

Hashes for stapel_listings-0.3.7-py3-none-any.whl
Algorithm Hash digest
SHA256 e9671ae759fe5a2b9d481741269044f69be58c025f221088e59cc90db0a39736
MD5 ad8f2f7d9e0e07e0e37da864e33ad37a
BLAKE2b-256 5e1cb732baabac5f27f3e8d7a6538d3b739308cff7cb19c4955ee9efb20df8c4

See more details on using hashes here.

Provenance

The following attestation bundles were made for stapel_listings-0.3.7-py3-none-any.whl:

Publisher: publish.yml on usestapel/stapel-listings

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.9.0

2 files

0.8.0

2 files

0.7.1

2 files

0.7.0

2 files

0.6.2

2 files

0.6.1

2 files

0.6.0

2 files

0.5.0

2 files

0.4.0

2 files

0.3.8

2 files

This release

0.3.7 This release

2 files

0.3.5

2 files

0.3.4

2 files

0.3.3

2 files

0.3.2

2 files

0.3.1

2 files

0.3.0

2 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