X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/8f737e30667628842cb8f85b1b2d7851536099f8..c62e8c7eb9f864f6d3a8328af83572f0f05958da:/sdk/cwl/arvados_cwl/pathmapper.py diff --git a/sdk/cwl/arvados_cwl/pathmapper.py b/sdk/cwl/arvados_cwl/pathmapper.py index 62a59a8cf8..ac6df543ad 100644 --- a/sdk/cwl/arvados_cwl/pathmapper.py +++ b/sdk/cwl/arvados_cwl/pathmapper.py @@ -2,12 +2,6 @@ # # SPDX-License-Identifier: Apache-2.0 -from future import standard_library -standard_library.install_aliases() -from builtins import str -from past.builtins import basestring -from future.utils import viewitems - import re import logging import uuid @@ -26,7 +20,7 @@ from cwltool.utils import adjustFileObjs, adjustDirObjs from cwltool.stdfsaccess import abspath from cwltool.workflow import WorkflowException -from arvados.http_import import http_to_keep +from arvados.http_to_keep import http_to_keep logger = logging.getLogger('arvados.cwl-runner') @@ -72,7 +66,7 @@ class ArvPathMapper(PathMapper): debug = logger.isEnabledFor(logging.DEBUG) - if isinstance(src, basestring) and src.startswith("keep:"): + if isinstance(src, str) and src.startswith("keep:"): if collection_pdh_pattern.match(src): self._pathmap[src] = MapperEnt(src, self.collection_pattern % urllib.parse.unquote(src[5:]), srcobj["class"], True) @@ -109,13 +103,14 @@ class ArvPathMapper(PathMapper): # passthrough, we'll download it later. self._pathmap[src] = MapperEnt(src, src, srcobj["class"], True) else: - keepref = http_to_keep(self.arvrunner.api, self.arvrunner.project_uuid, src, - varying_url_params=self.arvrunner.toplevel_runtimeContext.varying_url_params, - prefer_cached_downloads=self.arvrunner.toplevel_runtimeContext.prefer_cached_downloads) + results = http_to_keep(self.arvrunner.api, self.arvrunner.project_uuid, src, + varying_url_params=self.arvrunner.toplevel_runtimeContext.varying_url_params, + prefer_cached_downloads=self.arvrunner.toplevel_runtimeContext.prefer_cached_downloads) + keepref = "keep:%s/%s" % (results[0], results[1]) logger.info("%s is %s", src, keepref) self._pathmap[src] = MapperEnt(keepref, keepref, srcobj["class"], True) except Exception as e: - logger.warning(str(e)) + logger.warning("Download error: %s", e) else: self._pathmap[src] = MapperEnt(src, src, srcobj["class"], True) @@ -147,7 +142,7 @@ class ArvPathMapper(PathMapper): for opt in self.optional_deps: if obj["location"] == opt["location"]: return - raise SourceLine(obj, "location", WorkflowException).makeError("Don't know what to do with '%s'" % obj["location"]) + raise SourceLine(obj, "location", WorkflowException).makeError("Can't handle '%s'" % obj["location"]) def needs_new_collection(self, srcobj, prefix=""): """Check if files need to be staged into a new collection. @@ -345,7 +340,7 @@ class StagingPathMapper(PathMapper): # Overridden to maintain the use case of mapping by source (identifier) to # target regardless of how the map is structured interally. def getMapperEnt(src): - for k,v in viewitems(self._pathmap): + for k,v in self._pathmap.items(): if (v.type != "CreateFile" and v.resolved == src) or (v.type == "CreateFile" and k == src): return v @@ -364,7 +359,7 @@ class VwdPathMapper(StagingPathMapper): # with any secondary files. self.visitlisting(referenced_files, self.stagedir, basedir) - for path, (ab, tgt, type, staged) in viewitems(self._pathmap): + for path, (ab, tgt, type, staged) in self._pathmap.items(): if type in ("File", "Directory") and ab.startswith("keep:"): self._pathmap[path] = MapperEnt("$(task.keep)/%s" % ab[5:], tgt, type, staged)