Skip to content

Commit

Permalink
convert: add encodingFormat to files when available
Browse files Browse the repository at this point in the history
  • Loading branch information
simleo committed Nov 8, 2023
1 parent f6318b3 commit 82ca997
Showing 1 changed file with 9 additions and 4 deletions.
13 changes: 9 additions & 4 deletions src/runcrate/convert.py
Original file line number Diff line number Diff line change
Expand Up @@ -742,9 +742,9 @@ def patch_workflow_input_collection(self, crate, wf=None):
if "ComputationalWorkflow" in as_list(tool.type):
self.patch_workflow_input_collection(crate, wf=tool)

def _map_input_data(self, data):
def _map_input_data(self, crate, data):
if isinstance(data, list):
return [self._map_input_data(_) for _ in data]
return [self._map_input_data(crate, _) for _ in data]
if isinstance(data, dict):
rval = {}
for k, v in data.items():
Expand All @@ -756,8 +756,13 @@ def _map_input_data(self, data):
source_k = str(source)
dest = self.file_map.get(source_k)
rval[k] = str(dest) if dest else v
fmt = data.get("format")
if fmt:
entity = crate.get(str(dest))
if entity:
entity["encodingFormat"] = fmt
else:
rval[k] = self._map_input_data(v)
rval[k] = self._map_input_data(crate, v)
return rval
return data

Expand All @@ -766,7 +771,7 @@ def add_inputs_file(self, crate):
if path.is_file():
with open(path) as f:
data = json.load(f)
data = self._map_input_data(data)
data = self._map_input_data(crate, data)
source = StringIO(json.dumps(data, indent=4))
crate.add_file(source, path.name, properties={
"name": "input object document",
Expand Down

0 comments on commit 82ca997

Please sign in to comment.