docs: def load_etext(etextno, refresh_cache=False, mirror=None, prefer_ascii=False):
      """Returns a unicode representation of the full body of a Project Gutenberg
      text. After making an initial remote call to Project Gutenberg's servers,
      the text is persisted locally.
  
      """
      etextno = validate_etextno(etextno)
      cached = os.path.join(_TEXT_CACHE, '{}.txt.gz'.format(etextno))
  
      if refresh_cache:
          remove(cached)
      if not os.path.exists(cached):
          makedirs(os.path.dirname(cached))
          download_uri = _format_download_uri(etextno, mirror, prefer_ascii)
          response = requests.get(download_uri)
          # Ensure proper UTF-8 saving. There might be instances of ebooks or
          # mirrors which advertise a broken encoding, and this will break
          # downstream usages. For example, #55517 from aleph.gutenberg.org:
          #
          # from gutenberg.acquire import load_etext
          # print(load_etext(55517, refresh_cache=True)[0:1000])
          #
          # response.encoding will be 'ISO-8859-1' while the file is UTF-8
          if response.encoding != response.apparent_encoding:
              response.encoding = response.apparent_encoding
          text = response.text
          with closing(gzip.open(cached, 'w')) as cache:
              cache.write(text.encode('utf-8'))
  
      with closing(gzip.open(cached, 'r')) as cache:
          text = cache.read().decode('utf-8')
      return text