""" Provide a consistent set of constants to use through CLMM """
from enum import Enum
import astropy.constants as astropyconst
import astropy.units as u


class Constants(Enum):
    """ A set of constants for consistency throughout the
    code and dependencies. """

    CLIGHT = 299792458.0
    """ Speed of light (m/s)

    Source: CODATA 2018
    """

    CLIGHT_KMS = CLIGHT*1.0e-3
    """ Speed of light (km/s)

    Source: CODATA 2018
    """

    GNEWT = 6.67430e-11
    """ Newton's constant (m^3/kg/s^2)

    Source: CODATA 2018
    """

    PC_TO_METER = 3.085677581491367e16
    """ parsec to meter (m)

    Source: IAU 2015
    """

    GNEWT_SOLAR_MASS = 1.3271244e20
    """ G x Solar mass (m^3/s^2)

    Source: IAU 2015
    """

    SOLAR_MASS = GNEWT_SOLAR_MASS/GNEWT
    """ Solar mass (kg)

    Source: IAU 2015/CODATA 2018
    """
