Programming
1. import marts
"""Unpack a mart bundle on the server and load it. The only write the server does."""
import json
import zipfile
from pathlib import Path
from django.core.management.base import BaseCommand, CommandError
from lending_analytics import config as C
from portfolio import bridge
class Command(BaseCommand):
help = "Import a mart bundle produced by export_marts."
def add_arguments(self, parser):
parser.add_argument("path")
def handle(self, *args, **o):
src = Path(o["path"])
if not src.exists():
raise CommandError(f"not found: {src}")
target = Path(C.MART_DIR)
target.mkdir(parents=True, exist_ok=True)
with zipfile.ZipFile(src) as z:
manifest = json.loads(z.read("manifest.json")) if "manifest.json" in z.namelist() else {}
z.extractall(target)
self.stdout.write(f"extracted {len(manifest.get('files', []))} marts "
f"(built {manifest.get('version', '?')})")
counts = bridge.sync_all(target, verbose=self.stdout.write)
self.stdout.write(self.style.SUCCESS(
f"live: period {bridge.latest_period()}, {sum(counts.values()):,} rows"))
PO
powerty
Author
· Staff
Aug. 26, 2026
Aug. 26, 2026
2
Views
0
Likes
1m
Read