|
@@ -3,9 +3,10 @@
|
|
|
|
|
|
class AttributeDescriptor(object):
|
|
|
|
|
|
- def __init__(self, name, types=None):
|
|
|
+ def __init__(self, name, types=None, min=None):
|
|
|
self._name = name
|
|
|
self._types = types
|
|
|
+ self._min = min
|
|
|
|
|
|
def __get__(self, instance, owner):
|
|
|
return getattr(instance, self._name)
|
|
@@ -17,4 +18,9 @@ class AttributeDescriptor(object):
|
|
|
type(value).__name__,
|
|
|
value,
|
|
|
))
|
|
|
+ if self._min and not self._min <= value:
|
|
|
+ raise ValueError('expected value >= {!r}, {!r} given'.format(
|
|
|
+ self._min,
|
|
|
+ value,
|
|
|
+ ))
|
|
|
setattr(instance, self._name, value)
|