2121
2222from .. import get_info
2323from .filemanip import (md5 , hashlib , hash_infile )
24- from .. import logging
24+ from .. import logging , __version__
2525iflogger = logging .getLogger ('interface' )
2626
2727foaf = pm .Namespace ("foaf" , "http://xmlns.com/foaf/0.1/" )
@@ -185,7 +185,7 @@ def safe_encode(x, as_literal=True):
185185 return dumps (x )
186186 return pm .Literal (dumps (x ), nipype_ns ['pickle' ])
187187 except TypeError as e :
188- iflogger .info (e )
188+ iflogger .debug (e )
189189 value = "Could not encode: " + str (e )
190190 if not as_literal :
191191 return value
@@ -239,7 +239,7 @@ def prov_encode(graph, value, create_container=True):
239239 return entity
240240
241241
242- def write_provenance (results , filename = 'provenance' , format = 'turtle ' ):
242+ def write_provenance (results , filename = 'provenance' , format = 'all ' ):
243243 ps = ProvStore ()
244244 ps .add_results (results )
245245 return ps .write_provenance (filename = filename , format = format )
@@ -371,7 +371,8 @@ def add_results(self, results, keep_provenance=False):
371371 user_agent = self .g .agent (get_attr_id (user_attr ), user_attr )
372372 agent_attr = {pm .PROV ["type" ]: pm .PROV ["SoftwareAgent" ],
373373 pm .PROV ["label" ]: "Nipype" ,
374- foaf ["name" ]: safe_encode ("Nipype" )}
374+ foaf ["name" ]: safe_encode ("Nipype" ),
375+ nipype_ns ["version" ]: __version__ }
375376 for key , value in list (get_info ().items ()):
376377 agent_attr .update ({nipype_ns [key ]: safe_encode (value )})
377378 software_agent = self .g .agent (get_attr_id (agent_attr ), agent_attr )
@@ -384,6 +385,17 @@ def write_provenance(self, filename='provenance', format='all'):
384385 if format in ['provn' , 'all' ]:
385386 with open (filename + '.provn' , 'wt' ) as fp :
386387 fp .writelines (self .g .get_provn ())
387- if format in ['json' , 'all' ]:
388- g .serialize (filename + '.json' , format = 'json' )
388+ try :
389+ if format in ['rdf' , 'all' ]:
390+ if len (self .g .bundles ) == 0 :
391+ rdf_format = 'turtle'
392+ ext = '.ttl'
393+ else :
394+ rdf_format = 'trig'
395+ ext = '.trig'
396+ self .g .serialize (filename + ext , format = 'rdf' , rdf_format = rdf_format )
397+ if format in ['jsonld' ]:
398+ self .g .serialize (filename + '.jsonld' , format = 'rdf' , rdf_format = 'json-ld' , indent = 4 )
399+ except pm .serializers .DoNotExist :
400+ pass
389401 return self .g
0 commit comments