78 def __new__( self, name, bases, dct ):
79
80 try:
81 sv = dct[ 'StoredValue' ]
82 if sv is not None and not _isCompatible( dct[ 'allowedTypes' ], sv ):
83 raise TypeError(
84 'type of StoredValue (%s) not in allowedTypes (%s)' %
85 (
type(sv).__name__,dct[
'allowedTypes' ])
86 )
87 except KeyError:
88 pass
89
90
91 try:
92 sv = dct[ 'StoredValue' ]
93 if sv is not None and dct[ 'allowedValues' ] and sv not in dct[ 'allowedValues' ]:
94 raise TypeError(
95 'value of StoredValue (%s) not in allowedValues (%s)' %
96 (str(sv),dct[ 'allowedValues' ])
97 )
98 except KeyError:
99 pass
100
101 return type.__new__( self, name, bases, dct )
102
103
104@functools.total_ordering