<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:

def connect(self, dests=[], name=None, id='', props={}):
        '''Connect this port to other DataPorts.

        After the connection has been made, a delayed reparse of the
        connections for this and the destination port will be triggered.

        @param dests A list of the destination Port objects. Must be provided.
        @param name The name of the connection. If None, a suitable default
                    will be created based on the names of the two ports.
        @param id The ID of this connection. If None, one will be generated by
               the RTC implementation.
        @param props Properties of the connection. Suitable defaults will be
                     set for required values if they are not already present.
        @raises WrongPortTypeError

        '''
        # Data ports can only connect to opposite data ports
        with self._mutex:
            new_props = props.copy()
            ptypes = [d.porttype for d in dests]
            if self.porttype == 'DataInPort':
                if 'DataOutPort' not in ptypes:
                    raise exceptions.WrongPortTypeError
            if self.porttype == 'DataOutPort':
                if 'DataInPort' not in ptypes:
                    raise exceptions.WrongPortTypeError
            if 'dataport.dataflow_type' not in new_props:
                new_props['dataport.dataflow_type'] = 'push'
            if 'dataport.interface_type' not in new_props:
                new_props['dataport.interface_type'] = 'corba_cdr'
            if 'dataport.subscription_type' not in new_props:
                new_props['dataport.subscription_type'] = 'new'
            if 'dataport.data_type' not in new_props:
                new_props['dataport.data_type'] = \
                        self.properties['dataport.data_type']
            super(DataPort, self).connect(dests=dests, name=name, id=id,
                                          props=new_props)