code: async def readchunk(self) -> Tuple[bytes, bool]:
          
          while True:
              if self._exception is not None:
                  raise self._exception
  
              while self._http_chunk_splits:
                  pos = self._http_chunk_splits.pop(0)
                  if pos == self._cursor:
                      return (b"", True)
                  if pos > self._cursor:
                      return (self._read_nowait(pos-self._cursor), True)
                  internal_logger.warning('Skipping HTTP chunk end due to data '
                                          'consumption beyond chunk boundary')
  
              if self._buffer:
                  return (self._read_nowait_chunk(-1), False)
                  # return (self._read_nowait(-1), False)
  
              if self._eof:
                  # Special case for signifying EOF.
                  # (b'', True) is not a final return value actually.
                  return (b'', False)
  
              await self._wait('readchunk')
docs: Returns a tuple of (data, end_of_http_chunk). When chunked transfer
          encoding is used, end_of_http_chunk is a boolean indicating if the end
          of the data corresponds to the end of a HTTP chunk , otherwise it is
          always False.