docs: def pad_with_fill_value(self, pad_widths=None, fill_value=dtypes.NA,
                              **pad_widths_kwargs):
          """
          Return a new Variable with paddings.
  
          Parameters
          ----------
          pad_width: Mapping of the form {dim: (before, after)}
              Number of values padded to the edges of each dimension.
          **pad_widths_kwargs:
              Keyword argument for pad_widths
          """
          pad_widths = either_dict_or_kwargs(pad_widths, pad_widths_kwargs,
                                             'pad')
  
          if fill_value is dtypes.NA:
              dtype, fill_value = dtypes.maybe_promote(self.dtype)
          else:
              dtype = self.dtype
  
          if isinstance(self.data, dask_array_type):
              array = self.data
  
              # Dask does not yet support pad. We manually implement it.
              # https://github.com/dask/dask/issues/1926
              for d, pad in pad_widths.items():
                  axis = self.get_axis_num(d)
                  before_shape = list(array.shape)
                  before_shape[axis] = pad[0]
                  before_chunks = list(array.chunks)
                  before_chunks[axis] = (pad[0], )
                  after_shape = list(array.shape)
                  after_shape[axis] = pad[1]
                  after_chunks = list(array.chunks)
                  after_chunks[axis] = (pad[1], )
  
                  arrays = []
                  if pad[0] > 0:
                      arrays.append(da.full(before_shape, fill_value,
                                            dtype=dtype, chunks=before_chunks))
                  arrays.append(array)
                  if pad[1] > 0:
                      arrays.append(da.full(after_shape, fill_value,
                                            dtype=dtype, chunks=after_chunks))
                  if len(arrays) > 1:
                      array = da.concatenate(arrays, axis=axis)
          else:
              pads = [(0, 0) if d not in pad_widths else pad_widths[d]
                      for d in self.dims]
              array = np.pad(self.data.astype(dtype, copy=False), pads,
                             mode='constant', constant_values=fill_value)
          return type(self)(self.dims, array)