code: def connect(self, target, acceptor, wrapper=None):
          
  
          if not self.running:
              raise ValueError("TendrilManager not running")
  
          # Check the target address
          fam = utils.addr_info(target)
  
          # Verify that we're in the right family
          if self.addr_family != fam:
              raise ValueError("address family mismatch")
docs: Initiate a connection from the tendril manager's endpoint.
          Once the connection is completed, a Tendril object will be
          created and passed to the given acceptor.
  
          :param target: The target of the connection attempt.
          :param acceptor: A callable which will initialize the state of
                           the new Tendril object.
          :param wrapper: A callable taking, as its first argument, a
                          socket.socket object.  The callable must
                          return a valid proxy for the socket.socket
                          object, which will subsequently be used to
                          communicate on the connection.
  
          For passing extra arguments to the acceptor or the wrapper,
          see the ``TendrilPartial`` class; for chaining together
          multiple wrappers, see the ``WrapperChain`` class.