CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Attributes
genericValidation.ValidationMetaClass Class Reference
Inheritance diagram for genericValidation.ValidationMetaClass:

Public Member Functions

def __new__ (cls, clsname, bases, dct)
 

Static Public Attributes

list dicts = ["defaults"]
 
list sets = ["mandatories", "optionals", "needpackages"]
 

Detailed Description

Definition at line 14 of file genericValidation.py.

Member Function Documentation

def genericValidation.ValidationMetaClass.__new__ (   cls,
  clsname,
  bases,
  dct 
)

Definition at line 17 of file genericValidation.py.

References genericValidation.ValidationMetaClass.dicts, genericValidation.ValidationMetaClass.sets, and update.

Referenced by SequenceTypes._ModuleSequenceType.copyAndExclude().

17  def __new__(cls, clsname, bases, dct):
18  for setname in cls.sets:
19  if setname not in dct: dct[setname] = set()
20  dct[setname] = set.union(dct[setname], *(getattr(base, setname) for base in bases if hasattr(base, setname)))
21 
22  for dictname in cls.dicts:
23  if dictname not in dct: dct[dictname] = {}
24  for base in bases:
25  if not hasattr(base, dictname): continue
26  newdict = getattr(base, dictname)
27  for key in set(newdict) & set(dct[dictname]):
28  if newdict[key] != dct[dictname][key]:
29  raise ValueError("Inconsistent values of defaults[{}]: {}, {}".format(key, newdict[key], dct[dictname][key]))
30  dct[dictname].update(newdict)
31 
32  for setname in cls.sets: #e.g. removemandatories, used in preexistingvalidation
33  #use with caution
34  if "remove"+setname not in dct: dct["remove"+setname] = set()
35  dct["remove"+setname] = set.union(dct["remove"+setname], *(getattr(base, "remove"+setname) for base in bases if hasattr(base, "remove"+setname)))
36 
37  dct[setname] -= dct["remove"+setname]
38 
39  return super(ValidationMetaClass, cls).__new__(cls, clsname, bases, dct)
40 
def __new__(cls, clsname, bases, dct)
#define update(a, b)

Member Data Documentation

list genericValidation.ValidationMetaClass.dicts = ["defaults"]
static

Definition at line 16 of file genericValidation.py.

Referenced by genericValidation.ValidationMetaClass.__new__().

list genericValidation.ValidationMetaClass.sets = ["mandatories", "optionals", "needpackages"]
static

Definition at line 15 of file genericValidation.py.

Referenced by genericValidation.ValidationMetaClass.__new__().