class_docstr: Specialise :class:`cartopy.io.Downloader` to download the zipped
  GSHHS shapefiles and extract them to the defined location.
  
  The keys which should be passed through when using the ``format_dict``
  are ``scale`` (a single character indicating the resolution) and ``level``
  (a number indicating the type of feature).
class_docstr_tok: ["Specialise",":","class",":","`","cartopy.io.Downloader","`","to","download","the","zipped","GSHHS","shapefiles","and","extract","them","to","the","defined","location",".","The","keys","which","should","be","passed","through","when","using","the","``","format_dict","``","are","``","scale","``","(","a","single","character","indicating","the","resolution",")","and","``","level","``","(","a","number","indicating","the","type","of","feature",")","."]
code: def acquire_all_resources(self, format_dict):
      from zipfile import ZipFile
  
      # Download archive.
      url = self.url(format_dict)
      try:
          shapefile_online = self._urlopen(url)
      # error handling:
      except HTTPError:
          try:
              """
              case if GSHHS has had an update
              without changing the naming convention
              """
              url = (
                  f"https://www.ngdc.noaa.gov/mgg/shorelines/data/"
                  f"gshhs/oldversions/version{self.gshhs_version}/"
                  f"gshhg-shp-{self.gshhs_version}.zip"
              )
              shapefile_online = self._urlopen(url)
          except HTTPError:
              """
              case if GSHHS has had an update
              with changing the naming convention
              """
              url = (
                  "https://www.ngdc.noaa.gov/mgg/shorelines/data/"
                  "gshhs/oldversions/version2.3.6/"
                  "gshhg-shp-2.3.6.zip"
              )
              shapefile_online = self._urlopen(url)
      zfh = ZipFile(io.BytesIO(shapefile_online.read()), "r")
      shapefile_online.close()
  
      # Iterate through all scales and levels and extract relevant files.
      modified_format_dict = dict(format_dict)
      scales = ("c", "l", "i", "h", "f")
      levels = (1, 2, 3, 4, 5, 6)
      for scale, level in itertools.product(scales, levels):
          # the combination c4 does not occur for some reason
          if scale == "c" and level == 4:
              continue
          modified_format_dict.update({"scale": scale, "level": level})
          target_path = self.target_path(modified_format_dict)
          target_dir = target_path.parent
          target_dir.mkdir(parents=True, exist_ok=True)
  
          for member_path in self.zip_file_contents(
              modified_format_dict
          ):
              member = zfh.getinfo(member_path.replace("\\", "/"))
              with open(
                  target_path.with_suffix(Path(member_path).suffix),
                  "wb",
              ) as fh:
                  fh.write(zfh.open(member).read())
  
      zfh.close()
  
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 3 for calling the GSHHSShpDownloader obj's underlying member method code with example usage: obj.acquire_all_resources(format_dict) without return types