"""Local fictional learning reference. No website/database/cloud connection.""" import csv,json,sqlite3,hashlib,math,re,statistics,collections from pathlib import Path def sql_lab(source,out): # Select-only teaching SQL stored separately per module. Local fixture opened read-only. connection=sqlite3.connect('file:'+str((Path(source)/'haven_practice.sqlite').resolve())+'?mode=ro',uri=True) connection.row_factory=sqlite3.Row queries=json.loads((Path(source)/'queries.json').read_text()) result={name:[dict(r) for r in connection.execute(sql)] for name,sql in queries.items()} connection.close();return result if __name__=='__main__': import argparse,platform parser=argparse.ArgumentParser();parser.add_argument('--source',default='.');parser.add_argument('--output',required=True);args=parser.parse_args() source=Path(args.source).resolve();out=Path(args.output).resolve() if source==out:raise ValueError('Source and output must differ') out.mkdir(parents=False,exist_ok=False) # Partial folders after an error are NOT successful; result.json is written last. result=sql_lab(source,out) with (out/'result.json').open('x',encoding='utf-8') as handle:json.dump(result,handle,indent=2,allow_nan=False);handle.write(chr(10)) print(json.dumps(result,indent=2,allow_nan=False))