What’s New in Astropy 7.0?#
Overview#
Astropy 7.0 is a major release that adds significant new functionality since the 6.1 release.
In particular, this release includes:
In addition to these major changes, Astropy v7.0 includes a large number of smaller improvements and bug fixes, which are described in the Full Changelog. By the numbers:
X issues have been closed since v6.0
X pull requests have been merged since v6.0
X distinct people have contributed code
Quantity.to_string
supports formatter
for formatting#
The to_string()
method now supports a formatter
parameter.
This feature supports both Python’s format specification mini-language via format strings and
custom formatting through callables. This enables users to have explicit and consistent control
over the numerical representation of quantities, accommodating a wide range of formatting needs.
Previously, the method primarily relied on the precision
parameter for format control, which dictated
the number of significant digits and did not provide much freedom in the latex format.
Example:
>>> from astropy import units as u
>>> q = u.Quantity(123.456, u.m)
>>> custom_format = lambda x: f"\\approx {float(x):.1f}"
>>> q.to_string(formatter=custom_format, format='latex')
'$\\approx 123.5 \\; \\mathrm{m}$'
>>> q.to_string(formatter='.3e', format='latex')
'$1.235 \\times 10^{2} \\; \\mathrm{m}$'
>>> q.to_string(precision=3, format='latex')
'$123 \\; \\mathrm{m}$'
Change default type for meta
attribute to dict
and update ECSV writer#
We have changed the default type for the meta
attribute in Table
and Column
(and subclasses) from OrderedDict
to dict
. Since Python 3.8 the dict
class
is ordered by default, so there is no need to use OrderedDict
.
In addition, the ECSV table writer in ASCII Tables (astropy.io.ascii) was updated to consistently
write the meta
attribute as an ordered map using the !!omap
tag. This
convention conforms to the ECSV specification and is supported by
existing ECSV readers. Previously the meta
attribute could be written as an ordinary
YAML map, which is not guaranteed to preserve the order of the keys.
Full change log#
To see a detailed list of all changes in version v7.0, including changes in API, please see the Full Changelog.