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 12 of file genericValidation.py.

Member Function Documentation

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

Definition at line 15 of file genericValidation.py.

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

Referenced by SequenceTypes._ModuleSequenceType.copyAndExclude().

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

Member Data Documentation

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

Definition at line 14 of file genericValidation.py.

Referenced by genericValidation.ValidationMetaClass.__new__().

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

Definition at line 13 of file genericValidation.py.

Referenced by genericValidation.ValidationMetaClass.__new__().