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

Constructor & Destructor Documentation

◆ __init__()

def Config.Modifier.__init__ (   self)

Definition at line 1835 of file Config.py.

1835  def __init__(self):
1836  self.__processModifiers = []
1837  self.__chosen = False
def __init__(self, dataset, job_number, job_id, job_name, isDA, isMC, applyBOWS, applyEXTRACOND, extraconditions, runboundary, lumilist, intlumi, maxevents, gt, allFromGT, alignmentDB, alignmentTAG, apeDB, apeTAG, bowDB, bowTAG, vertextype, tracktype, refittertype, ttrhtype, applyruncontrol, ptcut, CMSSW_dir, the_dir)

Member Function Documentation

◆ __and__()

def Config.Modifier.__and__ (   self,
  other 
)

Definition at line 1909 of file Config.py.

1909  def __and__(self, other):
1910  return _AndModifier(self,other)

◆ __invert__()

def Config.Modifier.__invert__ (   self)

Definition at line 1911 of file Config.py.

1911  def __invert__(self):
1912  return _InvertModifier(self)

◆ __or__()

def Config.Modifier.__or__ (   self,
  other 
)

Definition at line 1913 of file Config.py.

Referenced by LumiList.LumiList.__add__().

1913  def __or__(self, other):
1914  return _OrModifier(self,other)

◆ _isChosen()

def Config.Modifier._isChosen (   self,
  bool 
)
private

Definition at line 1907 of file Config.py.

References Config.Modifier.__chosen.

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

1907  def _isChosen(self) -> bool:
1908  return self.__chosen

◆ _isOrContains()

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

Definition at line 1915 of file Config.py.

Referenced by Config.ModifierChain.__copyIfExclude().

1915  def _isOrContains(self, other):
1916  return self == other
1917 
1918 

◆ _setChosen()

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

Definition at line 1904 of file Config.py.

References Config.Modifier.__chosen.

1904  def _setChosen(self):
1905  """Should only be called by cms.Process instances"""
1906  self.__chosen = True

◆ _toModify()

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

Definition at line 1866 of file Config.py.

References EcalMonitorTask_cff.func, and groupFilesInBlocks.temp.

1866  def _toModify(obj,func,**kw):
1867  if func is not None:
1868  func(obj)
1869  else:
1870  temp =_ParameterModifier(kw)
1871  temp(obj)

◆ _toModifyCheck()

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

Definition at line 1845 of file Config.py.

1845  def _toModifyCheck(obj,func,**kw):
1846  if func is not None and len(kw) != 0:
1847  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 1884 of file Config.py.

References str.

1884  def _toReplaceWith(toObj,fromObj):
1885  if isinstance(fromObj,_ModuleSequenceType):
1886  toObj._seq = fromObj._seq
1887  toObj._tasks = fromObj._tasks
1888  elif isinstance(fromObj,Task):
1889  toObj._collection = fromObj._collection
1890  elif isinstance(fromObj,ConditionalTask):
1891  toObj._collection = fromObj._collection
1892  elif isinstance(fromObj,_Parameterizable):
1893  #clear old items just incase fromObj is not a complete superset of toObj
1894  for p in toObj.parameterNames_():
1895  delattr(toObj,p)
1896  for p in fromObj.parameterNames_():
1897  setattr(toObj,p,getattr(fromObj,p))
1898  if isinstance(fromObj,_TypedParameterizable):
1899  toObj._TypedParameterizable__type = fromObj._TypedParameterizable__type
1900 
1901  else:
1902  raise TypeError("toReplaceWith does not work with type "+str(type(toObj)))
1903 
#define str(s)

◆ _toReplaceWithCheck()

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

Definition at line 1873 of file Config.py.

1873  def _toReplaceWithCheck(toObj,fromObj):
1874  if not isinstance(fromObj, type(toObj)):
1875  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 1838 of file Config.py.

1838  def makeProcessModifier(self,func):
1839  """This is used to create a ProcessModifer that can perform actions on the process as a whole.
1840  This takes as argument a callable object (e.g. function) that takes as its sole argument an instance of Process.
1841  In order to work, the value returned from this function must be assigned to a uniquely named variable.
1842  """
1843  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 1848 of file Config.py.

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

1848  def toModify(self,obj, func=None,**kw):
1849  """This is used to register an action to be performed on the specific object. Two different forms are allowed
1850  Form 1: A callable object (e.g. function) can be passed as the second. This callable object is expected to take one argument
1851  that will be the object passed in as the first argument.
1852  Form 2: A list of parameter name, value pairs can be passed
1853  mod.toModify(foo, fred=cms.int32(7), barney = cms.double(3.14))
1854  This form can also be used to remove a parameter by passing the value of None
1855  #remove the parameter foo.fred
1856  mod.toModify(foo, fred = None)
1857  Additionally, parameters embedded within PSets can also be modified using a dictionary
1858  #change foo.fred.pebbles to 3 and foo.fred.friend to "barney"
1859  mod.toModify(foo, fred = dict(pebbles = 3, friend = "barney)) )
1860  """
1861  Modifier._toModifyCheck(obj,func,**kw)
1862  if self._isChosen():
1863  Modifier._toModify(obj,func,**kw)
1864  return self

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

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

1876  def toReplaceWith(self,toObj,fromObj):
1877  """If the Modifier is chosen the internals of toObj will be associated with the internals of fromObj
1878  """
1879  Modifier._toReplaceWithCheck(toObj,fromObj)
1880  if self._isChosen():
1881  Modifier._toReplaceWith(toObj,fromObj)
1882  return self

Member Data Documentation

◆ __chosen

Config.Modifier.__chosen
private

◆ __processModifiers

Config.Modifier.__processModifiers
private

Definition at line 1836 of file Config.py.