code: def convert_grid_units(array, grid_arcsec, units, kpc_per_arcsec):
      
      if units in 'pixels':
          return array.grid_arcsec_to_grid_pixels(grid_arcsec=grid_arcsec)
      elif units in 'arcsec' or kpc_per_arcsec is None:
          return grid_arcsec
      elif units in 'kpc':
          return grid_arcsec * kpc_per_arcsec
      else:
          raise exc.PlottingException('The units supplied to the plotter are not a valid string (must be pixels | '
                                       'arcsec | kpc)')
docs: Convert the grid from its input units (arc-seconds) to the input unit (e.g. retain arc-seconds) or convert to \
      another set of units (pixels or kilo parsecs).
  
      Parameters
      -----------
      array : data.array.scaled_array.ScaledArray
          The 2D array of data which is plotted, the shape of which is used for converting the grid to units of pixels.
      grid_arcsec : ndarray or data.array.grids.RegularGrid
          The (y,x) coordinates of the grid in arc-seconds, in an array of shape (total_coordinates, 2).
      units : str
          The units of the y / x axis of the plots, in arc-seconds ('arcsec') or kiloparsecs ('kpc').
      kpc_per_arcsec : float
          The conversion factor between arc-seconds and kiloparsecs, required to plot the units in kpc.