def select_read(self, timeout=None):
<EOL>if len(self._decrypted_bytes) > <NUM_LIT:0>:<EOL><INDENT>return True<EOL><DEDENT>read_ready, _, _ = select.select([self._socket], [], [], timeout)<EOL>return len(read_ready) > <NUM_LIT:0><EOL>
Blocks until the socket is ready to be read from, or the timeout is hit

:param timeout:
    A float - the period of time to wait for data to be read. None for
    no time limit.

:return:
    A boolean - if data is ready to be read. Will only be False if
    timeout is not None.