feat: initialize market app with browsing, product, and scraping code
Some checks failed
Build and Deploy / build-and-deploy (push) Has been cancelled

Split from coop monolith. Includes:
- Market/browse/product blueprints
- Product sync API
- Suma scraping pipeline
- Templates for market, browse, and product views
- Dockerfile and CI workflow for independent deployment
This commit is contained in:
giles
2026-02-09 23:16:34 +00:00
commit 6271a715a1
142 changed files with 8517 additions and 0 deletions

View File

@@ -0,0 +1,16 @@
from typing import Dict, Set
# make valid subs for ewch top in nav
def valid_subs(nav: Dict[str, Dict])->Dict[str, Set[str]] :
valid_subs_by_top: Dict[str, Set[str]] = {}
for label, data in (nav.get("cats") or {}).items():
top_slug = (data or {}).get("slug")
if not top_slug:
continue
subs_set = {
(s.get("slug") or "").strip()
for s in (data.get("subs") or [])
if s.get("slug")
}
valid_subs_by_top[top_slug] = subs_set
return valid_subs_by_top