Source code for typedpy.fields.sized

from typedpy.commons import wrap_val
from .fields import Field


[docs]class Sized(Field): """ The length of the value is limited to be at most the maximum given. The value can be any iterable. Arguments: maxlen(`int`): maximum length """ def __init__(self, *args, maxlen, **kwargs): self.maxlen = maxlen super().__init__(*args, **kwargs) def __set__(self, instance, value): if len(value) > self.maxlen: raise ValueError( f"{self._name}: Got {wrap_val(value)}; Expected a length up to {self.maxlen}" ) super().__set__(instance, value)