Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Public Member Functions | Public Attributes | List of all members
python.TrigValSteering.CheckSteps.MessageCountStep Class Reference
Inheritance diagram for python.TrigValSteering.CheckSteps.MessageCountStep:
Collaboration diagram for python.TrigValSteering.CheckSteps.MessageCountStep:

Public Member Functions

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

Public Attributes

 executable
 
 log_regex
 
 skip_logs
 
 start_pattern
 
 end_pattern
 
 print_on_fail
 
 thresholds
 
 auto_report_result
 
 depends_on_exec
 
 result
 

Detailed Description

Count messages printed inside event loop

Definition at line 622 of file CheckSteps.py.

Constructor & Destructor Documentation

◆ __init__()

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

Definition at line 625 of file CheckSteps.py.

625  def __init__(self, name='MessageCount'):
626  super(MessageCountStep, self).__init__(name)
627  self.executable = 'messageCounter.py'
628  self.log_regex = r'(athena\.(?!.*tail).*log$|athenaHLT:.*\.out$|^log\.(.*to.*|Derivation))'
629  self.skip_logs = []
630  self.start_pattern = r'(HltEventLoopMgr|AthenaHiveEventLoopMgr).*INFO Starting loop on events'
631  self.end_pattern = r'(HltEventLoopMgr.*INFO All events processed|AthenaHiveEventLoopMgr.*INFO.*Loop Finished)'
632  self.print_on_fail = None
633  self.thresholds = {}
634  self.auto_report_result = True
635  self.depends_on_exec = True # skip if ExecSteps failed
636 

Member Function Documentation

◆ configure()

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

Definition at line 637 of file CheckSteps.py.

637  def configure(self, test):
638  self.args += ' -s "{:s}"'.format(self.start_pattern)
639  self.args += ' -e "{:s}"'.format(self.end_pattern)
640  if self.print_on_fail is None:
641  self.print_on_fail = self.required
642  if self.print_on_fail:
643  self.args += ' --saveAll'
644 
645  max_events = test.exec_steps[0].max_events if isinstance(test.exec_steps[0], ExecStep) else 0
646  if 'WARNING' not in self.thresholds:
647  self.thresholds['WARNING'] = 0
648  if 'INFO' not in self.thresholds:
649  self.thresholds['INFO'] = max_events
650  if 'DEBUG' not in self.thresholds:
651  self.thresholds['DEBUG'] = 0
652  if 'VERBOSE' not in self.thresholds:
653  self.thresholds['VERBOSE'] = 0
654  if 'other' not in self.thresholds:
655  self.thresholds['other'] = max_events
656  super(MessageCountStep, self).configure(test)
657 

◆ run()

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

Definition at line 658 of file CheckSteps.py.

658  def run(self, dry_run=False):
659  files = os.listdir('.')
660  r = re.compile(self.log_regex)
661  log_files = [f for f in filter(r.match, files) if f not in self.skip_logs]
662  if not log_files and not dry_run:
663  self.log.error('%s found no log files matching the pattern %s', self.name, self.log_regex)
664  self.result = 1
665  if self.auto_report_result:
666  self.report_result()
667  return self.result, '# (internal) {} -> failed'.format(self.name)
668  self.args += ' ' + ' '.join(log_files)
669  auto_report = self.auto_report_result
670  self.auto_report_result = False
671  ret, cmd = super(MessageCountStep, self).run(dry_run)
672  self.auto_report_result = auto_report
673  if ret != 0:
674  self.log.error('%s failed', self.name)
675  self.result = 1
676  if self.auto_report_result:
677  self.report_result()
678  return self.result, cmd
679 
680  for log_file in log_files:
681  json_file = 'MessageCount.{:s}.json'.format(log_file)
682  if self.print_on_fail:
683  all_json_file = 'Messages.{:s}.json'.format(log_file)
684  if not os.path.isfile(json_file):
685  self.log.warning('%s cannot open file %s', self.name, json_file)
686  with open(json_file) as f:
687  summary = json.load(f)
688  for level, threshold in self.thresholds.items():
689  if summary[level] > threshold:
690  self.result += 1
691  self.log.info(
692  '%s Number of %s messages %s in %s is higher than threshold %s',
693  self.name, level, summary[level], log_file, threshold)
694  if self.print_on_fail:
695  self.log.info('%s Printing all %s messages from %s', self.name, level, log_file)
696  with open(all_json_file) as af:
697  all_msg = json.load(af)
698  for msg in all_msg[level]:
699  print(msg.strip()) # noqa: ATL901
700 
701  if self.auto_report_result:
702  self.report_result()
703  return self.result, cmd
704 
705 

Member Data Documentation

◆ auto_report_result

python.TrigValSteering.CheckSteps.MessageCountStep.auto_report_result

Definition at line 634 of file CheckSteps.py.

◆ depends_on_exec

python.TrigValSteering.CheckSteps.MessageCountStep.depends_on_exec

Definition at line 635 of file CheckSteps.py.

◆ end_pattern

python.TrigValSteering.CheckSteps.MessageCountStep.end_pattern

Definition at line 631 of file CheckSteps.py.

◆ executable

python.TrigValSteering.CheckSteps.MessageCountStep.executable

Definition at line 627 of file CheckSteps.py.

◆ log_regex

python.TrigValSteering.CheckSteps.MessageCountStep.log_regex

Definition at line 628 of file CheckSteps.py.

◆ print_on_fail

python.TrigValSteering.CheckSteps.MessageCountStep.print_on_fail

Definition at line 632 of file CheckSteps.py.

◆ result

python.TrigValSteering.CheckSteps.MessageCountStep.result

Definition at line 664 of file CheckSteps.py.

◆ skip_logs

python.TrigValSteering.CheckSteps.MessageCountStep.skip_logs

Definition at line 629 of file CheckSteps.py.

◆ start_pattern

python.TrigValSteering.CheckSteps.MessageCountStep.start_pattern

Definition at line 630 of file CheckSteps.py.

◆ thresholds

python.TrigValSteering.CheckSteps.MessageCountStep.thresholds

Definition at line 633 of file CheckSteps.py.


The documentation for this class was generated from the following file:
grepfile.info
info
Definition: grepfile.py:38
vtune_athena.format
format
Definition: vtune_athena.py:14
configure
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)
Definition: TrigGlobEffCorrValidation.cxx:514
run
int run(int argc, char *argv[])
Definition: ttree2hdf5.cxx:28
covarianceTool.filter
filter
Definition: covarianceTool.py:514
run
Definition: run.py:1
print
void print(char *figname, TCanvas *c1)
Definition: TRTCalib_StrawStatusPlots.cxx:25
TCS::join
std::string join(const std::vector< std::string > &v, const char c=',')
Definition: Trigger/TrigT1/L1Topo/L1TopoCommon/Root/StringUtils.cxx:10
TrigJetMonitorAlgorithm.items
items
Definition: TrigJetMonitorAlgorithm.py:71
python.processes.powheg.ZZ.ZZ.__init__
def __init__(self, base_directory, **kwargs)
Constructor: all process options are set here.
Definition: ZZ.py:18
Trk::open
@ open
Definition: BinningType.h:40
error
Definition: IImpactPoint3dEstimator.h:70