Ejemplo n.º 1
0
def test_ComputedDiagnosticsList_from_urls():
    rundirs = ["rundir1", "rundir2"]
    result = ComputedDiagnosticsList.from_urls(rundirs)

    assert len(result.folders) == 2
    assert isinstance(result.folders["0"], DiagnosticFolder)
    assert isinstance(result.folders["1"], DiagnosticFolder)
Ejemplo n.º 2
0
def test_ComputedDiagnosticsList_from_json_urls_are_rundirs(tmpdir):
    rundiags = [{"name": "run1", "url": "/rundir1"}]
    with open(tmpdir.join("rundiags.json"), "w") as f:
        json.dump(rundiags, f)

    result = ComputedDiagnosticsList.from_json(
        str(tmpdir.join("rundiags.json")), urls_are_rundirs=True
    )
    assert result.folders["run1"].path == "/rundir1_diagnostics"
Ejemplo n.º 3
0
def test_ComputedDiagnosticsList_from_json(tmpdir):
    rundiags = [
        {"name": "run1", "url": "rundir1_diagnostics"},
        {"name": "run2", "url": "rundir2_diagnostics"},
    ]
    with open(tmpdir.join("rundiags.json"), "w") as f:
        json.dump(rundiags, f)

    result = ComputedDiagnosticsList.from_json(str(tmpdir.join("rundiags.json")))

    assert len(result.folders) == 2
    assert isinstance(result.folders["run1"], DiagnosticFolder)
    assert isinstance(result.folders["run2"], DiagnosticFolder)
Ejemplo n.º 4
0
def make_report(computed_diagnostics: ComputedDiagnosticsList, output):
    metrics = computed_diagnostics.load_metrics_from_diagnostics()
    movie_urls = computed_diagnostics.find_movie_urls()
    metadata, diagnostics = computed_diagnostics.load_diagnostics()
    manifest = _get_movie_manifest(movie_urls, output)
    public_links = _get_public_links(movie_urls, output)
    for source, target in manifest:
        vcm.cloud.copy(source, target, content_type="video/mp4")

    pages = {
        "index.html":
        render_index(metadata, diagnostics, metrics, public_links),
        "hovmoller.html":
        render_hovmollers(metadata, diagnostics),
        "maps.html":
        render_maps(metadata, diagnostics, metrics),
        "zonal_pressure.html":
        render_zonal_pressures(metadata, diagnostics),
        "process_diagnostics.html":
        render_process_diagnostics(metadata, diagnostics, metrics),
    }

    for filename, html in pages.items():
        upload(html, os.path.join(output, filename))
Ejemplo n.º 5
0
def main_json(args):
    computed_diagnostics = ComputedDiagnosticsList.from_json(
        args.input, args.urls_are_rundirs)
    make_report(computed_diagnostics, args.output)
Ejemplo n.º 6
0
def main_new(args):
    computed_diagnostics = ComputedDiagnosticsList.from_urls(args.inputs)
    make_report(computed_diagnostics, args.output)
Ejemplo n.º 7
0
def main(args):
    computed_diagnostics = ComputedDiagnosticsList.from_directory(args.input)
    make_report(computed_diagnostics, args.output)
Ejemplo n.º 8
0
def test_ComputeDiagnosticsList_find_movie_urls(url):
    diags = ComputedDiagnosticsList.from_directory(url)
    movie_urls = diags.find_movie_urls()
    assert isinstance(movie_urls, MutableMapping)
Ejemplo n.º 9
0
def test_ComputeDiagnosticsList_load_metrics(url):
    diags = ComputedDiagnosticsList.from_directory(url)
    meta = diags.load_metrics()
    assert isinstance(meta, RunMetrics)