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 1673 of file Config.py.

Constructor & Destructor Documentation

◆ __init__()

def Config.ModifierChain.__init__ (   self,
chainedModifiers 
)

Definition at line 1676 of file Config.py.

1676  def __init__(self, *chainedModifiers):
1677  self.__chosen = False
1678  self.__chain = chainedModifiers

Member Function Documentation

◆ __copyIfExclude()

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

Definition at line 1705 of file Config.py.

1705  def __copyIfExclude(self,toExclude):
1706  shouldCopy = False
1707  for m in toExclude:
1708  if self._isOrContains(m):
1709  shouldCopy = True
1710  break
1711  if shouldCopy:
1712  return self.copyAndExclude(toExclude)
1713  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 1679 of file Config.py.

1679  def _applyNewProcessModifiers(self,process):
1680  """Should only be called by cms.Process instances
1681  applies list of accumulated changes to the process"""
1682  for m in self.__chain:
1683  m._applyNewProcessModifiers(process)

References Config.ModifierChain.__chain.

◆ _isChosen()

def Config.ModifierChain._isChosen (   self)
private

Definition at line 1689 of file Config.py.

1689  def _isChosen(self):
1690  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 1714 of file Config.py.

1714  def _isOrContains(self, other):
1715  if self is other:
1716  return True
1717  for m in self.__chain:
1718  if m._isOrContains(other):
1719  return True
1720  return False
1721 

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 1684 of file Config.py.

1684  def _setChosen(self):
1685  """Should only be called by cms.Process instances"""
1686  self.__chosen = True
1687  for m in self.__chain:
1688  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 1691 of file Config.py.

1691  def copyAndExclude(self, toExclude):
1692  """Creates a new ModifierChain which is a copy of
1693  this ModifierChain but excludes any Modifier or
1694  ModifierChain in the list toExclude.
1695  The exclusion is done recursively down the chain.
1696  """
1697  newMods = []
1698  for m in self.__chain:
1699  if m not in toExclude:
1700  s = m
1701  if isinstance(m,ModifierChain):
1702  s = m.__copyIfExclude(toExclude)
1703  newMods.append(s)
1704  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 1677 of file Config.py.

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