|
list | dicts = ["defaults"] |
|
list | sets = ["mandatories", "optionals", "needpackages"] |
|
Definition at line 14 of file genericValidation.py.
def genericValidation.ValidationMetaClass.__new__ |
( |
|
cls, |
|
|
|
clsname, |
|
|
|
bases, |
|
|
|
dct |
|
) |
| |
Definition at line 17 of file genericValidation.py.
References update.
Referenced by SequenceTypes._ModuleSequenceType.copyAndExclude().
18 def __new__(cls, clsname, bases, dct):
19 for setname
in cls.sets:
20 if setname
not in dct: dct[setname] = set()
21 dct[setname] = set.union(dct[setname], *(getattr(base, setname)
for base
in bases
if hasattr(base, setname)))
23 for dictname
in cls.dicts:
24 if dictname
not in dct: dct[dictname] = {}
26 if not hasattr(base, dictname):
continue
27 newdict = getattr(base, dictname)
28 for key
in set(newdict) & set(dct[dictname]):
29 if newdict[key] != dct[dictname][key]:
30 raise ValueError(
"Inconsistent values of defaults[{}]: {}, {}".
format(key, newdict[key], dct[dictname][key]))
31 dct[dictname].
update(newdict)
33 for setname
in cls.sets:
35 if "remove"+setname
not in dct: dct[
"remove"+setname] = set()
36 dct[
"remove"+setname] = set.union(dct[
"remove"+setname], *(getattr(base,
"remove"+setname)
for base
in bases
if hasattr(base,
"remove"+setname)))
38 dct[setname] -= dct[
"remove"+setname]
40 return super(ValidationMetaClass, cls).
__new__(cls, clsname, bases, dct)