Programming
1. Render report
"""Render the standalone HTML deliverable from marts already in the database."""
from pathlib import Path
from django.core.management.base import BaseCommand
from lending_analytics import config as C
from lending_analytics import report as R
from portfolio import bridge
from portfolio.models import QualityCheck, ReportRun
class Command(BaseCommand):
help = "Render the self-contained HTML report."
def add_arguments(self, parser):
parser.add_argument("--lang", default="ru")
parser.add_argument("--fx", default="nominal")
parser.add_argument("--units", default="mlrd")
def handle(self, *args, **o):
import pandas as pd
marts = bridge.get_marts()
period = bridge.latest_period()
checks = pd.DataFrame(list(
QualityCheck.objects.filter(run_period=period)
.values("check_name", "severity", "status", "detail")))
checks = checks.rename(columns={"check_name": "check"})
if checks.empty:
checks = pd.DataFrame(columns=["check", "severity", "status", "detail"])
spec = C.ReportSpec(lang=o["lang"], fx_mode=o["fx"], units=o["units"])
out = R.build_report(marts, checks, spec)
ReportRun.objects.update_or_create(
period=period, lang=o["lang"],
defaults=dict(fx_mode=o["fx"], html_path=str(Path(out).resolve())))
self.stdout.write(self.style.SUCCESS(f"report → {out}"))
PO
powerty
Author
· Staff
Aug. 26, 2026
Aug. 26, 2026
2
Views
0
Likes
1m
Read