"""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))
