parameters: (src, dst, length=None)
return_statement: return
docstring: Copy length bytes from fileobj src to fileobj dst.
         If length is None, copy the entire content.
docstring_summary: Copy length bytes from fileobj src to fileobj dst.
         If length is None, copy the entire content.
docstring_tokens: Copy length bytes from fileobj src to fileobj dst . If length is None copy the entire content .
function: def copyfileobj(src, dst, length=None):
      """Copy length bytes from fileobj src to fileobj dst.
         If length is None, copy the entire content.
      """
      if length == 0:
          return
      if length is None:
          while True:
              buf = src.read(16*1024)
              if not buf:
                  break
              dst.write(buf)
          return
  
      BUFSIZE = 16 * 1024
      blocks, remainder = divmod(length, BUFSIZE)
      for b in range(blocks):
          buf = src.read(BUFSIZE)
          if len(buf) < BUFSIZE:
              raise IOError("end of file reached")
          dst.write(buf)
  
      if remainder != 0:
          buf = src.read(remainder)
          if len(buf) < remainder:
              raise IOError("end of file reached")
          dst.write(buf)
      return
function_tokens: def copyfileobj ( src , dst , length = None ) : if length == 0 : return if length is None : while True : buf = src . read ( 16 * 1024 ) if not buf : break dst . write ( buf ) return BUFSIZE = 16 * 1024 blocks , remainder = divmod ( length , BUFSIZE ) for b in range ( blocks ) : buf = src . read ( BUFSIZE ) if len ( buf ) < BUFSIZE : raise IOError ( "end of file reached" ) dst . write ( buf ) if remainder != 0 : buf = src . read ( remainder ) if len ( buf ) < remainder : raise IOError ( "end of file reached" ) dst . write ( buf ) return