@@ -545,7 +545,12 @@ def declare_file(self, value):
545
545
# Check for secondaries
546
546
for sec in value .get ("secondaryFiles" , ()):
547
547
# TODO: Record these in a specializationOf entity with UUID?
548
- (sec_entity , _ , _ ) = self .declare_file (sec )
548
+ if sec ['class' ] == "File" :
549
+ (sec_entity , _ , _ ) = self .declare_file (sec )
550
+ elif sec ['class' ] == "Directory" :
551
+ sec_entity = self .declare_directory (sec )
552
+ else :
553
+ raise ValueError ("Got unexpected secondaryFiles value: {}" .format (sec ))
549
554
# We don't know how/when/where the secondary file was generated,
550
555
# but CWL convention is a kind of summary/index derived
551
556
# from the original file. As its generally in a different format
@@ -796,10 +801,13 @@ def used_artefacts(self,
796
801
base += "/" + name
797
802
for key , value in job_order .items ():
798
803
prov_role = self .wf_ns ["%s/%s" % (base , key )]
799
- entity = self .declare_artefact (value )
800
- self .document .used (
801
- process_run_id , entity , datetime .datetime .now (), None ,
802
- {"prov:role" : prov_role })
804
+ try :
805
+ entity = self .declare_artefact (value )
806
+ self .document .used (
807
+ process_run_id , entity , datetime .datetime .now (), None ,
808
+ {"prov:role" : prov_role })
809
+ except OSError :
810
+ pass
803
811
804
812
def generate_output_prov (self ,
805
813
final_output , # type: Union[Dict[Text, Any], List[Dict[Text, Any]]]
@@ -1572,7 +1580,10 @@ def _relativise_files(self, structure):
1572
1580
del structure ["location" ]
1573
1581
1574
1582
for val in structure .values ():
1575
- self ._relativise_files (val )
1583
+ try :
1584
+ self ._relativise_files (val )
1585
+ except OSError :
1586
+ pass
1576
1587
return
1577
1588
1578
1589
if isinstance (structure , (str , Text )):
0 commit comments