Esempio n. 1
0
 def __setattr__(self, key, value):
     # Resolve Forward references before we begin the cast process
     # TODO: This seems like it would be a performance issue -- can we do something up front to make sure that all
     #       forward references are covered globally
     hint = self._field_for(key)
     super().__setattr__(
         key, cast(hint, value, getattr(self, '_coercion_allowed', None)) if hint else value)
Esempio n. 2
0
 def __setattr__(self, key, value):
     if key != 'v' or not self.set_v(value):
         hints = get_type_hints(type(self))
         super().__setattr__(
             key,
             cast(hints[key], value) if key in hints else value)
Esempio n. 3
0
 def append(self, item) -> None:
     v = cast(self._typ, item)
     if isinstance(v, list):
         super().extend(v)
     else:
         super().append(v)
Esempio n. 4
0
 def __setitem__(self, key, value):
     super().__setitem__(key, cast(self._typ, value))
Esempio n. 5
0
 def __setattr__(self, key, value):
     # Resolve Forward references before we begin the cast process
     hints = get_type_hints(type(self), getmodule(self).__dict__)
     super().__setattr__(
         key, cast(hints[key], value, getattr(self, '_coercion_allowed', None)) if key in hints else value)