code: def begin_operation(self, conn_or_internal_id, op_name, callback, timeout):
          
  
          data = {
              'id': conn_or_internal_id,
              'callback': callback,
              'operation_name': op_name
          }
  
          action = ConnectionAction('begin_operation', data, timeout=timeout, sync=False)
          self._actions.put(action)
docs: Begin an operation on a connection
  
          Args:
              conn_or_internal_id (string, int): Either an integer connection id or a string
                  internal_id
              op_name (string): The name of the operation that we are starting (stored in
                  the connection's microstate)
              callback (callable): Callback to call when this disconnection attempt either
                  succeeds or fails
              timeout (float): How long to allow this connection attempt to proceed
                  without timing it out (in seconds)