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()
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()