def METHOD_NAME(self, *, cache=True, show_progress=True, table_path=None):
    """
    Download (and optionally cache) the `Exoplanet Orbit Database planets
    table <http://www.exoplanets.org>`_.
    Parameters
    ----------
    cache : bool (optional)
        Cache exoplanet table to local astropy cache? Default is `True`.
    show_progress : bool (optional)
        Show progress of exoplanet table download (if no cached copy is
        available). Default is `True`.
    table_path : str (optional)
        Path to a local table file. Default `None` will trigger a
        download of the table from the internet.
    Returns
    -------
    table : `~astropy.table.QTable`
        Table of exoplanet properties.
    """
    if self._table is None:
        if table_path is None:
            table_path = download_file(EXOPLANETS_CSV_URL, cache=cache,
                                       show_progress=show_progress)
        exoplanets_table = ascii.read(table_path, fast_reader=False)
        # Store column of lowercase names for indexing:
        lowercase_names = [i.lower().replace(" ", "")
                           for i in exoplanets_table['NAME'].data]
        exoplanets_table['NAME_LOWERCASE'] = lowercase_names
        exoplanets_table.add_index('NAME_LOWERCASE')
        # Create sky coordinate mixin column
        exoplanets_table['sky_coord'] = SkyCoord(ra=exoplanets_table['RA'] * u.hourangle,
                                                 dec=exoplanets_table['DEC'] * u.deg)
        # Assign units to columns where possible
        for col in exoplanets_table.colnames:
            if col in self.param_units:
                # Check that unit is implemented in this version of astropy
                try:
                    exoplanets_table[col].unit = u.Unit(self.param_units[col])
                except ValueError:
                    print(f"WARNING: Unit {self.param_units[col]} not recognised")
        # Masked quantities are not supported in older astropy, warnings are raised for <v5.0
        with warnings.catch_warnings():
            warnings.filterwarnings('ignore', message='dropping mask in Quantity column',
                                    category=UserWarning)
            self._table = QTable(exoplanets_table)
    return self._table