def get_file_dependencies_obj(cwl_obj, basedir): """Return a dictionary which contains the CWL workflow file dependencies. :param cwl_obj: A CWL tool or job which might contain file dependencies. :param basedir: Workflow base dir. :returns: A dictionary composed of valid CWL file dependencies. """ # Load the document # remove filename additions (e.g. 'v1.0/conflict-wf.cwl#collision') document = cwl_obj.split("#")[0] document_loader, workflow_obj, uri = fetch_document(document) in_memory_buffer = io.StringIO() # Get dependencies printdeps( workflow_obj, document_loader.loader, in_memory_buffer, "primary", uri, basedir=basedir, ) file_dependencies_obj = yaml.load(in_memory_buffer.getvalue(), Loader=yaml.FullLoader) in_memory_buffer.close() return file_dependencies_obj
def get_file_dependencies_obj(cwl_obj, basedir): """Return a dictionary which contains the CWL workflow file dependencies. :param cwl_obj: A CWL tool or job which might contain file dependencies. :param basedir: Workflow base dir. :returns: A dictionary composed of valid CWL file dependencies. """ # Load de document loading_context = LoadingContext() document_loader, workflow_obj, uri = fetch_document( cwl_obj, resolver=loading_context.resolver, fetcher_constructor=loading_context.fetcher_constructor, ) in_memory_buffer = io.StringIO() if PY3 else io.BytesIO() # Get dependencies printdeps(workflow_obj, document_loader, in_memory_buffer, "primary", uri, basedir=basedir) file_dependencies_obj = yaml.load(in_memory_buffer.getvalue(), Loader=yaml.FullLoader) in_memory_buffer.close() return file_dependencies_obj