Ejemplo n.º 1
0
def registry_runner(registry_, rtasks, output_dir, emit_xml=False):
    # this will emit the PTs to an output dir

    from pbsmrtpipe.pb_io import pipeline_to_xml, write_pipeline_templates_to_json

    d = os.path.abspath(os.path.expanduser(output_dir))
    r = registry_

    log.info("Writing Pipeline Templates to {o}".format(o=output_dir))
    print "Emitting pipelines to output dir {d}".format(d=d)

    # write_pipeline_templates_to_avro(r.pipelines.values(), rtasks, d)
    write_pipeline_templates_to_json(r.pipelines.values(), rtasks, d)

    for p in r.pipelines.values():
        if emit_xml:
            file_name = p.idx + "_pipeline.xml"
            path = os.path.join(output_dir, file_name)
            xml = pipeline_to_xml(p)
            with open(path, 'w') as f:
                f.write(str(xml))
            log.info("writing pipeline {x}".format(x=path))

    log.info("Successfully wrote {n} pipelines to {d}".format(n=len(r.pipelines), d=d))
    return 0
def main(argv):
    base_path = op.dirname(__file__)
    dest_path = op.join(base_path, "resolved-pipeline-templates")
    os.environ["PB_TOOL_CONTRACT_DIR"] = op.join(base_path, "registered-tool-contracts")
    rtasks_d = load_all_tool_contracts()
    pts = load_all_installed_pipelines()
    write_pipeline_templates_to_json(pts.values(), rtasks_d, dest_path)
    return 0
def main(argv):
    base_path = op.dirname(__file__)
    dest_path = op.join(base_path, "resolved-pipeline-templates")
    os.environ["PB_TOOL_CONTRACT_DIR"] = op.join(base_path,
                                                 "registered-tool-contracts")
    rtasks_d = load_all_tool_contracts()
    pts = load_all_installed_pipelines()
    write_pipeline_templates_to_json(pts.values(), rtasks_d, dest_path)
    return 0
Ejemplo n.º 4
0
def registry_runner(registry_, rtasks, output_dir, emit_xml=False):
    """

    :type registry_: PipelineRegistry
    :param rtasks:
    :type output_dir: str
    :type emit_xml: bool

    :rtype: int
    """
    # this will emit the PTs to an output dir

    import pbsmrtpipe.pb_io as IO
    # get around circular imports
    import pbsmrtpipe.graph.bgraph as B

    r = registry_

    log.info("Validating pipelines")
    # Validating pipeline integrity
    for i, p in r.pipelines.iteritems():
        log.debug("Validating pipeline {}".format(i))
        bg = B.binding_strs_to_binding_graph(rtasks, list(p.all_bindings))
        # or this will raise
        is_valid = B.validate_binding_graph_integrity(bg)
        log.info("Pipeline {} is valid? {}".format(i, is_valid))

    # Make the dir if it' doesn't exist
    output_pipeline_dir = os.path.abspath(os.path.expanduser(output_dir))

    log.info("Writing {x} Pipeline Templates to {o}".format(o=output_dir,
                                                            x=len(
                                                                r.pipelines)))
    print "Emitting pipelines to output dir {d}".format(d=output_pipeline_dir)

    IO.write_pipeline_templates_to_json(r.pipelines.values(), rtasks,
                                        output_pipeline_dir)

    for p in r.pipelines.values():
        if emit_xml:
            file_name = p.idx + "_pipeline.xml"
            path = os.path.join(output_dir, file_name)
            xml = IO.pipeline_to_xml(p)
            with open(path, 'w') as f:
                f.write(str(xml))
            log.info("writing pipeline {x}".format(x=path))

    _d = dict(n=len(r.pipelines),
              d=output_pipeline_dir,
              x=len(r.original_pipeline_ids),
              a=len(r.all_pipelines))
    log.info(
        "Successfully wrote {n} new pipelines (previously loaded {x} all pipelines {a} to {d}"
        .format(**_d))
    return 0
Ejemplo n.º 5
0
def registry_runner(registry_, rtasks, output_dir, emit_xml=False):
    """

    :type registry_: PipelineRegistry
    :param rtasks:
    :type output_dir: str
    :type emit_xml: bool

    :rtype: int
    """
    # this will emit the PTs to an output dir

    import pbsmrtpipe.pb_io as IO
    # get around circular imports
    import pbsmrtpipe.graph.bgraph as B

    r = registry_

    log.info("Validating pipelines")
    # Validating pipeline integrity
    for i, p in r.pipelines.iteritems():
        log.debug("Validating pipeline {}".format(i))
        bg = B.binding_strs_to_binding_graph(rtasks, list(p.all_bindings))
        # or this will raise
        is_valid = B.validate_binding_graph_integrity(bg)
        log.info("Pipeline {} is valid? {}".format(i, is_valid))

    # Make the dir if it' doesn't exist
    output_pipeline_dir = os.path.abspath(os.path.expanduser(output_dir))

    log.info("Writing {x} Pipeline Templates to {o}".format(o=output_dir, x=len(r.pipelines)))
    print "Emitting pipelines to output dir {d}".format(d=output_pipeline_dir)

    IO.write_pipeline_templates_to_json(r.pipelines.values(), rtasks, output_pipeline_dir)

    for p in r.pipelines.values():
        if emit_xml:
            file_name = p.idx + "_pipeline.xml"
            path = os.path.join(output_dir, file_name)
            xml = IO.pipeline_to_xml(p)
            with open(path, 'w') as f:
                f.write(str(xml))
            log.info("writing pipeline {x}".format(x=path))

    _d = dict(n=len(r.pipelines),
              d=output_pipeline_dir,
              x=len(r.original_pipeline_ids),
              a=len(r.all_pipelines))
    log.info("Successfully wrote {n} new pipelines (previously loaded {x} all pipelines {a} to {d}".format(**_d))
    return 0
Ejemplo n.º 6
0
def run_show_templates(avro_output_dir=None, json_output_dir=None):
    import pbsmrtpipe.loader as L
    from pbsmrtpipe.pb_io import (write_pipeline_templates_to_avro,
                                  write_pipeline_templates_to_json)

    rtasks_d, _, _, pts = L.load_all()

    print pretty_registered_pipelines(pts)

    if avro_output_dir is not None:
        write_pipeline_templates_to_avro(pts.values(), rtasks_d, avro_output_dir)

    if json_output_dir is not None:
        write_pipeline_templates_to_json(pts.values(), rtasks_d, json_output_dir)

    return 0
Ejemplo n.º 7
0
def run_show_templates(avro_output_dir=None, json_output_dir=None):
    import pbsmrtpipe.loader as L
    from pbsmrtpipe.pb_io import (write_pipeline_templates_to_avro,
                                  write_pipeline_templates_to_json)

    rtasks_d, _, _, pts = L.load_all()

    print pretty_registered_pipelines(pts)

    if avro_output_dir is not None:
        write_pipeline_templates_to_avro(pts.values(), rtasks_d, avro_output_dir)

    if json_output_dir is not None:
        write_pipeline_templates_to_json(pts.values(), rtasks_d, json_output_dir)

    return 0
Ejemplo n.º 8
0
def run_show_templates(avro_output_dir=None,
                       json_output_dir=None,
                       show_all=False):
    import pbsmrtpipe.loader as L
    from pbsmrtpipe.pb_io import (write_pipeline_templates_to_avro,
                                  write_pipeline_templates_to_json)

    rtasks_d, _, _, pts = L.load_all()

    print pretty_registered_pipelines(pts, show_all=show_all)
    if not show_all:
        print "Run with --show-all to display (unsupported) developer/internal pipelines"

    if avro_output_dir is not None:
        write_pipeline_templates_to_avro(pts.values(), rtasks_d,
                                         avro_output_dir)

    if json_output_dir is not None:
        write_pipeline_templates_to_json(pts.values(), rtasks_d,
                                         json_output_dir)

    return 0