CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Member Functions | Private Attributes
SequenceTypes._ModuleSequenceType Class Reference
Inheritance diagram for SequenceTypes._ModuleSequenceType:
Mixins._ConfigureComponent Mixins._Labelable SequenceTypes.EndPath SequenceTypes.Path SequenceTypes.Sequence

Public Member Functions

def __iadd__
 
def __imul__
 
def __init__
 
def __repr__
 
def __setattr__
 
def __str__
 
def copy
 
def copyAndExclude
 
def dumpConfig
 
def dumpPython
 
def dumpSequenceConfig
 
def dumpSequencePython
 
def expandAndClone
 
def index
 
def insert
 
def insertInto
 
def isFrozen
 
def moduleNames
 
def nameInProcessDesc_
 
def remove
 
def replace
 
def resolve
 
def setIsFrozen
 
def visit
 
- Public Member Functions inherited from Mixins._Labelable
def __str__
 
def dumpSequenceConfig
 
def dumpSequencePython
 
def hasLabel_
 
def label
 
def label_
 
def setLabel
 

Private Member Functions

def _place
 
def _postProcessFixup
 

Private Attributes

 _isFrozen
 
 _isModified
 
 _seq
 

Detailed Description

Base class for classes which define a sequence of modules

Definition at line 181 of file SequenceTypes.py.

Constructor & Destructor Documentation

def SequenceTypes._ModuleSequenceType.__init__ (   self,
  arg,
  argv 
)

Definition at line 183 of file SequenceTypes.py.

184  def __init__(self,*arg, **argv):
185  self.__dict__["_isFrozen"] = False
186  self._seq = None
187  if len(arg) > 1:
188  typename = format_typename(self)
189  msg = format_outerframe(2)
190  msg += "%s takes exactly one input value. But the following ones are given:\n" %typename
191  for item,i in zip(arg, xrange(1,20)):
192  msg += " %i) %s \n" %(i, item._errorstr())
193  msg += "Maybe you forgot to combine them via '*' or '+'."
194  raise TypeError(msg)
195  if len(arg)==1:
196  _checkIfSequenceable(self, arg[0])
197  self._seq = _SequenceCollection()
198  arg[0]._appendToCollection(self._seq._collection)
self._isModified = False
def _checkIfSequenceable

Member Function Documentation

def SequenceTypes._ModuleSequenceType.__iadd__ (   self,
  rhs 
)

Definition at line 211 of file SequenceTypes.py.

References SequenceTypes._checkIfSequenceable(), and SequenceTypes._ModuleSequenceType._seq.

212  def __iadd__(self,rhs):
213  _checkIfSequenceable(self, rhs)
214  if self._seq is None:
215  self.__dict__["_seq"] = _SequenceCollection()
216  self._seq += rhs
return self
def _checkIfSequenceable
def SequenceTypes._ModuleSequenceType.__imul__ (   self,
  rhs 
)

Definition at line 205 of file SequenceTypes.py.

References SequenceTypes._checkIfSequenceable(), and SequenceTypes._ModuleSequenceType._seq.

206  def __imul__(self,rhs):
207  _checkIfSequenceable(self, rhs)
208  if self._seq is None:
209  self.__dict__["_seq"] = _SequenceCollection()
210  self._seq+=rhs
return self
def _checkIfSequenceable
def SequenceTypes._ModuleSequenceType.__repr__ (   self)

Definition at line 250 of file SequenceTypes.py.

References SequenceTypes._ModuleSequenceType._seq.

251  def __repr__(self):
252  s = ''
253  if self._seq is not None:
254  s = str(self._seq)
return "cms."+type(self).__name__+'('+s+')\n'
def SequenceTypes._ModuleSequenceType.__setattr__ (   self,
  name,
  value 
)

Definition at line 314 of file SequenceTypes.py.

315  def __setattr__(self,name,value):
316  if not name.startswith("_"):
317  raise AttributeError, "You cannot set parameters for sequence like objects."
318  else:
self.__dict__[name] = value
def SequenceTypes._ModuleSequenceType.__str__ (   self)

Definition at line 217 of file SequenceTypes.py.

References SequenceTypes._ModuleSequenceType._seq.

218  def __str__(self):
return str(self._seq)
def SequenceTypes._ModuleSequenceType._place (   self,
  name,
  proc 
)
private

Definition at line 203 of file SequenceTypes.py.

References Modules.Service._placeImpl(), Modules.ESSource._placeImpl(), Modules.ESProducer._placeImpl(), Modules.ESPrefer._placeImpl(), Modules.EDProducer._placeImpl(), Modules.EDFilter._placeImpl(), Modules.EDAnalyzer._placeImpl(), Modules.OutputModule._placeImpl(), Modules.Source._placeImpl(), Modules.Looper._placeImpl(), SequenceTypes.Path._placeImpl(), SequenceTypes.EndPath._placeImpl(), SequenceTypes.Sequence._placeImpl(), and SequenceTypes.SequencePlaceholder._placeImpl().

204  def _place(self,name,proc):
self._placeImpl(name,proc)
def SequenceTypes._ModuleSequenceType._postProcessFixup (   self,
  lookuptable 
)
private

Definition at line 279 of file SequenceTypes.py.

References SequenceTypes._ModuleSequenceType._seq.

280  def _postProcessFixup(self,lookuptable):
281  self._seq = self._seq._clonesequence(lookuptable)
return self
def SequenceTypes._ModuleSequenceType.copy (   self)

Definition at line 261 of file SequenceTypes.py.

References SequenceTypes._ModuleSequenceType._seq.

262  def copy(self):
263  returnValue =_ModuleSequenceType.__new__(type(self))
264  if self._seq is not None:
265  returnValue.__init__(self._seq)
266  else:
267  returnValue.__init__()
return returnValue
def SequenceTypes._ModuleSequenceType.copyAndExclude (   self,
  listOfModulesToExclude 
)
Returns a copy of the sequence which exlcudes those module in 'listOfModulesToExclude'

Definition at line 268 of file SequenceTypes.py.

References frozendict.frozendict.__new__(), DictTypes.SortedAndFixedKeysDict.__new__(), DictTypes.FixedKeysDict.__new__(), BeautifulSoup.NavigableString.__new__(), Config.FilteredStream.__new__(), and SequenceTypes._ModuleSequenceType.visit().

269  def copyAndExclude(self,listOfModulesToExclude):
270  """Returns a copy of the sequence which exlcudes those module in 'listOfModulesToExclude'"""
271  v = _CopyAndExcludeSequenceVisitor(listOfModulesToExclude)
272  self.visit(v)
273  result = self.__new__(type(self))
274  result.__init__(v.result())
return result
def SequenceTypes._ModuleSequenceType.dumpConfig (   self,
  options 
)

Definition at line 219 of file SequenceTypes.py.

References SequenceTypes._ModuleSequenceType._seq.

220  def dumpConfig(self, options):
221  s = ''
222  if self._seq is not None:
223  s = self._seq.dumpSequenceConfig()
return '{'+s+'}\n'
def SequenceTypes._ModuleSequenceType.dumpPython (   self,
  options 
)
Returns a string which is the python representation of the object

Definition at line 224 of file SequenceTypes.py.

References SequenceTypes._ModuleSequenceType._seq.

225  def dumpPython(self, options):
226  """Returns a string which is the python representation of the object"""
227  s=''
228  if self._seq is not None:
229  s =self._seq.dumpSequencePython()
return 'cms.'+type(self).__name__+'('+s+')\n'
def SequenceTypes._ModuleSequenceType.dumpSequenceConfig (   self)
Returns a string which contains the old config language representation of just the internal sequence

Definition at line 240 of file SequenceTypes.py.

References SequenceTypes._ModuleSequenceType._seq, and Mixins._Labelable.hasLabel_().

241  def dumpSequenceConfig(self):
242  """Returns a string which contains the old config language representation of just the internal sequence"""
243  # only dump the label, if possible
244  if self.hasLabel_():
245  return _Labelable.dumpSequenceConfig(self)
246  else:
247  # dump it verbose
248  if self._seq is None:
249  return ''
return '('+self._seq.dumpSequenceConfig()+')'
def SequenceTypes._ModuleSequenceType.dumpSequencePython (   self)
Returns a string which contains the python representation of just the internal sequence

Definition at line 230 of file SequenceTypes.py.

References SequenceTypes._ModuleSequenceType._seq, and Mixins._Labelable.hasLabel_().

231  def dumpSequencePython(self):
232  """Returns a string which contains the python representation of just the internal sequence"""
233  # only dump the label, if possible
234  if self.hasLabel_():
235  return _Labelable.dumpSequencePython(self)
236  else:
237  # dump it verbose
238  if self._seq is None:
239  return ''
return '('+self._seq.dumpSequencePython()+')'
def SequenceTypes._ModuleSequenceType.expandAndClone (   self)

Definition at line 275 of file SequenceTypes.py.

References SequenceTypes._ModuleSequenceType.visit().

276  def expandAndClone(self):
277  visitor = ExpandVisitor(type(self))
278  self.visit(visitor)
return visitor.result()
def SequenceTypes._ModuleSequenceType.index (   self,
  item 
)
Returns the index at which the item is found or raises an exception

Definition at line 293 of file SequenceTypes.py.

References SequenceTypes._ModuleSequenceType._seq.

Referenced by BeautifulSoup.PageElement._invert().

294  def index(self,item):
295  """Returns the index at which the item is found or raises an exception"""
296  if self._seq is not None:
297  return self._seq.index(item)
raise ValueError(str(item)+" is not in the sequence")
def SequenceTypes._ModuleSequenceType.insert (   self,
  index,
  item 
)
Inserts the item at the index specified

Definition at line 298 of file SequenceTypes.py.

References SequenceTypes._checkIfSequenceable().

Referenced by BeautifulSoup.PageElement._invert().

299  def insert(self,index,item):
300  """Inserts the item at the index specified"""
301  _checkIfSequenceable(self, item)
self._seq.insert(index,item)
def _checkIfSequenceable
def SequenceTypes._ModuleSequenceType.insertInto (   self,
  parameterSet,
  myname,
  processDict 
)

Definition at line 332 of file SequenceTypes.py.

References SequenceTypes._Sequenceable.resolve(), edm::Provenance.resolve(), SequenceTypes._SequenceCollection.resolve(), SequenceTypes._ModuleSequenceType.resolve(), Json::Path.resolve(), and SequenceTypes._ModuleSequenceType.visit().

333  def insertInto(self, parameterSet, myname, processDict):
334  # represented just as a list of names in the ParameterSet
335  l = []
336  #resolver = ResolveVisitor(processDict)
337  lister = DecoratedNodeNameVisitor(l)
338  #self.visit(resolver)
339  self.resolve(processDict)
340  self.visit(lister)
parameterSet.addVString(True, myname, l)
def SequenceTypes._ModuleSequenceType.isFrozen (   self)

Definition at line 199 of file SequenceTypes.py.

References Mixins._ParameterTypeBase._isFrozen, SequenceTypes._ModuleSequenceType._isFrozen, and Mixins._Parameterizable._isFrozen.

200  def isFrozen(self):
return self._isFrozen
def SequenceTypes._ModuleSequenceType.moduleNames (   self)
Returns a set containing the names of all modules being used

Definition at line 255 of file SequenceTypes.py.

References SequenceTypes._ModuleSequenceType.visit().

256  def moduleNames(self):
257  """Returns a set containing the names of all modules being used"""
258  result = set()
259  visitor = NodeNameVisitor(result)
260  self.visit(visitor)
return result
def SequenceTypes._ModuleSequenceType.nameInProcessDesc_ (   self,
  myname 
)

Definition at line 330 of file SequenceTypes.py.

Referenced by Types.EDAlias.insertInto().

331  def nameInProcessDesc_(self, myname):
return myname
def SequenceTypes._ModuleSequenceType.remove (   self,
  something 
)
Remove the first occurrence of 'something' (a sequence or a module)
   Returns 'True' if the module has been removed, False if it was not found

Definition at line 302 of file SequenceTypes.py.

References SequenceTypes._ModuleSequenceType._seq, and SequenceTypes._ModuleSequenceType.visit().

303  def remove(self, something):
304  """Remove the first occurrence of 'something' (a sequence or a module)
305  Returns 'True' if the module has been removed, False if it was not found"""
307  self.visit(v)
308  if v.didRemove():
309  self._seq = v.result()
return v.didRemove()
def SequenceTypes._ModuleSequenceType.replace (   self,
  original,
  replacement 
)
Finds all instances of 'original' and substitutes 'replacement' for them.
   Returns 'True' if a replacement occurs.

Definition at line 282 of file SequenceTypes.py.

References SequenceTypes._ModuleSequenceType._seq, and SequenceTypes._ModuleSequenceType.visit().

283  def replace(self, original, replacement):
284  """Finds all instances of 'original' and substitutes 'replacement' for them.
285  Returns 'True' if a replacement occurs."""
286  if not isinstance(original,_Sequenceable) or not isinstance(replacement,_Sequenceable):
287  raise TypeError("replace only works with sequenceable objects")
288  else:
289  v = _CopyAndReplaceSequenceVisitor(original,replacement)
290  self.visit(v)
291  if v.didReplace():
292  self._seq = v.result()
return v.didReplace()
def SequenceTypes._ModuleSequenceType.resolve (   self,
  processDict,
  keepIfCannotResolve = False 
)

Definition at line 310 of file SequenceTypes.py.

References SequenceTypes._ModuleSequenceType._seq.

Referenced by SequenceTypes._ModuleSequenceType.insertInto().

311  def resolve(self, processDict,keepIfCannotResolve=False):
312  if self._seq is not None:
313  self._seq = self._seq.resolve(processDict,keepIfCannotResolve)
return self
def SequenceTypes._ModuleSequenceType.setIsFrozen (   self)

Definition at line 201 of file SequenceTypes.py.

202  def setIsFrozen(self):
self._isFrozen = True
def SequenceTypes._ModuleSequenceType.visit (   self,
  visitor 
)
Passes to visitor's 'enter' and 'leave' method each item describing the module sequence.
If the item contains 'sub' items then visitor will see those 'sub' items between the
item's 'enter' and 'leave' calls.

Definition at line 341 of file SequenceTypes.py.

References SequenceTypes._ModuleSequenceType._seq.

Referenced by SequenceTypes.Sequence._visitSubNodes(), SequenceTypes._ModuleSequenceType.copyAndExclude(), SequenceTypes._ModuleSequenceType.expandAndClone(), SequenceTypes._ModuleSequenceType.insertInto(), SequenceTypes._ModuleSequenceType.moduleNames(), SequenceTypes._ModuleSequenceType.remove(), and SequenceTypes._ModuleSequenceType.replace().

342  def visit(self,visitor):
343  """Passes to visitor's 'enter' and 'leave' method each item describing the module sequence.
344  If the item contains 'sub' items then visitor will see those 'sub' items between the
345  item's 'enter' and 'leave' calls.
346  """
347  if self._seq is not None:
348  self._seq.visitNode(visitor)

Member Data Documentation

SequenceTypes._ModuleSequenceType._isFrozen
private

Definition at line 202 of file SequenceTypes.py.

Referenced by SequenceTypes._ModuleSequenceType.isFrozen().

SequenceTypes._ModuleSequenceType._isModified
private

Definition at line 198 of file SequenceTypes.py.

SequenceTypes._ModuleSequenceType._seq
private

Definition at line 185 of file SequenceTypes.py.

Referenced by SequenceTypes._ModuleSequenceType.__iadd__(), SequenceTypes._ModuleSequenceType.__imul__(), SequenceTypes._ModuleSequenceType.__repr__(), SequenceTypes._ModuleSequenceType.__str__(), SequenceTypes.Sequence._clonesequence(), SequenceTypes._ModuleSequenceType._postProcessFixup(), SequenceTypes._ModuleSequenceType.copy(), SequenceTypes._ModuleSequenceType.dumpConfig(), SequenceTypes._ModuleSequenceType.dumpPython(), SequenceTypes._ModuleSequenceType.dumpSequenceConfig(), SequenceTypes._ModuleSequenceType.dumpSequencePython(), cfg-viewer.visitor.enter(), SequenceTypes._ModuleSequenceType.index(), cfg-viewer.visitor.leave(), SequenceTypes._ModuleSequenceType.remove(), SequenceTypes._ModuleSequenceType.replace(), SequenceTypes._ModuleSequenceType.resolve(), and SequenceTypes._ModuleSequenceType.visit().