Skip to main content

stapel-shop

CI coverage pypi downloads python license llms.txt

Composite preset for a catalog shop (categories + typed attributes + listings + reviews): wires stapel-categories, stapel-listings and stapel-reviews into one INSTALLED_APPS/urls/config bundle, defaults reviews' TARGET_TYPES to the catalog's listings, and owns the one piece of real cross-domain glue a composite is allowed to know both sides of: ListingReviewSummaryProjection (reviews -> listings per-listing rating aggregate, local live_query in the monolith or event-carried state transfer when reviews is split into its own service).

Part of the Stapel framework — composable Django apps that deploy as a monolith or as microservices without changing module code.

Install

pip install stapel-shop

At a glance

Fact Value
Version 0.2.26
Python >=3.11 (3.11, 3.12, 3.13, 3.14)
Fleet dependencies stapel-attributes · stapel-categories · stapel-listings · stapel-reviews

Documentation

capabilities.json · llms.txt (for agents)

Likes/favourites are NOT included yet: stapel-engagement does not exist. They arrive as a MINOR bump of this composite once it does.

Assemble (one line)

pip install stapel-tools
stapel-assemble myshop --libs shop
cd myshop && make test

That expands shop through the STAPEL_LIBS requires closure and wires every member module into INSTALLED_APPS, requirements.txt, urls.py and CONFIG.MD, then runs the verify gates.

Manual wiring (no scaffold)

# settings.py
from stapel_shop import preset

INSTALLED_APPS = [
    # ... django/stapel-core baseline (incl. stapel_core.django.projections)
    "stapel_categories",
    "stapel_listings",
    "stapel_reviews",
    "stapel_shop",
]
for _k, _v in preset.SETTINGS_DEFAULTS.items():
    globals().setdefault(_k, _v)

# urls.py
from django.urls import include, path

urlpatterns = [
    path("categories/", include("stapel_categories.urls")),
    path("listings/", include("stapel_listings.urls")),
    path("reviews/", include("stapel_reviews.urls")),
]

Config checklist (fill these, in the generated project's CONFIG.MD too)

Key Note
STAPEL_REVIEWS["TARGET_TYPES"] prefilled by stapel_shop.preset.SETTINGS_DEFAULTS (targets listing); add can_review/can_moderate Functions to restrict
STAPEL_LISTINGS["BASE_CURRENCY"] default USD — set your currency
STAPEL_LISTINGS["DEFAULT_LISTING_TTL_DAYS"] default 30
STAPEL_REVIEWS["RATING_MIN"/"RATING_MAX"] defaults 1..5

Glue (what this package actually contains)

  • stapel_shop.projections.ListingReviewSummaryProjection — reviews→listings rating aggregate. Local mode (monolith): live reads through reviews.aggregates_by_keys. Remote mode: ListingReviewSummary table fed from reviews.review.published/hidden facts, rebuilt from reviews.aggregates_export.
  • Read it ONLY through stapel_core.comm.projections.read("shop.listing_review_summary", keys=[...]){key: {"avg": float, "count": int}}, the same shape in both modes; a key with no published review is absent from the answer.
  • Requires stapel-reviews >= 0.2, the release that shipped both Functions this projection is declared against.

License

MIT — see LICENSE.


This page is assembled by stapel-readme from docs/readme.md plus the contract artifacts in docs/. Edit the prose in docs/readme.md; the badges, facts and links above and below it are generated — do not hand-edit README.md.

Download files

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

Source Distribution

stapel_shop-0.2.26.tar.gz (24.7 kB view details)

Uploaded Source

Built Distribution

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

stapel_shop-0.2.26-py3-none-any.whl (24.1 kB view details)

Uploaded Python 3

File details

Details for the file stapel_shop-0.2.26.tar.gz.

File metadata

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

File hashes

Hashes for stapel_shop-0.2.26.tar.gz
Algorithm Hash digest
SHA256 65b7f76020dd07ec83424a1e40327d5fb0cef8260c910bf7a8e730d060298f3d
MD5 49bfa87395971d44b684e0a9a0de3203
BLAKE2b-256 668a74f930287d0b771fbb329620b870aebb238259dd2ca3c4dda3ce9ba4af7b

See more details on using hashes here.

Provenance

The following attestation bundles were made for stapel_shop-0.2.26.tar.gz:

Publisher: publish.yml on usestapel/stapel-shop

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_shop-0.2.26-py3-none-any.whl.

File metadata

  • Download URL: stapel_shop-0.2.26-py3-none-any.whl
  • Upload date:
  • Size: 24.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for stapel_shop-0.2.26-py3-none-any.whl
Algorithm Hash digest
SHA256 7d3bf075928d2e0f2e21dfcdc71b47abc3af85892729b3df6520bfa70adc13b0
MD5 578ee3e14f49429d0150d7a9095f65e9
BLAKE2b-256 070593d0582af18c6d117fdfadcf209591df0f4d657e0eebdeb9fe7ba06bb1ba

See more details on using hashes here.

Provenance

The following attestation bundles were made for stapel_shop-0.2.26-py3-none-any.whl:

Publisher: publish.yml on usestapel/stapel-shop

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.2.34

2 files

0.2.33

2 files

0.2.32

2 files

0.2.31

2 files

0.2.30

2 files

0.2.29

2 files

0.2.28

2 files

0.2.27

2 files

This release

0.2.26 This release

2 files

0.2.25

2 files

0.2.24

2 files

0.2.22

2 files

0.2.21

2 files

0.2.20

2 files

0.2.19

2 files

0.2.18

2 files

0.2.17

2 files

0.2.16

2 files

0.2.15

2 files

0.2.14

2 files

0.2.12

2 files

0.2.11

2 files

0.2.10

2 files

0.2.9

2 files

0.2.8

2 files

0.2.7

2 files

0.2.6

2 files

0.2.5

2 files

0.2.4

2 files

0.2.3

2 files

0.2.2

2 files

0.2.1

2 files

0.2.0

2 files

0.1.5

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