ATLAS Offline Software
Loading...
Searching...
No Matches
python.TrigValSteering.CheckSteps.MessageCountStep Class Reference
Inheritance diagram for python.TrigValSteering.CheckSteps.MessageCountStep:
Collaboration diagram for python.TrigValSteering.CheckSteps.MessageCountStep:

Public Member Functions

 __init__ (self, name='MessageCount')
 configure (self, test)
 run (self, dry_run=False)

Public Attributes

str executable = 'messageCounter.py'
str log_regex = r'(athena\.(?!.*tail).*log$|athenaEF\..*log$|^log\.(.*to.*|Derivation))'
list skip_logs = []
str start_pattern = r'(HltEventLoopMgr|AthenaHiveEventLoopMgr).*INFO Starting loop on events'
str end_pattern = r'(HltEventLoopMgr.*INFO All events processed|AthenaHiveEventLoopMgr.*INFO.*Loop Finished)'
 print_on_fail = None
dict thresholds = {}
bool auto_report_result = True
bool depends_on_exec = True
 name
int result = 1

Detailed Description

Count messages printed inside event loop

Definition at line 600 of file CheckSteps.py.

Constructor & Destructor Documentation

◆ __init__()

python.TrigValSteering.CheckSteps.MessageCountStep.__init__ ( self,
name = 'MessageCount' )

Definition at line 603 of file CheckSteps.py.

603 def __init__(self, name='MessageCount'):
604 super(MessageCountStep, self).__init__(name)
605 self.executable = 'messageCounter.py'
606 self.log_regex = r'(athena\.(?!.*tail).*log$|athenaEF\..*log$|^log\.(.*to.*|Derivation))'
607 self.skip_logs = []
608 self.start_pattern = r'(HltEventLoopMgr|AthenaHiveEventLoopMgr).*INFO Starting loop on events'
609 self.end_pattern = r'(HltEventLoopMgr.*INFO All events processed|AthenaHiveEventLoopMgr.*INFO.*Loop Finished)'
610 self.print_on_fail = None
611 self.thresholds = {}
612 self.auto_report_result = True
613 self.depends_on_exec = True # skip if ExecSteps failed
614

Member Function Documentation

◆ configure()

python.TrigValSteering.CheckSteps.MessageCountStep.configure ( self,
test )

Definition at line 615 of file CheckSteps.py.

615 def configure(self, test):
616 self.args += ' -s "{:s}"'.format(self.start_pattern)
617 self.args += ' -e "{:s}"'.format(self.end_pattern)
618 if self.print_on_fail is None:
619 self.print_on_fail = self.required
620 if self.print_on_fail:
621 self.args += ' --saveAll'
622
623 max_events = test.exec_steps[0].max_events if isinstance(test.exec_steps[0], ExecStep) else 0
624 if 'WARNING' not in self.thresholds:
625 self.thresholds['WARNING'] = 0
626 if 'INFO' not in self.thresholds:
627 self.thresholds['INFO'] = max_events
628 if 'DEBUG' not in self.thresholds:
629 self.thresholds['DEBUG'] = 0
630 if 'VERBOSE' not in self.thresholds:
631 self.thresholds['VERBOSE'] = 0
632 if 'other' not in self.thresholds:
633 self.thresholds['other'] = max_events
634 super(MessageCountStep, self).configure(test)
635
bool configure(asg::AnaToolHandle< ITrigGlobalEfficiencyCorrectionTool > &tool, ToolHandleArray< IAsgElectronEfficiencyCorrectionTool > &electronEffToolsHandles, ToolHandleArray< IAsgElectronEfficiencyCorrectionTool > &electronSFToolsHandles, ToolHandleArray< CP::IMuonTriggerScaleFactors > &muonToolsHandles, ToolHandleArray< IAsgPhotonEfficiencyCorrectionTool > &photonEffToolsHandles, ToolHandleArray< IAsgPhotonEfficiencyCorrectionTool > &photonSFToolsHandles, const std::string &triggers, const std::map< std::string, std::string > &legsPerTool, unsigned long nToys, bool debug)

◆ run()

python.TrigValSteering.CheckSteps.MessageCountStep.run ( self,
dry_run = False )

Definition at line 636 of file CheckSteps.py.

636 def run(self, dry_run=False):
637 files = os.listdir('.')
638 r = re.compile(self.log_regex)
639 log_files = [f for f in filter(r.match, files) if f not in self.skip_logs]
640 if not log_files and not dry_run:
641 self.log.error('%s found no log files matching the pattern %s', self.name, self.log_regex)
642 self.result = 1
643 if self.auto_report_result:
644 self.report_result()
645 return self.result, '# (internal) {} -> failed'.format(self.name)
646 self.args += ' ' + ' '.join(log_files)
647 auto_report = self.auto_report_result
648 self.auto_report_result = False
649 ret, cmd = super(MessageCountStep, self).run(dry_run)
650 self.auto_report_result = auto_report
651 if ret != 0:
652 self.log.error('%s failed', self.name)
653 self.result = 1
654 if self.auto_report_result:
655 self.report_result()
656 return self.result, cmd
657
658 for log_file in log_files:
659 json_file = 'MessageCount.{:s}.json'.format(log_file)
660 if self.print_on_fail:
661 all_json_file = 'Messages.{:s}.json'.format(log_file)
662 if not os.path.isfile(json_file):
663 self.log.warning('%s cannot open file %s', self.name, json_file)
664 with open(json_file) as f:
665 summary = json.load(f)
666 for level, threshold in self.thresholds.items():
667 if summary[level] > threshold:
668 self.result += 1
669 self.log.info(
670 '%s Number of %s messages %s in %s is higher than threshold %s',
671 self.name, level, summary[level], log_file, threshold)
672 if self.print_on_fail:
673 self.log.info('%s Printing all %s messages from %s', self.name, level, log_file)
674 with open(all_json_file) as af:
675 all_msg = json.load(af)
676 for msg in all_msg[level]:
677 print(msg.strip()) # noqa: ATL901
678
679 if self.auto_report_result:
680 self.report_result()
681 return self.result, cmd
682
683
void print(char *figname, TCanvas *c1)
int run(int argc, char *argv[])

Member Data Documentation

◆ auto_report_result

bool python.TrigValSteering.CheckSteps.MessageCountStep.auto_report_result = True

Definition at line 612 of file CheckSteps.py.

◆ depends_on_exec

bool python.TrigValSteering.CheckSteps.MessageCountStep.depends_on_exec = True

Definition at line 613 of file CheckSteps.py.

◆ end_pattern

str python.TrigValSteering.CheckSteps.MessageCountStep.end_pattern = r'(HltEventLoopMgr.*INFO All events processed|AthenaHiveEventLoopMgr.*INFO.*Loop Finished)'

Definition at line 609 of file CheckSteps.py.

◆ executable

str python.TrigValSteering.CheckSteps.MessageCountStep.executable = 'messageCounter.py'

Definition at line 605 of file CheckSteps.py.

◆ log_regex

python.TrigValSteering.CheckSteps.MessageCountStep.log_regex = r'(athena\.(?!.*tail).*log$|athenaEF\..*log$|^log\.(.*to.*|Derivation))'

Definition at line 606 of file CheckSteps.py.

◆ name

python.TrigValSteering.CheckSteps.MessageCountStep.name

Definition at line 641 of file CheckSteps.py.

◆ print_on_fail

python.TrigValSteering.CheckSteps.MessageCountStep.print_on_fail = None

Definition at line 610 of file CheckSteps.py.

◆ result

python.TrigValSteering.CheckSteps.MessageCountStep.result = 1

Definition at line 642 of file CheckSteps.py.

◆ skip_logs

list python.TrigValSteering.CheckSteps.MessageCountStep.skip_logs = []

Definition at line 607 of file CheckSteps.py.

◆ start_pattern

str python.TrigValSteering.CheckSteps.MessageCountStep.start_pattern = r'(HltEventLoopMgr|AthenaHiveEventLoopMgr).*INFO Starting loop on events'

Definition at line 608 of file CheckSteps.py.

◆ thresholds

dict python.TrigValSteering.CheckSteps.MessageCountStep.thresholds = {}

Definition at line 611 of file CheckSteps.py.


The documentation for this class was generated from the following file: