class_docstr: Represents a resource, that can be configured easily, which knows
  how to acquire itself (perhaps via HTTP).
  
  The key interface method is :meth:`path` - typically *all* external calls
  will be made to that method. To get hold of an appropriate
  :class:`Downloader` instance the :func:`Downloader.from_config` static
  method should be considered.
  
  Parameters
  ----------
  url_template
      The template of the full URL representing this
      resource.
  
  target_path_template
      The template of the full path to the file
      that this Downloader represents. Typically the path will be a
      subdirectory of ``config['data_dir']``, but this is not a strict
      requirement. If the file does not exist when calling
      :meth:`Downloader.path` it will be downloaded to this location.
  
  pre_downloaded_path_template: optional
      The template of a full path of a file which has been downloaded
      outside of this Downloader which should be used as the file that
      this resource represents. If the file does not exist when
      :meth:`Downloader.path` is called it will not be downloaded
      to this location (unlike the ``target_path_template`` argument).
  
  Note
  ----
      All ``*_template`` arguments should be formattable using the
      standard :meth:`string.format` rules. The formatting itself
      is not done until a call to a subsequent method (such as
      :meth:`Downloader.path`).
docstr: The path on disk of the file that this resource represents, if it does
  not exist, then no further action will be taken with this path, and all
  further processing will be done using :meth:`target_path` instead.
  
  Parameters
  ----------
  format_dict
      The dictionary which is used to replace certain
      template variables. Subclasses should document which keys are
      expected as a minimum in their ``FORMAT_KEYS`` class attribute.
docstr_tok: ["The","path","on","disk","of","the","file","that","this","resource","represents",",","if","it","does","not","exist",",","then","no","further","action","will","be","taken","with","this","path",",","and","all","further","processing","will","be","done","using",":","meth",":","`","target_path","`","instead",".","Parameters","--","--","--","--","--","format_dict","The","dictionary","which","is","used","to","replace","certain","template","variables",".","Subclasses","should","document","which","keys","are","expected","as","a","minimum","in","their","``","FORMAT_KEYS","``","class","attribute","."]
code: def pre_downloaded_path(self, format_dict):
      """
      The path on disk of the file that this resource represents, if it does
      not exist, then no further action will be taken with this path, and all
      further processing will be done using :meth:`target_path` instead.
  
      Parameters
      ----------
      format_dict
          The dictionary which is used to replace certain
          template variables. Subclasses should document which keys are
          expected as a minimum in their ``FORMAT_KEYS`` class attribute.
  
      """
      p = self._formatter.format(
          self.pre_downloaded_path_template, **format_dict
      )
      return None if p == "" else Path(p)
  
imports: import collections
  from pathlib import Path
  import string
  from urllib.request import urlopen
  import warnings
  from cartopy import config
label_desc: Use image node_id 4 for calling the Downloader obj's underlying member method code with example usage: obj.pre_downloaded_path(format_dict) and returns: unknown