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,21 @@
from typing import Dict, Tuple, List
import time
_nav_cache: dict = {}
_nav_cache_ts: float = 0.0
_nav_ttl_seconds = 60 * 60 * 6
_detail_cache: Dict[str, Dict] = {}
_detail_cache_ts: Dict[str, float] = {}
_detail_ttl_seconds = 60 * 60 * 6
KNOWN_PRODUCT_SLUGS: set[str] = set()
_listing_variant_cache: Dict[str, Tuple[str, float]] = {}
_listing_variant_ttl = 60 * 60 * 6
_listing_page_cache: Dict[str, Tuple[Tuple[List[Dict], int], float]] = {}
_listing_page_ttl = 60 * 30
def now() -> float:
return time.time()