(self, list, timeout=None)
return (-1, None, text)
Read until one from a list of a regular expressions matches.

        The first argument is a list of regular expressions, either
        compiled (re.Pattern instances) or uncompiled (strings).
        The optional second argument is a timeout, in seconds; default
        is no timeout.

        Return a tuple of three items: the index in the list of the
        first regular expression that matches; the re.Match object
        returned; and the text read up till and including the match.

        If EOF is read and no text was read, raise EOFError.
        Otherwise, when nothing matches, return (-1, None, text) where
        text is the text received so far (may be the empty string if a
        timeout happened).

        If a regular expression ends with a greedy match (e.g. '.*')
        or if more than one expression can match the same input, the
        results are undeterministic, and may depend on the I/O timing.
Read until one from a list of a regular expressions matches.
Read until one from a list of a regular expressions matches .
def expect(self, list, timeout=None):
        """Read until one from a list of a regular expressions matches.

        The first argument is a list of regular expressions, either
        compiled (re.Pattern instances) or uncompiled (strings).
        The optional second argument is a timeout, in seconds; default
        is no timeout.

        Return a tuple of three items: the index in the list of the
        first regular expression that matches; the re.Match object
        returned; and the text read up till and including the match.

        If EOF is read and no text was read, raise EOFError.
        Otherwise, when nothing matches, return (-1, None, text) where
        text is the text received so far (may be the empty string if a
        timeout happened).

        If a regular expression ends with a greedy match (e.g. '.*')
        or if more than one expression can match the same input, the
        results are undeterministic, and may depend on the I/O timing.

        """
        re = None
        list = list[:]
        indices = range(len(list))
        for i in indices:
            if not hasattr(list[i], "search"):
                if not re: import re
                list[i] = re.compile(list[i])
        if timeout is not None:
            deadline = _time() + timeout
        with _TelnetSelector() as selector:
            selector.register(self, selectors.EVENT_READ)
            while not self.eof:
                self.process_rawq()
                for i in indices:
                    m = list[i].search(self.cookedq)
                    if m:
                        e = m.end()
                        text = self.cookedq[:e]
                        self.cookedq = self.cookedq[e:]
                        return (i, m, text)
                if timeout is not None:
                    ready = selector.select(timeout)
                    timeout = deadline - _time()
                    if not ready:
                        if timeout < 0:
                            break
                        else:
                            continue
                self.fill_rawq()
        text = self.read_very_lazy()
        if not text and self.eof:
            raise EOFError
        return (-1, None, text)
def expect ( self , list , timeout = None ) : re = None list = list [ : ] indices = range ( len ( list ) ) for i in indices : if not hasattr ( list [ i ] , "search" ) : if not re : import re list [ i ] = re . compile ( list [ i ] ) if timeout is not None : deadline = _time ( ) + timeout with _TelnetSelector ( ) as selector : selector . register ( self , selectors . EVENT_READ ) while not self . eof : self . process_rawq ( ) for i in indices : m = list [ i ] . search ( self . cookedq ) if m : e = m . end ( ) text = self . cookedq [ : e ] self . cookedq = self . cookedq [ e : ] return ( i , m , text ) if timeout is not None : ready = selector . select ( timeout ) timeout = deadline - _time ( ) if not ready : if timeout < 0 : break else : continue self . fill_rawq ( ) text = self . read_very_lazy ( ) if not text and self . eof : raise EOFError return ( - 1 , None , text )