code: def _apply_over_vars_with_dim(func, self, dim=None, **kwargs):
      '''wrapper for datasets'''
  
      ds = type(self)(coords=self.coords, attrs=self.attrs)
  
      for name, var in self.data_vars.items():
          if dim in var.dims:
              ds[name] = func(var, dim=dim, **kwargs)
          else:
              ds[name] = var
  
      return df _apply_over_vars_with_dim(func, self, dim=None, **kwargs):
      '''wrapper for datasets'''
  
      ds = type(self)(coords=self.coords, attrs=self.attrs)
  
      for name, var in self.data_vars.items():
          if dim in var.dims:
              ds[name] = func(var, dim=dim, **kwargs)
          else:
              ds[name] = var
  
      return ds
docs: wrapper for datasets