23 def run(self, dry_run=False):
24
25 self.log.info('Running %s step', self.name)
26
27 dest = sys.stdout
28 if self.output_stream == self.OutputStream.NO_PRINT:
29 dest = None
30 elif self.output_stream in [self.OutputStream.FILE_ONLY, self.OutputStream.FILE_AND_STDOUT]:
31 dest = open(self.get_log_file_name(), 'w')
32
33 if dry_run:
34 self.result = 0
35 else:
36 try:
37 with contextlib.redirect_stdout(dest), contextlib.redirect_stderr(dest):
38 self.result = self.func(**self.func_kwargs)
39
40
41 if self.output_stream == self.OutputStream.FILE_AND_STDOUT:
42 dest.close()
44
45
46 if self.result is None:
47 self.result = 0
48 except Exception as e:
49 self.log.
error(
'Exception calling %s: %s', self.func.__name__, e)
50 self.result = 1
51
52 return self.result, f'# (internal) {self.func.__name__}'
void print(char *figname, TCanvas *c1)
IovVectorMap_t read(const Folder &theFolder, const SelectionCriterion &choice, const unsigned int limit=10)