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 generic, standard, NEShpDownloader instance.
  
  Typically, a user will not need to call this staticmethod.
  
  To find the path template of the NEShpDownloader:
  
      >>> ne_dnldr = NEShpDownloader.default_downloader()
      >>> print(ne_dnldr.target_path_template)
      {config[data_dir]}/shapefiles/natural_earth/{category}/ne_{resolution}_{name}.shp
code: def default_downloader():
      """
          Return a generic, standard, NEShpDownloader instance.
  
          Typically, a user will not need to call this staticmethod.
  
          To find the path template of the NEShpDownloader:
  
              >>> ne_dnldr = NEShpDownloader.default_downloader()
              >>> print(ne_dnldr.target_path_template)
              {config[data_dir]}/shapefiles/natural_earth/{category}/\
  ne_{resolution}_{name}.shp
  
          """
      default_spec = (
          "shapefiles",
          "natural_earth",
          "{category}",
          "ne_{resolution}_{name}.shp",
      )
      ne_path_template = str(
          Path("{config[data_dir]}").joinpath(*default_spec)
      )
      pre_path_template = str(
          Path("{config[pre_existing_data_dir]}").joinpath(
              *default_spec
          )
      )
      return NEShpDownloader(
          target_path_template=ne_path_template,
          pre_downloaded_path_template=pre_path_template,
      )
  
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 4 for calling the NEShpDownloader obj's underlying member method code with example usage: obj.default_downloader() and returns: NEShpDownloader