The Gaudi Framework  master (594c33fa)
GaudiKernel.Configurable.CreateSequencesVisitor Class Reference
Inheritance diagram for GaudiKernel.Configurable.CreateSequencesVisitor:
Collaboration diagram for GaudiKernel.Configurable.CreateSequencesVisitor:

Public Member Functions

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

Public Attributes

 stack
 

Private Member Functions

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

Detailed Description

Definition at line 1787 of file Configurable.py.

Constructor & Destructor Documentation

◆ __init__()

def GaudiKernel.Configurable.CreateSequencesVisitor.__init__ (   self)

Definition at line 1788 of file Configurable.py.

1788  def __init__(self):
1789  self.stack = []
1790 

Member Function Documentation

◆ _getUniqueName()

def GaudiKernel.Configurable.CreateSequencesVisitor._getUniqueName (   self,
  prefix 
)
private

Definition at line 1798 of file Configurable.py.

1798  def _getUniqueName(self, prefix):
1799  from Gaudi.Configuration import allConfigurables
1800 
1801  cnt = 0
1802  name = prefix + str(cnt)
1803  while name in allConfigurables:
1804  cnt += 1
1805  name = prefix + str(cnt)
1806  return name
1807 

◆ _newSeq()

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

Definition at line 1808 of file Configurable.py.

1808  def _newSeq(self, prefix="seq_", **kwargs):
1809  from Configurables import Gaudi__Sequencer
1810 
1811  return Gaudi__Sequencer(self._getUniqueName("seq_"), **kwargs)
1812 

◆ enter()

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

Definition at line 1795 of file Configurable.py.

1795  def enter(self, visitee):
1796  pass
1797 

◆ leave()

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

Definition at line 1813 of file Configurable.py.

1813  def leave(self, visitee):
1814  stack = self.stack
1815  if visitee in (CFTrue, CFFalse):
1816  stack.append(self._newSeq(Invert=visitee is CFFalse))
1817  elif isinstance(visitee, (ControlFlowLeaf, ConfigurableAlgorithm)):
1818  stack.append(visitee)
1819  elif isinstance(visitee, (OrNode, AndNode, OrderedNode)):
1820  b = stack.pop()
1821  a = stack.pop()
1822  seq = self._newSeq(
1823  Members=[a, b],
1824  ModeOR=isinstance(visitee, OrNode),
1825  ShortCircuit=not isinstance(visitee, OrderedNode),
1826  )
1827  stack.append(seq)
1828  elif isinstance(visitee, ignore):
1829  if hasattr(stack[-1], "IgnoreFilterPassed"):
1830  stack[-1].IgnoreFilterPassed = True
1831  else:
1832  stack.append(
1833  self._newSeq(Members=[stack.pop()], IgnoreFilterPassed=True)
1834  )
1835  elif isinstance(visitee, InvertNode):
1836  if hasattr(stack[-1], "Invert"):
1837  stack[-1].Invert = True
1838  else:
1839  stack.append(self._newSeq(Members=[stack.pop()], Invert=True))
1840 
1841 

◆ sequence()

def GaudiKernel.Configurable.CreateSequencesVisitor.sequence (   self)

Definition at line 1792 of file Configurable.py.

1792  def sequence(self):
1793  return self.stack[-1]
1794 

Member Data Documentation

◆ stack

GaudiKernel.Configurable.CreateSequencesVisitor.stack

Definition at line 1789 of file Configurable.py.


The documentation for this class was generated from the following file:
ManySmallAlgs.sequence
sequence
Definition: ManySmallAlgs.py:35
Gaudi.Configuration
Definition: Configuration.py:1