code: def _set(self, obj, value):
          
          if value not in self.lenum:
              raise ValueError("Not a valid value: %s" % value)
  
          type(obj).__dict__[self.propname].__set__(obj, value)
docs: Internal method to set state, called by meth:`StateTransition.__call__`