@@ -566,6 +566,8 @@ def add_action_params(self, crate, activity, to_wf_p, ptype="usage"):
566566 ))
567567 if len (action_p ["exampleOfWork" ]) == 1 :
568568 action_p ["exampleOfWork" ] = action_p ["exampleOfWork" ][0 ]
569+ if ptype == "generation" :
570+ action_p ["dateCreated" ] = rel .time .isoformat ()
569571 action_params .append (action_p )
570572 return action_params
571573
@@ -606,6 +608,7 @@ def convert_param(self, prov_param, crate, convert_secondary=True, parent=None):
606608 source = self .manifest [hash_ ]
607609 action_p = crate .add_file (source , dest , properties = {
608610 "sha1" : hash_ ,
611+ "contentSize" : str (Path (source ).stat ().st_size )
609612 })
610613 self ._set_alternate_name (prov_param , action_p , parent = parent )
611614 try :
@@ -739,9 +742,9 @@ def patch_workflow_input_collection(self, crate, wf=None):
739742 if "ComputationalWorkflow" in as_list (tool .type ):
740743 self .patch_workflow_input_collection (crate , wf = tool )
741744
742- def _map_input_data (self , data ):
745+ def _map_input_data (self , crate , data ):
743746 if isinstance (data , list ):
744- return [self ._map_input_data (_ ) for _ in data ]
747+ return [self ._map_input_data (crate , _ ) for _ in data ]
745748 if isinstance (data , dict ):
746749 rval = {}
747750 for k , v in data .items ():
@@ -753,8 +756,13 @@ def _map_input_data(self, data):
753756 source_k = str (source )
754757 dest = self .file_map .get (source_k )
755758 rval [k ] = str (dest ) if dest else v
759+ fmt = data .get ("format" )
760+ if fmt :
761+ entity = crate .get (str (dest ))
762+ if entity :
763+ entity ["encodingFormat" ] = fmt
756764 else :
757- rval [k ] = self ._map_input_data (v )
765+ rval [k ] = self ._map_input_data (crate , v )
758766 return rval
759767 return data
760768
@@ -763,7 +771,7 @@ def add_inputs_file(self, crate):
763771 if path .is_file ():
764772 with open (path ) as f :
765773 data = json .load (f )
766- data = self ._map_input_data (data )
774+ data = self ._map_input_data (crate , data )
767775 source = StringIO (json .dumps (data , indent = 4 ))
768776 crate .add_file (source , path .name , properties = {
769777 "name" : "input object document" ,
0 commit comments