Using Prior Versions of Constants¶
By default, astropy.units
are initialized upon first import to use
the current versions of astropy.constants
. For units to initialize
properly to a prior version of constants, the constants versions must
be set before the first import of astropy.units
or astropy.constants
.
This is accomplished using ScienceState
classes
in the top-level package. Setting the prior versions at the start of a Python
session will allow consistent units.
Example¶
To initialize units to a prior version of constants:
>>> import astropy
>>> astropy.physical_constants.set('codata2010')
<ScienceState physical_constants: 'codata2010'>
>>> astropy.astronomical_constants.set('iau2012')
<ScienceState astronomical_constants: 'iau2012'>
>>> import astropy.units as u
>>> import astropy.constants as const
>>> (const.M_sun / u.M_sun).to(u.dimensionless_unscaled) - 1
<Quantity 0.>
>>> print(const.M_sun)
Name = Solar mass
Value = 1.9891e+30
Uncertainty = 5e+25
Unit = kg
Reference = Allen's Astrophysical Quantities 4th Ed.
If astropy.units
has already been imported, a RuntimeError
is
raised.