CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes
Config.ModifierChain Class Reference
Inheritance diagram for Config.ModifierChain:

Public Member Functions

def __init__ (self, *chainedModifiers)
 
def copyAndExclude (self, toExclude)
 

Private Member Functions

def __copyIfExclude (self, toExclude)
 
def _applyNewProcessModifiers (self, process)
 
def _isChosen (self)
 
def _isOrContains (self, other)
 
def _setChosen (self)
 

Private Attributes

 __chain
 
 __chosen
 

Detailed Description

A Modifier made up of a list of Modifiers

Definition at line 1669 of file Config.py.

Constructor & Destructor Documentation

◆ __init__()

def Config.ModifierChain.__init__ (   self,
chainedModifiers 
)

Definition at line 1672 of file Config.py.

1672  def __init__(self, *chainedModifiers):
1673  self.__chosen = False
1674  self.__chain = chainedModifiers

Member Function Documentation

◆ __copyIfExclude()

def Config.ModifierChain.__copyIfExclude (   self,
  toExclude 
)
private

Definition at line 1701 of file Config.py.

1701  def __copyIfExclude(self,toExclude):
1702  shouldCopy = False
1703  for m in toExclude:
1704  if self._isOrContains(m):
1705  shouldCopy = True
1706  break
1707  if shouldCopy:
1708  return self.copyAndExclude(toExclude)
1709  return self

References Config.Modifier._isOrContains(), Config.ModifierChain._isOrContains(), and Config.ModifierChain.copyAndExclude().

◆ _applyNewProcessModifiers()

def Config.ModifierChain._applyNewProcessModifiers (   self,
  process 
)
private
Should only be called by cms.Process instances
applies list of accumulated changes to the process

Definition at line 1675 of file Config.py.

1675  def _applyNewProcessModifiers(self,process):
1676  """Should only be called by cms.Process instances
1677  applies list of accumulated changes to the process"""
1678  for m in self.__chain:
1679  m._applyNewProcessModifiers(process)

References Config.ModifierChain.__chain.

◆ _isChosen()

def Config.ModifierChain._isChosen (   self)
private

Definition at line 1685 of file Config.py.

1685  def _isChosen(self):
1686  return self.__chosen

References Config.Modifier.__chosen, and Config.ModifierChain.__chosen.

Referenced by Config._BoolModifierBase.toModify(), and Config._BoolModifierBase.toReplaceWith().

◆ _isOrContains()

def Config.ModifierChain._isOrContains (   self,
  other 
)
private

Definition at line 1710 of file Config.py.

1710  def _isOrContains(self, other):
1711  if self is other:
1712  return True
1713  for m in self.__chain:
1714  if m._isOrContains(other):
1715  return True
1716  return False
1717 

References Config.ModifierChain.__chain.

Referenced by Config.ModifierChain.__copyIfExclude().

◆ _setChosen()

def Config.ModifierChain._setChosen (   self)
private
Should only be called by cms.Process instances

Definition at line 1680 of file Config.py.

1680  def _setChosen(self):
1681  """Should only be called by cms.Process instances"""
1682  self.__chosen = True
1683  for m in self.__chain:
1684  m._setChosen()

References Config.ModifierChain.__chain, Config.Modifier.__chosen, and Config.ModifierChain.__chosen.

◆ copyAndExclude()

def Config.ModifierChain.copyAndExclude (   self,
  toExclude 
)
Creates a new ModifierChain which is a copy of
  this ModifierChain but excludes any Modifier or
  ModifierChain in the list toExclude.
  The exclusion is done recursively down the chain.

Definition at line 1687 of file Config.py.

1687  def copyAndExclude(self, toExclude):
1688  """Creates a new ModifierChain which is a copy of
1689  this ModifierChain but excludes any Modifier or
1690  ModifierChain in the list toExclude.
1691  The exclusion is done recursively down the chain.
1692  """
1693  newMods = []
1694  for m in self.__chain:
1695  if m not in toExclude:
1696  s = m
1697  if isinstance(m,ModifierChain):
1698  s = m.__copyIfExclude(toExclude)
1699  newMods.append(s)
1700  return ModifierChain(*newMods)

References Config.ModifierChain.__chain.

Referenced by Config.ModifierChain.__copyIfExclude().

Member Data Documentation

◆ __chain

Config.ModifierChain.__chain
private

◆ __chosen

Config.ModifierChain.__chosen
private

Definition at line 1673 of file Config.py.

Referenced by Config.ModifierChain._isChosen(), and Config.ModifierChain._setChosen().