CMS 3D CMS Logo

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

Public Member Functions

def __and__ (self, other)
 
def __init__ (self)
 
def __invert__ (self)
 
def __or__ (self, other)
 
def makeProcessModifier (self, func)
 
def toModify (self, obj, func=None, **kw)
 
def toReplaceWith (self, toObj, fromObj)
 

Private Member Functions

def _isChosen (self)
 
def _isOrContains (self, other)
 
def _setChosen (self)
 

Static Private Member Functions

def _toModify (obj, func, **kw)
 
def _toModifyCheck (obj, func, **kw)
 
def _toReplaceWith (toObj, fromObj)
 
def _toReplaceWithCheck (toObj, fromObj)
 

Private Attributes

 __chosen
 
 __processModifiers
 

Detailed Description

This class is used to define standard modifications to a Process.
An instance of this class is declared to denote a specific modification,e.g. era2017 could
reconfigure items in a process to match our expectation of running in 2017. Once declared,
these Modifier instances are imported into a configuration and items that need to be modified
are then associated with the Modifier and with the action to do the modification.
The registered modifications will only occur if the Modifier was passed to 
the cms.Process' constructor.

Definition at line 1582 of file Config.py.

Constructor & Destructor Documentation

◆ __init__()

def Config.Modifier.__init__ (   self)

Definition at line 1591 of file Config.py.

1591  def __init__(self):
1592  self.__processModifiers = []
1593  self.__chosen = False

Member Function Documentation

◆ __and__()

def Config.Modifier.__and__ (   self,
  other 
)

Definition at line 1663 of file Config.py.

1663  def __and__(self, other):
1664  return _AndModifier(self,other)

◆ __invert__()

def Config.Modifier.__invert__ (   self)

Definition at line 1665 of file Config.py.

1665  def __invert__(self):
1666  return _InvertModifier(self)

◆ __or__()

def Config.Modifier.__or__ (   self,
  other 
)

Definition at line 1667 of file Config.py.

1667  def __or__(self, other):
1668  return _OrModifier(self,other)

Referenced by LumiList.LumiList.__add__().

◆ _isChosen()

def Config.Modifier._isChosen (   self)
private

Definition at line 1661 of file Config.py.

1661  def _isChosen(self):
1662  return self.__chosen

References Config.Modifier.__chosen.

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

◆ _isOrContains()

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

Definition at line 1669 of file Config.py.

1669  def _isOrContains(self, other):
1670  return self == other
1671 
1672 

Referenced by Config.ModifierChain.__copyIfExclude().

◆ _setChosen()

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

Definition at line 1658 of file Config.py.

1658  def _setChosen(self):
1659  """Should only be called by cms.Process instances"""
1660  self.__chosen = True

References Config.Modifier.__chosen.

◆ _toModify()

def Config.Modifier._toModify (   obj,
  func,
**  kw 
)
staticprivate

Definition at line 1622 of file Config.py.

1622  def _toModify(obj,func,**kw):
1623  if func is not None:
1624  func(obj)
1625  else:
1626  temp =_ParameterModifier(kw)
1627  temp(obj)

References TrackCollections2monitor_cff.func, and groupFilesInBlocks.temp.

◆ _toModifyCheck()

def Config.Modifier._toModifyCheck (   obj,
  func,
**  kw 
)
staticprivate

Definition at line 1601 of file Config.py.

1601  def _toModifyCheck(obj,func,**kw):
1602  if func is not None and len(kw) != 0:
1603  raise TypeError("toModify takes either two arguments or one argument and key/value pairs")

◆ _toReplaceWith()

def Config.Modifier._toReplaceWith (   toObj,
  fromObj 
)
staticprivate

Definition at line 1640 of file Config.py.

1640  def _toReplaceWith(toObj,fromObj):
1641  if isinstance(fromObj,_ModuleSequenceType):
1642  toObj._seq = fromObj._seq
1643  toObj._tasks = fromObj._tasks
1644  elif isinstance(fromObj,Task):
1645  toObj._collection = fromObj._collection
1646  elif isinstance(fromObj,_Parameterizable):
1647  #clear old items just incase fromObj is not a complete superset of toObj
1648  for p in toObj.parameterNames_():
1649  delattr(toObj,p)
1650  for p in fromObj.parameterNames_():
1651  setattr(toObj,p,getattr(fromObj,p))
1652  if isinstance(fromObj,_TypedParameterizable):
1653  toObj._TypedParameterizable__type = fromObj._TypedParameterizable__type
1654 
1655  else:
1656  raise TypeError("toReplaceWith does not work with type "+str(type(toObj)))
1657 

References str.

◆ _toReplaceWithCheck()

def Config.Modifier._toReplaceWithCheck (   toObj,
  fromObj 
)
staticprivate

Definition at line 1629 of file Config.py.

1629  def _toReplaceWithCheck(toObj,fromObj):
1630  if not isinstance(fromObj, type(toObj)):
1631  raise TypeError("toReplaceWith requires both arguments to be the same class type")

◆ makeProcessModifier()

def Config.Modifier.makeProcessModifier (   self,
  func 
)
This is used to create a ProcessModifer that can perform actions on the process as a whole.
   This takes as argument a callable object (e.g. function) that takes as its sole argument an instance of Process.
   In order to work, the value returned from this function must be assigned to a uniquely named variable.

Definition at line 1594 of file Config.py.

1594  def makeProcessModifier(self,func):
1595  """This is used to create a ProcessModifer that can perform actions on the process as a whole.
1596  This takes as argument a callable object (e.g. function) that takes as its sole argument an instance of Process.
1597  In order to work, the value returned from this function must be assigned to a uniquely named variable.
1598  """
1599  return ProcessModifier(self,func)

◆ toModify()

def Config.Modifier.toModify (   self,
  obj,
  func = None,
**  kw 
)
This is used to register an action to be performed on the specific object. Two different forms are allowed
Form 1: A callable object (e.g. function) can be passed as the second. This callable object is expected to take one argument
that will be the object passed in as the first argument.
Form 2: A list of parameter name, value pairs can be passed
   mod.toModify(foo, fred=cms.int32(7), barney = cms.double(3.14))
This form can also be used to remove a parameter by passing the value of None
    #remove the parameter foo.fred       
    mod.toModify(foo, fred = None)
Additionally, parameters embedded within PSets can also be modified using a dictionary
    #change foo.fred.pebbles to 3 and foo.fred.friend to "barney"
    mod.toModify(foo, fred = dict(pebbles = 3, friend = "barney)) )

Definition at line 1604 of file Config.py.

1604  def toModify(self,obj, func=None,**kw):
1605  """This is used to register an action to be performed on the specific object. Two different forms are allowed
1606  Form 1: A callable object (e.g. function) can be passed as the second. This callable object is expected to take one argument
1607  that will be the object passed in as the first argument.
1608  Form 2: A list of parameter name, value pairs can be passed
1609  mod.toModify(foo, fred=cms.int32(7), barney = cms.double(3.14))
1610  This form can also be used to remove a parameter by passing the value of None
1611  #remove the parameter foo.fred
1612  mod.toModify(foo, fred = None)
1613  Additionally, parameters embedded within PSets can also be modified using a dictionary
1614  #change foo.fred.pebbles to 3 and foo.fred.friend to "barney"
1615  mod.toModify(foo, fred = dict(pebbles = 3, friend = "barney)) )
1616  """
1617  Modifier._toModifyCheck(obj,func,**kw)
1618  if not self._isChosen():
1619  return
1620  Modifier._toModify(obj,func,**kw)

References Config._AndModifier._isChosen(), Config._InvertModifier._isChosen(), Config._OrModifier._isChosen(), and Config.Modifier._isChosen().

◆ toReplaceWith()

def Config.Modifier.toReplaceWith (   self,
  toObj,
  fromObj 
)
If the Modifier is chosen the internals of toObj will be associated with the internals of fromObj

Definition at line 1632 of file Config.py.

1632  def toReplaceWith(self,toObj,fromObj):
1633  """If the Modifier is chosen the internals of toObj will be associated with the internals of fromObj
1634  """
1635  Modifier._toReplaceWithCheck(toObj,fromObj)
1636  if not self._isChosen():
1637  return
1638  Modifier._toReplaceWith(toObj,fromObj)

References Config._AndModifier._isChosen(), Config._InvertModifier._isChosen(), Config._OrModifier._isChosen(), and Config.Modifier._isChosen().

Member Data Documentation

◆ __chosen

Config.Modifier.__chosen
private

◆ __processModifiers

Config.Modifier.__processModifiers
private

Definition at line 1592 of file Config.py.

groupFilesInBlocks.temp
list temp
Definition: groupFilesInBlocks.py:142
str
#define str(s)
Definition: TestProcessor.cc:52
TrackCollections2monitor_cff.func
func
Definition: TrackCollections2monitor_cff.py:359