docs: def checkIfRemoteIsNewer(self, remote, local, headers):
          """
          Given a remote file location, and the corresponding local file
          this will check the datetime stamp on the files to see if the remote
          one is newer.
          This is a convenience method to be used so that we don't have to
          re-fetch files that we already have saved locally
          :param remote: URL of file to fetch from remote server
          :param local: pathname to save file to locally
          :return: True if the remote file is newer and should be downloaded
  
          """
          LOG.info(
              "Checking if remote file \n(%s)\n is newer than local \n(%s)",
              remote, local)
  
          # check if local file exists
          # if no local file, then remote is newer
          if os.path.exists(local):
              LOG.info("Local File exists as %s", local)
          else:
              LOG.info("Local File does NOT exist as %s", local)
              return True
  
          # get remote file details
          if headers is None:
              headers = self._get_default_request_headers()
  
          req = urllib.request.Request(remote, headers=headers)
          LOG.info("Request header: %s", str(req.header_items()))
  
          response = urllib.request.urlopen(req)
  
          try:
              resp_headers = response.info()
              size = resp_headers.get('Content-Length')
              last_modified = resp_headers.get('Last-Modified')
          except urllib.error.URLError as err:
              resp_headers = None
              size = 0
              last_modified = None
              LOG.error(err)
  
          if size is not None and size != '':
              size = int(size)
          else:
              size = 0
  
          fstat = os.stat(local)
          LOG.info(
              "Local File date: %s",
              datetime.utcfromtimestamp(fstat[ST_CTIME]))
  
          if last_modified is not None:
              # Thu, 07 Aug 2008 16:20:19 GMT
              dt_obj = datetime.strptime(
                  last_modified, "%a, %d %b %Y %H:%M:%S %Z")
              # get local file details
  
              # check date on local vs remote file
              if dt_obj > datetime.utcfromtimestamp(fstat[ST_CTIME]):
                  # check if file size is different
                  if fstat[ST_SIZE] < size:
                      LOG.info("New Remote File exists")
                      return True
                  if fstat[ST_SIZE] > size:
                      LOG.warning("New Remote File exists but it is SMALLER")
                      return True
                  # filesize is a fairly imperfect metric here
                  LOG.info("New Remote fFle has same filesize--will not download")
          elif fstat[ST_SIZE] != size:
              LOG.info(
                  "Remote File is %i  \t Local File is %i", size, fstat[ST_SIZE])
              return True
  
          return False