code: def are_metadata_file_based(layer):
          
  
          try:
              provider_type = str(layer.providerType())
          except AttributeError:
              raise UnsupportedProviderError(
                  'Could not determine type for provider: %s' %
                  layer.__class__.__name__)
  
          provider_dict = {
              'ogr': True,
              'gdal': True,
              'gpx': False,
              'wms': False,
              'spatialite': False,
              'delimitedtext': False,
              'postgres': False}
          file_based_metadata = False
          if provider_type in provider_dict:
              file_based_metadata = provider_dict[provider_type]
          return file_based_metadata
docs: Check if metadata should be read/written to file or our metadata db.
  
          Determine which metadata lookup system to use (file base or cache db)
          based on the layer's provider type. True indicates we should use the
          datasource as a file and look for a metadata file, False and we look
          in the metadata db.
  
          :param layer: The layer which want to know how the metadata are stored.
          :type layer: QgsMapLayer
  
          :returns: True if metadata are stored in a file next to the dataset,
              else False if the dataset is remove e.g. a database.
          :rtype: bool
  
          :raises: UnsupportedProviderError