예제 #1
0
 def __init__(self,
              workflow_uri_path: str,
              root_directory: str,
              stove_provenance_directory: str,
              executor: Optional[JobExecutor] = None,
              loading_context: Optional[LoadingContext] = None,
              runtime_context: Optional[RuntimeContext] = None) -> None:
     """Easy way to load a CWL document for execution."""
     super().__init__(root_directory=root_directory,
                      executor=executor,
                      loading_context=loading_context,
                      runtime_context=runtime_context)
     self.store_provenance_directory = stove_provenance_directory
     self.loading_context, self.workflow_object, self.uri = fetch_document(
         workflow_uri_path, self.loading_context)
     make_fs_access = self.runtime_context.make_fs_access \
         if self.runtime_context.make_fs_access is not None else StdFsAccess
     ro = ResearchObject(make_fs_access(""), )
     self.runtime_context.research_obj = ro
     log_file_io = ro.open_log_file_for_activity(ro.engine_uuid)
     prov_log_handler = logging.StreamHandler(cast(IO[str], log_file_io))
     prov_log_handler.setFormatter(ProvLogFormatter())
     _logger.addHandler(prov_log_handler)
     _logger.debug("[provenance] Logging to %s", log_file_io)
예제 #2
0
def research_object() -> Generator[ResearchObject, None, None]:
    re_ob = ResearchObject(StdFsAccess(""))
    yield re_ob
    re_ob.close()