class_docstr: Specialise :class:`cartopy.io.Downloader` to download the zipped
  Natural Earth shapefiles and extract them to the defined location
  (typically user configurable).
  
  The keys which should be passed through when using the ``format_dict``
  are typically ``category``, ``resolution`` and ``name``.
class_docstr_tok: ["Specialise",":","class",":","`","cartopy.io.Downloader","`","to","download","the","zipped","Natural","Earth","shapefiles","and","extract","them","to","the","defined","location","(","typically","user","configurable",")",".","The","keys","which","should","be","passed","through","when","using","the","``","format_dict","``","are","typically","``","category","``",",","``","resolution","``","and","``","name","``","."]
docstr: Return a generator of the filenames to be found in the downloaded
  natural earth zip file.
code: def zip_file_contents(self, format_dict):
      """
      Return a generator of the filenames to be found in the downloaded
      natural earth zip file.
  
      """
      for ext in [".shp", ".dbf", ".shx", ".prj", ".cpg"]:
          yield (
              "ne_{resolution}_{name}"
              "{extension}".format(extension=ext, **format_dict)
          )
  
imports: import io
  import itertools
  from pathlib import Path
  from urllib.error import HTTPError
  import shapefile
  import shapely.geometry
  from cartopy import config
  from cartopy.io import Downloader
label_desc: Use image node_id 2 for calling the NEShpDownloader obj's underlying member method code with example usage: obj.zip_file_contents(format_dict) without return types