Example #1
0
def dump_tabulate(dtype, data, metric, file=None, echo_dart=False):
    """Dumps a non-graphframe"""

    from tabulate import tabulate

    def _get_dataframe(x):
        import hatchet as ht

        return x.dataframe if isinstance(x, ht.graphframe.GraphFrame) else x

    _functors = {
        "html": lambda x: _get_dataframe(x).to_html(),
        "table": lambda x: tabulate(_get_dataframe(x), headers="keys"),
        "markdown": lambda x: _get_dataframe(x).to_markdown(),
        "markdown_grid": lambda x: _get_dataframe(x).to_markdown(
            tablefmt="grid"
        ),
    }

    _extensions = {
        "html": ".html",
        "table": ".txt",
        "markdown": ".md",
        "markdown_grid": ".md",
    }

    _files = dump_entity(data, _functors[dtype], file, _extensions[dtype])
    for itr in _files:
        if itr is not None and echo_dart is True:
            from timemory.common import dart_measurement_file

            dart_measurement_file(
                os.path.basename(itr), itr, format="string", type="text"
            )
Example #2
0
def dump_unknown(data, metric, file=None, echo_dart=False):
    """Dumps a non-graphframe"""
    _files = dump_entity(data, lambda x: x, file, ".txt")
    for itr in _files:
        if itr is not None and echo_dart is True:
            from timemory.common import dart_measurement_file

            dart_measurement_file(
                os.path.basename(itr), itr, format="string", type="text"
            )
Example #3
0
def dump_tree(data, metric, file=None, echo_dart=False):
    """Dumps data as a tree to stdout or file"""
    _files = dump_entity(data, lambda x: x.tree(metric), file, ".txt")
    for itr in _files:
        if itr is not None and echo_dart is True:
            from timemory.common import dart_measurement_file

            dart_measurement_file(
                os.path.basename(itr), itr, format="string", type="text"
            )
Example #4
0
def dump_dot(data, metric, file=None, echo_dart=False):
    """Dumps data as a dot to stdout or file"""
    from timemory.common import popen, dart_measurement_file, which

    _files = dump_entity(data, lambda x: x.to_dot(metric), file, ".dot")
    for itr in _files:
        if itr is not None:
            lbl = _get_label(itr)
            oitr = _get_filename(itr, ".dot")
            pitr = _get_filename(itr, ".dot.png")
            print(f"[{lbl}]|0> Outputting '{pitr}'...")
            try:
                dot_exe = which("dot")
                if dot_exe is not None:
                    popen(
                        [dot_exe, "-Tpng", f"-o{pitr}", f"{oitr}"], shell=True
                    )
                    if echo_dart:
                        dart_measurement_file(
                            os.path.basename(pitr), pitr, "png"
                        )
            except Exception as e:
                sys.stderr.write(f"{e}\n")
Example #5
0
def dump_flamegraph(data, metric, file=None, echo_dart=False):
    """Dumps a flamegraph file"""
    from timemory.common import (
        popen,
        get_bin_script,
        dart_measurement_file,
    )

    _files = dump_entity(
        data, lambda x: x.to_flamegraph(metric), file, ".flamegraph.txt"
    )
    for itr in _files:
        flamegrapher = get_bin_script("flamegraph.pl")
        if itr is not None:
            if flamegrapher is None:
                if echo_dart is True:
                    # write_ctest_notes(itr)
                    dart_measurement_file(
                        os.path.basename(itr), itr, format="string", type="text"
                    )
            else:
                (retc, outs, errs) = popen(
                    [
                        flamegrapher,
                        "--hash",
                        "--inverted",
                        "--bgcolors",
                        "'#FFFFFF'",
                        itr,
                    ],
                    shell=True,
                )

                if outs is not None:
                    lbl = _get_label(itr)
                    sitr = _get_filename(itr, ".svg")
                    pitr = _get_filename(itr, ".png")

                    # write the SVG file
                    print(f"[{lbl}]|0> Outputting '{sitr}'...")
                    with open(sitr, "w") as fout:
                        fout.write(f"{outs}\n")

                    # generate png
                    pfile = _svg_to_png(pitr, svg_code=outs)

                    # echo svg and png
                    if echo_dart:
                        # write_ctest_notes(sitr)
                        dart_measurement_file(
                            os.path.basename(itr),
                            itr,
                            format="string",
                            type="text",
                        )
                        dart_measurement_file(
                            os.path.basename(sitr), sitr, "svg"
                        )
                        if pfile is not None:
                            dart_measurement_file(
                                os.path.basename(pitr), pitr, "png"
                            )
        else:
            pass
Example #6
0
def echo_dart_measurement(_name, _path, _type="jpeg"):
    from timemory.common import dart_measurement_file

    dart_measurement_file(_name, _path, _type)