The Gaudi Framework  v41r0 (bdbe7744)
Loading...
Searching...
No Matches
GaudiKernel.Configurable.CreateSequencesVisitor Class Reference

Public Member Functions

 __init__ (self)
 sequence (self)
 enter (self, visitee)
 leave (self, visitee)

Public Attributes

list stack = []

Protected Member Functions

 _getUniqueName (self, prefix)
 _newSeq (self, prefix="seq_", **kwargs)

Detailed Description

Definition at line 1774 of file Configurable.py.

Constructor & Destructor Documentation

◆ __init__()

GaudiKernel.Configurable.CreateSequencesVisitor.__init__ ( self)

Definition at line 1775 of file Configurable.py.

1775 def __init__(self):
1776 self.stack = []
1777

Member Function Documentation

◆ _getUniqueName()

GaudiKernel.Configurable.CreateSequencesVisitor._getUniqueName ( self,
prefix )
protected

Definition at line 1785 of file Configurable.py.

1785 def _getUniqueName(self, prefix):
1786 from Gaudi.Configuration import allConfigurables
1787
1788 cnt = 0
1789 name = prefix + str(cnt)
1790 while name in allConfigurables:
1791 cnt += 1
1792 name = prefix + str(cnt)
1793 return name
1794

◆ _newSeq()

GaudiKernel.Configurable.CreateSequencesVisitor._newSeq ( self,
prefix = "seq_",
** kwargs )
protected

Definition at line 1795 of file Configurable.py.

1795 def _newSeq(self, prefix="seq_", **kwargs):
1796 from Configurables import Gaudi__Sequencer
1797
1798 return Gaudi__Sequencer(self._getUniqueName("seq_"), **kwargs)
1799

◆ enter()

GaudiKernel.Configurable.CreateSequencesVisitor.enter ( self,
visitee )

Definition at line 1782 of file Configurable.py.

1782 def enter(self, visitee):
1783 pass
1784

◆ leave()

GaudiKernel.Configurable.CreateSequencesVisitor.leave ( self,
visitee )

Definition at line 1800 of file Configurable.py.

1800 def leave(self, visitee):
1801 stack = self.stack
1802 if visitee in (CFTrue, CFFalse):
1803 stack.append(self._newSeq(Invert=visitee is CFFalse))
1804 elif isinstance(visitee, (ControlFlowLeaf, ConfigurableAlgorithm)):
1805 stack.append(visitee)
1806 elif isinstance(visitee, (OrNode, AndNode, OrderedNode)):
1807 b = stack.pop()
1808 a = stack.pop()
1809 seq = self._newSeq(
1810 Members=[a, b],
1811 ModeOR=isinstance(visitee, OrNode),
1812 ShortCircuit=not isinstance(visitee, OrderedNode),
1813 )
1814 stack.append(seq)
1815 elif isinstance(visitee, ignore):
1816 if hasattr(stack[-1], "IgnoreFilterPassed"):
1817 stack[-1].IgnoreFilterPassed = True
1818 else:
1819 stack.append(
1820 self._newSeq(Members=[stack.pop()], IgnoreFilterPassed=True)
1821 )
1822 elif isinstance(visitee, InvertNode):
1823 if hasattr(stack[-1], "Invert"):
1824 stack[-1].Invert = True
1825 else:
1826 stack.append(self._newSeq(Members=[stack.pop()], Invert=True))
1827
1828

◆ sequence()

GaudiKernel.Configurable.CreateSequencesVisitor.sequence ( self)

Definition at line 1779 of file Configurable.py.

1779 def sequence(self):
1780 return self.stack[-1]
1781

Member Data Documentation

◆ stack

list GaudiKernel.Configurable.CreateSequencesVisitor.stack = []

Definition at line 1776 of file Configurable.py.


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