@@ -375,15 +375,26 @@ def display_full_rdf(self):
375375 def execute (self , num_threads = 1 ):
376376 if not hasattr (self , 'noodles_promise' ):
377377 raise ValueError ('Cannot execute workflow as no noodles promise has been constructed.' )
378- import noodles
379- result = noodles .run_parallel (self .noodles_promise , num_threads )
380- retroprov = """Not implemented yet. The sort of info we have looks like
381- 2021-01-19 13:16:44,750 - job 217: mul(22, -3) -> -66
382- 2021-01-19 13:16:44,750 - job 218: weird(5, 3) -> 22
383- 2021-01-19 13:16:44,750 - job 219: add(1, 4) -> 5
384- 2021-01-19 13:16:44,750 - job 220: sub(1, 4) -> -3
385- 2021-01-19 13:16:44,755 - result mul(22, -3) -> -66]: -66
386- 2021-01-19 13:16:44,755 - -end-of-queue-"""
378+
379+ from noodles .run .threading .sqlite3 import run_parallel
380+ from noodles import serial
381+ import io
382+ import logging
383+
384+ log = io .StringIO ()
385+ log_handler = logging .StreamHandler (log )
386+ formatter = logging .Formatter ('%(asctime)s - %(message)s' )
387+ log_handler .setFormatter (formatter )
388+
389+ logger = logging .getLogger ('noodles' )
390+ logger .setLevel (logging .INFO )
391+ logger .handlers = [log_handler ]
392+
393+ result = run_parallel (
394+ self .noodles_promise , n_threads = num_threads , registry = serial .base , db_file = 'temp_prov_fw.db' ,
395+ always_cache = True , echo_log = False )
396+
397+ retroprov = log .getvalue ()
387398
388399 return result , retroprov
389400
0 commit comments