Пример #1
0
def get_pipeline_xml(pipeline_type, pipeline_id, auto_pipeline_id):
    path = os.path.join(docvert_root, "pipelines", pipeline_type, pipeline_id,
                        "pipeline.xml")
    if not os.path.exists(path):
        raise docvert_exception.unrecognised_pipeline(
            "Unknown pipeline_id '%s' (checked %s)" % (pipeline_id, path))
    autopipeline_path = None
    xml = lxml.etree.parse(path)
    if xml.getroot().tag == "autopipeline":
        if auto_pipeline_id is None:
            raise docvert_exception.unrecognised_auto_pipeline(
                "Unknown auto pipeline '%s'" % auto_pipeline_id)
        autopipeline_path = os.path.join(docvert_root, "pipelines",
                                         "auto_pipelines", auto_pipeline_id,
                                         "pipeline.xml")
        if not os.path.exists(path):
            raise docvert_exception.unrecognised_auto_pipeline(
                "Unknown auto pipeline '%s'" % auto_pipeline_id)
        custom_stages = "".join(map(lxml.etree.tostring, xml.getroot()))
        autopipeline = ""
        try:
            autopipeline_handle = open(autopipeline_path)
        except IOError, e:
            autopipeline_path_with_default = os.path.join(
                docvert_root, "pipelines", "auto_pipelines",
                "%s.default" % auto_pipeline_id, "pipeline.xml")
            autopipeline_handle = open(autopipeline_path_with_default)
        autopipeline = autopipeline_handle.read().replace(
            '{{custom-stages}}', custom_stages)
        xml = lxml.etree.fromstring(autopipeline)
        xml = xml.getroottree()
Пример #2
0
def get_pipeline_xml(namespaced_pipeline_id, auto_pipeline_id):
    path = os.path.join(docvert_root, "pipelines", namespaced_pipeline_id, "pipeline.xml")
    autopath = None
    if not os.path.exists(path):
        raise docvert_exception.unrecognised_pipeline("Unknown pipeline '%s' (checked %s)" % (namespaced_pipeline_id, path))
    xml = lxml.etree.parse(path)
    if xml.getroot().tag == "autopipeline":
        if auto_pipeline_id is None:
            raise docvert_exception.unrecognised_auto_pipeline("Unknown auto pipeline '%s'" % auto_pipeline_id)
        raise Exception("Sorry, auto pipelines aren't implemented yet.")
        autopath = os.path.join(docvert_root, "pipelines", "autopipeline", auto_pipeline_id, "pipeline.xml")
        if not os.path.exists(path):
            raise docvert_exception.unrecognised_auto_pipeline("Unknown auto pipeline '%s'" % auto_pipeline_id)
    return dict(xml=xml, pipeline_directory=os.path.dirname(path), path=path, autopath=autopath)
def get_pipeline_xml(pipeline_type, pipeline_id, auto_pipeline_id):
    path = os.path.join(docvert_root, "pipelines", pipeline_type, pipeline_id, "pipeline.xml")
    if not os.path.exists(path):
        raise docvert_exception.unrecognised_pipeline("Unknown pipeline_id '%s' (checked %s)" % (pipeline_id, path))
    autopipeline_path = None
    xml = lxml.etree.parse(path)
    if xml.getroot().tag == "autopipeline":
        if auto_pipeline_id is None:
            raise docvert_exception.unrecognised_auto_pipeline("Unknown auto pipeline '%s'" % auto_pipeline_id)
        autopipeline_path = os.path.join(docvert_root, "pipelines", "auto_pipelines", auto_pipeline_id, "pipeline.xml")
        if not os.path.exists(path):
            raise docvert_exception.unrecognised_auto_pipeline("Unknown auto pipeline '%s'" % auto_pipeline_id)
        custom_stages = "".join(map(lxml.etree.tostring,xml.getroot()))
        autopipeline = ""
        try:        
            autopipeline_handle = open(autopipeline_path)
        except IOError, e:
            autopipeline_path_with_default = os.path.join(docvert_root, "pipelines", "auto_pipelines", "%s.default" % auto_pipeline_id, "pipeline.xml")
            autopipeline_handle = open(autopipeline_path_with_default)
        autopipeline = autopipeline_handle.read().replace('{{custom-stages}}', custom_stages)
        xml = lxml.etree.fromstring(autopipeline)
        xml = xml.getroottree()