@@ -601,8 +601,10 @@ def declare_file(self, value):
601
601
# then prov:Quotation is not appropriate.
602
602
self .document .derivation (sec_entity , file_entity ,
603
603
other_attributes = {PROV ["type" ]: CWLPROV ["SecondaryFile" ]})
604
- # TODO: Add to self.secondaries so it can later
604
+ # Add to self.secondaries so it can later
605
605
# be augmented into primary-job.json
606
+ secondaries = self .secondaries .setdefault (checksum , set ())
607
+ secondaries .add (self .research_object .relativise_files (sec ))
606
608
607
609
return file_entity , entity , checksum
608
610
@@ -1549,7 +1551,7 @@ def create_job(self,
1549
1551
cwl document
1550
1552
'''
1551
1553
relativised_input_objecttemp = {} # type: Dict[Any,Any]
1552
- self ._relativise_files (job )
1554
+ self .relativise_files (job )
1553
1555
1554
1556
rel_path = posixpath .join (_posix_path (WORKFLOW ), "primary-job.json" )
1555
1557
j = json .dumps (job , indent = 4 , ensure_ascii = False )
@@ -1571,7 +1573,7 @@ def create_job(self,
1571
1573
{k : v for k , v in relativised_input_objecttemp .items () if v })
1572
1574
return relativised_input_object
1573
1575
1574
- def _relativise_files (self , structure ):
1576
+ def relativise_files (self , structure ):
1575
1577
# type: (Any, Dict) -> None
1576
1578
'''
1577
1579
save any file objects into Research Object and update the local paths
@@ -1607,7 +1609,7 @@ def _relativise_files(self, structure):
1607
1609
del structure ["location" ]
1608
1610
1609
1611
for val in structure .values ():
1610
- self ._relativise_files (val )
1612
+ self .relativise_files (val )
1611
1613
return
1612
1614
1613
1615
if isinstance (structure , (str , Text )):
@@ -1616,7 +1618,7 @@ def _relativise_files(self, structure):
1616
1618
try :
1617
1619
for obj in iter (structure ):
1618
1620
# Recurse and rewrite any nested File objects
1619
- self ._relativise_files (obj )
1621
+ self .relativise_files (obj )
1620
1622
except TypeError :
1621
1623
pass
1622
1624
0 commit comments