#NEWLINE# def read( self , size = None ) : #NEWLINE# #INDENT# '\n        Read a specified number of bytes from the key.\n\n        Note read() and line iteration (`for line in self: ...`) each have their\n        own file position, so they are independent. Doing a `read` will not affect\n        the line iteration, and vice versa.\n\n        ' #NEWLINE# if ( ( not size ) or ( self < 0 ) ) : #NEWLINE# #INDENT# size = 0 #NEWLINE# #UNINDENT# return self . read_key . read ( size )