docs: def get_data_port(self, state_id, port_id):
          """Searches for a data port
  
          The data port specified by the state id and data port id is searched in the state itself and in its children.
  
          :param str state_id: The id of the state the port is in
          :param int port_id:  The id of the port
          :return: The searched port or None if it is not found
          """
          if state_id == self.state_id:
              return self.get_data_port_by_id(port_id)
          for child_state_id, child_state in self.states.items():
              if state_id != child_state_id:
                  continue
              port = child_state.get_data_port_by_id(port_id)
              if port:
                  return port
          return None