code: def get_chunk(self):
          
          while not self._eof_reached:
              read = self.input_stream.read(self.chunk_size - len(self._partial_chunk))
              if len(read) == 0:
                  self._eof_reached = True
              self._partial_chunk += read
              if len(self._partial_chunk) == self.chunk_size or self._eof_reached:
                  chunk = self._partial_chunk
                  self._partial_chunk = ""
                  return chunk
docs: Return complete chunks or None if EOF reached