Skip to content

Commit 70a57f7

Browse files
committed
Return noodles prov info (instead of fake retroprov)
1 parent e7b536a commit 70a57f7

1 file changed

Lines changed: 20 additions & 9 deletions

File tree

fairworkflows/fairworkflow.py

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)