X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/e030e175bf4093eb7cdecd9c534548ad2b9a2b05..b9fd7e3f374248a61159e4750a84e38d1c48d5dd:/sdk/cwl/arvados_cwl/fsaccess.py diff --git a/sdk/cwl/arvados_cwl/fsaccess.py b/sdk/cwl/arvados_cwl/fsaccess.py index 252ca57d47..bc2c5e34d7 100644 --- a/sdk/cwl/arvados_cwl/fsaccess.py +++ b/sdk/cwl/arvados_cwl/fsaccess.py @@ -133,10 +133,10 @@ class CollectionFsAccess(cwltool.stdfsaccess.StdFsAccess): patternsegments = rest.split("/") return sorted(self._match(collection, patternsegments, "keep:" + collection.manifest_locator())) - def open(self, fn, mode): + def open(self, fn, mode, encoding=None): collection, rest = self.get_collection(fn) if collection is not None: - return collection.open(rest, mode) + return collection.open(rest, mode, encoding=encoding) else: return super(CollectionFsAccess, self).open(self._abs(fn), mode) @@ -225,12 +225,13 @@ class CollectionFetcher(DefaultFetcher): def fetch_text(self, url): if url.startswith("keep:"): - with self.fsaccess.open(url, "r") as f: + with self.fsaccess.open(url, "r", encoding="utf-8") as f: return f.read() if url.startswith("arvwf:"): record = self.api_client.workflows().get(uuid=url[6:]).execute(num_retries=self.num_retries) - definition = record["definition"] + ('\nlabel: "%s"\n' % record["name"].replace('"', '\\"')) - return definition + definition = yaml.round_trip_load(record["definition"]) + definition["label"] = record["name"] + return yaml.round_trip_dump(definition) return super(CollectionFetcher, self).fetch_text(url) def check_exists(self, url):