code: def transition(self, state, message=""):
          
          with self.changes_squashed:
              initial_state = self.state.value
              if self.state_set.transition_allowed(
                      initial_state=initial_state, target_state=state):
                  self.log.debug(
                      "%s: Transitioning from %s to %s",
                      self.mri, initial_state, state)
                  if state == ss.DISABLED:
                      alarm = Alarm.invalid("Disabled")
                  elif state == ss.FAULT:
                      alarm = Alarm.major(message)
                  else:
                      alarm = Alarm()
                  self.update_health(self, HealthInfo(alarm))
                  self.state.set_value(state)
                  self.state.set_alarm(alarm)
                  for child, writeable in self._children_writeable[state].items():
                      if isinstance(child, AttributeModel):
                          child.meta.set_writeable(writeable)
                      elif isinstance(child, MethodModel):
                          child.set_writeable(writeable)
              else:
                  raise TypeError("Cannot transition from %s to %s" %
                                  (initial_state, state))
docs: Change to a new state if the transition is allowed
  
          Args:
              state (str): State to transition to
              message (str): Message if the transition is to a fault state