# Rerun earlier building corpora in a new directory without changing old evidence.
import argparse
import json
from pathlib import Path
from hearth.quality_assessment import run as core
from examples.building_space import run as space
from examples.building_detail import run as detail
from examples.building_holdout import run as holdout
from examples.building_craft import run as craft


def run(seed, output, artifacts):
    output.mkdir(parents=True, exist_ok=True)
    result = {'core': core(output / 'core', artifacts / 'core', seed)}
    for name, batch in (('space', space), ('detail', detail), ('holdout', holdout), ('craft', craft)):
        result[name] = batch(seed, output / name, artifacts / name)
        (output / 'regression-summary.json').write_text(json.dumps(result, indent=2))
    return result


if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    parser.add_argument('--seed', type=int, default=0)
    parser.add_argument('--output', type=Path, default=Path('reports/building-lantern/release'))
    parser.add_argument('--artifacts', type=Path, default=Path('samples/building-lantern/release'))
    args = parser.parse_args()
    print(json.dumps(run(args.seed, args.output, args.artifacts), indent=2))
