##
11.10.1 Telnet Objects

`Telnet` instances have the following methods:

`read_until` (expected[, timeout])
  Read until a given string is encountered or until timeout.

  When no match is found, return whatever is available instead, possibly the empty string. Raise `EOFError` if the connection is closed and no cooked data is available.

`read_all` ()
  Read all data until EOF; block until connection closed.

`read_some` ()
  Read at least one byte of cooked data unless EOF is hit.

  Return `''` if EOF is hit. Block if no data is immediately available.

`read_very_eager` ()
  Read everything that's possible without blocking in I/O (eager).

  Raise `EOFError` if connection closed and no cooked data available. Return `''` if no cooked data available otherwise. Don't block unless in the midst of an IAC sequence.

`read_eager` ()
  Read readily available data.

  Raise `EOFError` if connection closed and no cooked data available. Return `''` if no cooked data available otherwise. Don't block unless in the midst of an IAC sequence.

`read_lazy` ()
  Process and return data that's already in the queues (lazy).

  Raise `EOFError` if connection closed and no data available. Return `''` if no cooked data available otherwise. Don't block unless in the midst of an IAC sequence.

`read_very_lazy` ()
  Return any data available in the cooked queue (very lazy).

  Raise `EOFError` if connection closed and no data available. Return `''` if no cooked data available otherwise. Don't block.

`open` (host[, port=0])
  Connect to a host.

  The optional second argument is the port number, which defaults to the standard telnet port (23).

  Don't try to reopen an already connected instance.

`msg` (msg[, *args])
  Print a debug message, when the debug level is > 0.

  If extra arguments are present, they are substituted in the message using the standard string formatting operator.

`set_debuglevel` (debuglevel)
  Set the debug level.

  The higher it is, the more debug output you get (on sys.stdout).

`close` ()
  Close the connection.

`get_socket` ()
  Return the socket object used internally.

`fileno` ()
  Return the fileno() of the socket object used internally.

`write` (buffer)
  Write a string to the socket, doubling any IAC characters.

  Can block if the connection is blocked. May raise socket.error if the connection is closed.

`interact` ()
  Interaction function, emulates a very dumb telnet client.

`mt_interact` ()
  Multithreaded version of `interact`.

`expect` (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.RegexObject` 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 match object returned; and the text read up till and including the match.

  If end of file is found 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.