Esempio n. 1
0
def make_table_yaml():
    """Make simulation datatable from meta.yaml's.
    """
    return pipe(
        get_yaml_data(), lambda data: render_yaml(table_yaml(), data=data),
        yaml.load,
        write_yaml(
            filepath=os.path.join(get_path(), '../_data/data_table.yaml')))
def get_yaml_data():
    """Read the meta.yaml files

    Returns:
      a dictionary with keys as the file paths and values as
      dictionaries of YAML data
    """
    return pipe(os.path.join(get_path(), 'simulations/*/meta.y*ml'), glob.glob,
                sorted, map(lambda path_: (path_, read_yaml(path_))))
Esempio n. 3
0
def code_upload_yaml_path():
    """Path to the upload chart j2.
    """
    return os.path.join(get_path(), "charts", "code_upload.yaml.j2")
Esempio n. 4
0
def table_yaml():
    """Path to table YAML.
    """
    return os.path.join(get_path(), "table.yaml.j2")
Esempio n. 5
0
      json_path: the path to write to
      title: the title of the chart

    Returns:
      the chart JSON
    """
    return pipe(
        gfunc,
        groupby_count,
        lambda data: list(data.items()),
        lambda data: sorted(data, key=lambda item: (-item[1], item[0])),
        lambda data: j2_to_json(yaml_path, json_path, data=data, title=title),
    )


if __name__ == "__main__":
    make_table_yaml()
    make_upload_chart(
        lambda item: item["metadata"]["implementation"]["name"],
        code_upload_yaml_path(),
        os.path.join(get_path(), "../_data/charts/code_upload.json"),
        "Uploads per Code",
    )

    make_upload_chart(
        lambda item: item["benchmark"]["id"],
        code_upload_yaml_path(),
        os.path.join(get_path(), "../_data/charts/benchmark_upload.json"),
        "Uploads per Benchmark",
    )
Esempio n. 6
0
      title: the title of the chart

    Returns:
      the chart JSON
    """
    return pipe(
        gfunc,
        groupby_count,
        lambda data: list(data.items()),
        lambda data: sorted(data, key=lambda item: (-item[1], item[0])),
        lambda data: j2_to_json(yaml_path,
                                json_path,
                                data=data,
                                title=title)
    )


if __name__ == "__main__":
    make_table_yaml()
    make_upload_chart(lambda item: item['metadata']['software']['name'],
                      code_upload_yaml_path(),
                      os.path.join(get_path(),
                                   '../data/charts/code_upload.json'),
                      'Uploads per Code')

    make_upload_chart(lambda item: item['benchmark']['id'],
                      code_upload_yaml_path(),
                      os.path.join(get_path(),
                                   '../data/charts/benchmark_upload.json'),
                      'Uploads per Benchmark')