import csv,json,pathlib,argparse def evaluate(root): def rows(name):return list(csv.DictReader((root/name).open(newline=""))) latest={} for r in rows("extension-orders.csv"): if r["id"] not in latest or int(r["version"])>int(latest[r["id"]]["version"]):latest[r["id"]]=r sales=rows("extension-margin.csv");revenue=sum(int(r["revenue_cents"]) for r in sales);cost=sum(int(r["cost_cents"]) for r in sales) y=[int(r["units"]) for r in rows("extension-demand.csv")];prediction=y[3];mae=sum(abs(v-prediction) for v in y[4:])/len(y[4:]) permitted=[] for r in json.loads((root/"extension-requests.json").read_text()): permitted.append(isinstance(r,dict) and set(r)=={"tool","arguments"} and r["tool"]=="read_document" and isinstance(r["arguments"],dict) and set(r["arguments"])=={"id"} and r["arguments"]["id"]=="F1") groups={} for r in rows("extension-groups.csv"):groups.setdefault(r["region"],[]).append(int(r["amount_cents"])) retail=rows("extension-industry.csv") purchasing={r["session_id"] for r in rows("extension-customer-orders.csv")} sessions=rows("extension-customer-sessions.csv") return {"session_conversion":len(purchasing)/len(sessions),"latest_order_value_cents":sum(int(r["value_cents"]) for r in latest.values()),"gross_margin":(revenue-cost)/revenue if revenue else None,"last_value_prediction":prediction,"validation_mae":mae,"permitted_tool_cases":permitted,"released_groups":{g:{"count":len(v),"amount_cents":sum(v)} for g,v in groups.items() if len(v)>=2},"retail_operating_difference_cents":sum(int(r["revenue_cents"])-int(r["cogs_cents"])-int(r["operating_cents"]) for r in retail)} if __name__=="__main__": p=argparse.ArgumentParser();p.add_argument("--source",default=".");a=p.parse_args();print(json.dumps(evaluate(pathlib.Path(a.source)),indent=2,sort_keys=True))