docs: def check_data_port_connection(self, check_data_port):
          """Checks the connection validity of a data port
  
          The method is called by a child state to check the validity of a data port in case it is connected with data
          flows. The data port does not belong to 'self', but to one of self.states.
          If the data port is connected to a data flow, the method checks, whether these connect consistent data types
          of ports.
  
          :param rafcon.core.data_port.DataPort check_data_port: The port to check
          :return: valid, message
          """
          for data_flow in self.data_flows.values():
              # Check whether the data flow connects the given port
              from_port = self.get_data_port(data_flow.from_state, data_flow.from_key)
              to_port = self.get_data_port(data_flow.to_state, data_flow.to_key)
              if check_data_port is from_port or check_data_port is to_port:
                  # check if one of the data_types if type 'object'; in this case the data flow is always valid
                  if not (from_port.data_type is object or to_port.data_type is object):
                      if not type_inherits_of_type(from_port.data_type, to_port.data_type):
                          return False, "Connection of two non-compatible data types"
          return True, "valid"