docs: def _load_resources(self, abs_path=False):
          """Copy all of the Datafile entries into the package"""
          from metapack.doc import MetapackDoc
  
          assert type(self.doc) == MetapackDoc
  
          for r in self.datafiles:
  
              # Special handling for SQL is probably a really bad idea. It should be handled as
              # a Rowgenerator.
              if r.term_is('root.sql'):
  
                  if not r.value:
                      self.warn("No value for SQL URL for {} ".format(r.term))
                      continue
  
                  try:
                      self._load_resource(r, abs_path)
                  except Exception as e:
                      if r.props.get('ignoreerrors'):
                          self.warn(f"Ignoring errors for {r.name}: {str(e)}")
                          pass
                      else:
                          raise e
  
              else:
  
                  if not r.url:
                      self.warn("No value for URL for {} ".format(r.term))
                      continue
  
                  try:
                      if self._resource.exists(r):
                          self.prt("Resource '{}' exists, skipping".format(r.name))
                      continue
                  except AttributeError:
                      pass
  
                  self.prt("Reading resource {} from {} ".format(r.name, r.resolved_url))
  
                  try:
                      if not r.headers:
                          raise PackageError("Resource {} does not have header. Have schemas been generated?"
                                              .format(r.name))
                  except AttributeError:
                      raise PackageError("Resource '{}' of type {} does not have a headers property"
                                         .format(r.url, type(r)))
  
                  try:
                      self._load_resource(r, abs_path)
                  except Exception as e:
                      if r.props.get('ignoreerrors'):
                          self.warn(f"Ignoring errors for {r.name}: {str(e)}")
                          pass
                      else:
                          raise e