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,14 @@
from typing import Dict, Set
def candidate_subs(nav: Dict[str, Dict])-> Set[str]:
nav_sub_candidates: Set[str] = set()
for label, data in (nav.get("cats") or {}).items():
top_slug = (data or {}).get("slug")
if not top_slug:
continue
for s in (data.get("subs") or []):
sub_slug = (s.get("slug") or "").strip()
if sub_slug:
nav_sub_candidates.add(f"/{top_slug}/{sub_slug}")
return nav_sub_candidates