Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Scheduled monthly dependency update for May #76

Closed
wants to merge 34 commits into from

Conversation

pyup-bot
Copy link
Collaborator

@pyup-bot pyup-bot commented May 1, 2024

Update astropy from 5.1.1 to 6.0.1.

Changelog

6.0.0

==========================

New Features
------------

astropy.config
^^^^^^^^^^^^^^

- The new ``ConfigNamespace.help()`` method provides a convenient way to get
information about configuration items. [13499]

astropy.coordinates
^^^^^^^^^^^^^^^^^^^

- Support has been added to create geodetic representations not just for existing ellipsoids
from ERFA, but also with explicitly provided values, by defining a subclass of
``BaseGeodeticRepresentation`` with the equatorial radius and flattening assigned to
``_equatorial_radius`` and ``_flattening`` attributes. [14763]

- Add ``BaseBodycentricRepresentation``, a new spheroidal representation for bodycentric
latitudes and longitudes. [14851]

- Support Numpy broadcasting over frame data and attributes. [15121]

astropy.cosmology
^^^^^^^^^^^^^^^^^

- Registered a ``latex`` writer for exporting a Cosmology object to a LaTex table. [14701]

- Added argument ``rename`` to Cosmology's I/O, allowing for input and output symbols to
be renamed. [14780]

- All non-abstract Cosmology subclasses are now automatically registered to work with
Astropy's YAML serialization. [14979]

- Cosmology I/O now auto-identifies the '.tex' suffix with the 'ascii.latex' format. [15088]

- The ``Cosmology`` class now has a new property to access the parameters of the
cosmology: ``.parameters``. This property return a read-only dictionary of all the
non-derived parameter values on the cosmology object. When accessed from the class (not
an instance) the dictionary contains ``Parameter`` instances, not the values. [15168]

- The field ``default`` has been added to ``Parameter``. This can be used to introspect
the default value of a parameter on a cosmology class e.g. ``LambdaCDM.H0.default``. [15400]

astropy.io.fits
^^^^^^^^^^^^^^^

- Add new option ``decompress_in_memory`` to ``fits.open``, to decompress the
whole file in memory at once, instead of decompressing the file progressively
as data is needed.  Default behavior is better for memory usage but sometimes
slow, especially for files with many small HDUs. [15501]

astropy.io.votable
^^^^^^^^^^^^^^^^^^

- Add support for Parquet serialization of VOTables. Writing of this
serialization is available with using the new ``'votable.parquet'`` format. [15281]

- Added MIVOT feature through the ``MivotBlock`` class
that allows model annotations reading and writing in VOTable. [15390]

astropy.modeling
^^^^^^^^^^^^^^^^

- Added a ``GeneralSersic2D`` model that can have "boxy" or "disky"
isophotes. [15545]

astropy.nddata
^^^^^^^^^^^^^^

- A more flexible and/or compact string representation is now available for
``NDData`` objects which visually indicates masked entries, and provides for
better for dask array support. [14438]

astropy.table
^^^^^^^^^^^^^

- The new ``Row.get()`` method, analogous to ``dict.get()``, returns the value of
the specified column from the row if the column present, otherwise it returns a
fallback value, which by default is ``None``. [14878]

astropy.time
^^^^^^^^^^^^

- Masked ``Time`` instances now use astropy's own ``Masked`` class internally.
This means that ``Masked`` input is now properly recognized, and that masks
get propagated also to ``Quantity`` output (such as from a ``TimeDelta``
converted to a unit of time), creating ``MaskedQuantity`` instances. [15231]

- Added a ``TimeDelta`` format ``quantity_str`` that represents the time delta as a string
with one or more ``Quantity`` components. This format provides a human-readable
multi-scale string representation of a time delta. The default output sub-format is not
considered stable in this release, please see https://github.com/astropy/astropy/issues/15485
for more information. [15264]

astropy.uncertainty
^^^^^^^^^^^^^^^^^^^

- Uncertainty ``Distribution`` now support structured data types, and as
a result it now works also with ``EarthLocation``. [15304]

- Uncertainty ``Distribution`` can now be used inside representations, which
also allows basic support in ``SkyCoord``. While most calculations work, there
are remaining issues.  For instance, the ``repr`` does not show that the
coordinates are distributions. [15395]

astropy.units
^^^^^^^^^^^^^

- Add support for gc2gde and gd2gce erfa functions to allow geodetic representations
using equatorial radius and flattening. [14729]

astropy.utils
^^^^^^^^^^^^^

- The ``astropy.utils.metadata.MetaData`` default dictionary can now be
set with the ``default_factory`` keyword argument. [15265]

- ``astropy.utils.decorators.deprecated`` now adds the ``__deprecated__`` attribute to
the objects it wraps, following the practice in https://peps.python.org/pep-0702/. [#15310]

astropy.visualization
^^^^^^^^^^^^^^^^^^^^^

- Add ``WCSAxes.text_coord`` method to print text using ``SkyCoord`` objects
parallel to plotting data points with ``WCSAxes.plot_coord``. [14661]

astropy.wcs
^^^^^^^^^^^

- Support WCS descriptions of basic planetary coordinate frames. [14820]

- Updated bundled WCSLIB version to 8.1. This update adds support planetary keywords ``A_RADIUS``, ``B_RADIUS``, ``C_RADIUS``, ``BLON_OBS``, ``BLAT_OBS``, and ``BDIS_OBS`` in ``auxprm`` and adds ``wcsprm::time`` to the ``wcsprm`` struct to record the ``TIME`` axis. This update also includes several bug fixes. For a full list of changes - see http://www.atnf.csiro.au/people/mcalabre/WCS/CHANGES [#15035]


API Changes
-----------

astropy.config
^^^^^^^^^^^^^^

- Removed deprecated ``ConfigurationMissingWarning`` class and ``update_default_config`` function;
There are no replacements as they should no be used anymore. [15466]

astropy.convolution
^^^^^^^^^^^^^^^^^^^

- Invalid kernel arithmetic operations now raise a ``KernelArithmeticError`` instead of a
bare ``Exception``. [14728]

- Added base ``KernelError`` error class and removed ``DiscretizationError`` error class (a ``ValueError`` will be raised instead). [14732]

- ``discretize_model`` will now raise a ``ValueError`` if
``mode='oversample'`` and ``factor`` does not have an integer value. [14794]

astropy.coordinates
^^^^^^^^^^^^^^^^^^^

- Removed deprecated angle parsing and formatting utilities from ``angle_utilities``.
Use the functions from ``angle_formats`` instead. [14675]

- The deprecated functionality of initializing ``Angle`` or ``Longitude`` from a
``tuple`` is no longer supported. [15205]

- Angle-related classes and functions have been moved within ``astropy.coordinates``.
There is no change to public API as everything moved should still be imported from
``astropy.coordinates``, not a sub-module. If you are using private API, try importing
from ``astropy.coordinates`` instead. If you need something that has been moved and is
not available in ``astropy.coordinates``, please open an issue on the Astropy issue
tracker. [15220]

- It is no longer possible to pass frame classes to the ``transform_to()`` method
of a low-level coordinate-frame class. It is still possible to pass frame
instances. The ``transform_to()`` method of the high-level ``SkyCoord`` class
is unaffected. [15500]

astropy.cosmology
^^^^^^^^^^^^^^^^^

- Removed support of importing private constants and functions from ``astropy.cosmology.flrw``. [14672]

- Removed deprecated Cosmology Parameter argument ``fmt``. [14673]

- Removed deprecated ``vectorize_if_needed`` and ``inf_like`` from ``cosmology.utils``. [14677]

- Removed deprecated import paths from ``astropy.cosmology.core``. [14782]

- Cosmology ``Parameter`` is now a ``dataclass``, and can work with all of Python's dataclasses
machinery, like field introspection and type conversion. [14874]

- A new property -- ``scale_factor0`` -- has been added to Cosmology objects.
This is the scale factor at redshift 0, and is defined to be 1.0. [14931]

- Added registration label ``ascii.latex`` to Cosmology IO. [14938]

- The private module ``astropy.cosmology.utils`` has been deprecated. [14980]

- Removed deprecated ``get_cosmology_from_string`` class method in ``default_cosmology``; use ``get`` instead. [15467]

astropy.io.ascii
^^^^^^^^^^^^^^^^

- Several arguments in functions within ``astropy.io.ascii`` have been deprecated and
are either renamed or scheduled to be removed.

``read()``:
- ``Reader`` will be removed. Instead supply the equivalent ``format`` argument.
- ``Inputter`` has been renamed to ``inputter_cls``.
- ``Outputter`` has been renamed to ``outputter_cls``.

``get_reader()``:
- ``Reader`` has been renamed to ``reader_cls``.
- ``Inputter`` has been renamed to ``inputter_cls``.
- ``Outputter`` has been renamed to ``outputter_cls``.

``write()``:
- ``Writer`` will be removed. Instead supply the equivalent ``format`` argument.

``get_writer()``:
- ``Writer`` has been renamed to ``writer_cls``. [14914]

- Removed deprecated ``astropy.io.ascii.tests.common.raises`` test helper; use ``pytest.raises`` instead. [15470]

astropy.io.fits
^^^^^^^^^^^^^^^

- Deprecate ``_ExtensionHDU`` and ``_NonstandardExtHDU`` (use ``ExtensionHDU`` or
``NonstandardExtHDU`` instead). [15396]

- Remove special handling of TCTYP TCUNI TCRPX TCRVL TCDLT TRPOS (7157). [15396]

- Rename and deprecate ``TableHDU.update`` to ``TableHDU.update_header``, for
consistency with ``ImageHDU``. [15396]

astropy.io.misc
^^^^^^^^^^^^^^^

- Removed deprecated ``astropy.io.misc.asdf`` subpackage. Use ``asdf-astropy`` package instead. [14668]

- ``fnunpickle`` and ``fnpickle`` are deprecated because they are not used anywhere within ``astropy``.
If you must, use the module from Python standard library but be advised that pickle is insecure
so you should only unpickle data that you trust. [15418]

astropy.io.votable
^^^^^^^^^^^^^^^^^^

- Removed deprecated ``pedantic`` option from the
``astropy.io.votable.table.parse()`` function and the corresponding configuration
setting. Use the ``verify`` option instead. [14669]

- Class ``astropy.io.votable.tree.Table`` has been renamed to ``TableElement``
to avoid sharing the name with ``astropy.table.Table``. [15372]

- Fully removed support for version = '1.0' on ``VOTableFile__init__()`` and changed its tests to check correctly.
It was raising a ``DeprecationWarning`` and now is raising a ``ValueError``. [15490]

astropy.modeling
^^^^^^^^^^^^^^^^

- Removed the ``AliasDict`` class from ``modeling.utils``. [12943]

- Creating a model instance with parameters that have incompatible shapes will
now raise a ``ValueError`` rather than an ``IncompatibleShapeError``. [15209]

- Removal of deprecated code ``_model_to_fit_params`` and ``_fitter_to_model_params`` from ``fitting.py``. [15461]

astropy.stats
^^^^^^^^^^^^^

- The ``BoxLeastSquares``, ``BoxLeastSquaresResults`` and ``LombScargle`` classes
are not available from ``astropy.stats`` anymore, they are now available only
from ``astropy.timeseries``. [15530]

astropy.tests
^^^^^^^^^^^^^

- Removed deprecated deprecation, warning, and exception handling functionality provided by ``astropy.tests.helper``. [14670]

- ``astropy.tests.command.FixRemoteDataOption`` and ``astropy.tests.command.AstropyTest`` are deprecated.
They are no longer necessary after sunsetting ``astropy-helpers``. [15204]

astropy.time
^^^^^^^^^^^^

- ``Time`` has switched to use ``Masked`` arrays internally, instead of
indicating masked values using NaN in the internal ``jd2`` attribute.  As a
result, any output from instances, such as one gets with, say, the ``.isot``
format, will also use ``Masked`` by default.

For backwards compatibility, a new configuration item,
``astropy.time.conf.masked_array_type`` is introduced which is set to
"astropy" by default (which indicates one wants to use ``Masked``), but can
also be set to "numpy", in which case ``numpy.ma.MaskedArray`` will be used
where possible (essentially, for all but ``Quantity``). [15231]

- Changed the ``TimeDelta`` init signature to be consistent with that of ``Time``.
Previously the argument order was ``val, val2, format, scale, copy``. Now the order is
``val, val2, format, scale, *, precision, in_subfmt, out_subfmt, copy``, where the
arguments after the ``*`` must be specified by keyword. [15264]

astropy.timeseries
^^^^^^^^^^^^^^^^^^

- Removed deprecated ``midpoint_epoch`` in ``fold`` function; use ``epoch_time`` instead. [15462]

astropy.uncertainty
^^^^^^^^^^^^^^^^^^^

- The ``.dtype`` attribute exposed by ``Distribution`` is now that of
the samples, rather than one that has a "samples" entry.  This makes
quantities with structured data types and units easier to support, and
generally makes the ``Distribution`` appear more similar to regular
arrays.  It should have little effect on code.  For instance,
``distribution["samples"]`` still will return the actual distribution.

As a consequence of this refactoring, most arrays that are not
C-contiguous can now be viewed and will thus not be copied on input
any more.  The only exceptions are arrays for which the strides are
negative.

Note that the true data type is considered an implementation detail.
But for reference, it now is a structured data type with a single
field, "samples", which itself is an array of "sample" fields, which
contain the actual data. [15304]

astropy.units
^^^^^^^^^^^^^

- Like ``np.ndarray``, under numpy 2.0 ``Quantity`` and all its subclasses
(``Angle``, ``Masked``, etc.) will no longer support the ``.ptp()`` method.
Use ``np.ptp(...)`` instead.

Similarly, support for the much less frequently used ``.newbyteorder()`` and
``.itemset()`` methods has been removed. [15378]

- The following deprecated functionality has been removed:

 * ``littleh`` unit and ``with_H0`` equivalency. They are still available from
   ``cosmology.units``.
 * ``brightness_temperature`` equivalency no longer automatically swaps the
   order of its arguments if it does not match the expectation.
 * ``PhysicalType`` no longer supports ``str`` methods and attributes. [15514]

astropy.utils
^^^^^^^^^^^^^

- Removed deprecated ``OrderedDescriptor``, ``OrderedDescriptorContainer``, and ``set_locale`` in ``astropy.utils.misc``. [14679]

- ``is_path_hidden()`` and ``walk_skip_hidden()`` are deprecated. [14759]

- The structure of ``utils.metadata`` has been refactored, but all the available
functions and classes are still present and should be imported as before. [15166]

- The ``astropy.utils.metadata.MetaData`` class, which is used throughout astropy
to carry metadata on tables, columns, etc., can now also be used on dataclasses.

When accessing the meta attribute on a class ``astropy.utils.metadata.MetaData``
now returns None instead of itself. [15237]

- The ``astropy.utils.metadata.MetaData`` class, which is used throughout astropy
to carry metadata on tables, columns, etc., can now also be used on frozen dataclasses. [15404]

- Removed deprecated ``version_path`` in ``minversion`` function; it is no longer used. [15468]

astropy.visualization
^^^^^^^^^^^^^^^^^^^^^

- The ``bboxes``, ``ticklabels_bbox``, and ``tick_out_size`` arguments to ``astropy.visualization.wcaxes.ticklabels.TickLabels.draw()`` now have no effect and are deprecated.
This is to allow rasterized ticks to be drawn correctly on WCSAxes. [14760]

- It is now not possible to pass any keyword arguments to ``astropy.visualization.wcsaxes.WCSAxes.draw()``.
Previously passing any keyword arguments would have errored anyway, as ``matplotlib.axes.Axes.draw()`` does not accept keyword arguments. [14772]

- Deprecated the ``exp`` attribute in the ``LogStretch``,
``InvertedLogStretch``, ``PowerDistStretch``, and
``InvertedPowerDistStretch`` stretch classes, and the ``power``
attribute in the ``PowerStretch``. Instead, use the ``a`` attribute,
which matches the input keyword. [15538]

- Removed the maximum value of the ``a`` parameter in the ``AsinhStretch``
and ``SinhStretch`` stretch classes. [15539]

astropy.wcs
^^^^^^^^^^^

- Removed deprecated ``accuracy`` from ``all_world2pix`` method in ``WCS``; use ``tolerance`` instead. [15464]

- ``NoConvergence`` no longer accepts arbitrary keyword arguments. [15504]


Bug Fixes
---------

astropy.coordinates
^^^^^^^^^^^^^^^^^^^

- Fixed minor bug when getting solar system positions of objects from Type 3 SPICE kernel files. [15612]

astropy.cosmology
^^^^^^^^^^^^^^^^^

- The exponent in ``w0wzCDM.de_density_scale`` has been corrected to 3, from -3.
This correction has also been made to the scalar ``inv_efunc`` cpython functions. [14991]

- ``pandas.Series`` are now uniformly converted to their underlying data type when given
as an argument to a Cosmology method. [15600]

astropy.io.fits
^^^^^^^^^^^^^^^

- Reading a table from FITS now respects the TNULL property of a column, passing
it into the column's ``fill_value``. [14723]

- Fix crash when a PrimaryHDU has a GROUPS keyword with a non-boolean value (i.e.
not a random-groups HDU). [14998]

- Fixed a bug that caused ``Cutout2D`` to not work correctly with ``CompImageHDU.section`` [14999]

- Fixed a bug that caused compressed images with TFORM missing the optional '1' prefix to not be readable. [15001]

- Ensure that tables written to FITS with both masked and unmasked columns
roundtrip properly (previously, all integer columns would become masked
if any column was masked). [15473]

- Fix segfault with error report in tile decompression. [15489]

astropy.io.votable
^^^^^^^^^^^^^^^^^^

- Output of ``repr`` for VOTable instance now clearly shows it is a VOTable and not generic astropy Table. [14702]

astropy.modeling
^^^^^^^^^^^^^^^^

- All models can be pickled now. [14902]

astropy.nddata
^^^^^^^^^^^^^^

- Restore bitmask propagation behavior in ``NDData.mask``, plus a fix
for arithmetic between masked and unmasked ``NDData`` objects. [14995]

astropy.table
^^^^^^^^^^^^^

- ``Table.as_array`` now respects the ``fill_value`` property of masked columns. [14723]

- Fix a bug where table indexes were not using a stable sort order. This was causing the
order of rows within groups to not match the original table order when an indexed table
was grouped. [14907]

- Fixed issue 14964 that when grouping a Table on a mixin column such as ``Quantity`` or
``Time``, the grouped table keys did not reflect the original column values. For
``Quantity`` this meant that the key values were pure float values without the unit,
while for ``Time`` the key values were the pair of ``jd1`` and ``jd2`` float values. [14966]

astropy.time
^^^^^^^^^^^^

- Ensure that the ``Time`` caches of formats and scales do not get out
of sync with the actual data, even if another instance, holding a view
of the data is written to.  E.g., if one does ``t01 = t[:2]``, and
sets ``t[0]`` after, it is now guaranteed that ``t01.value`` will
correctly reflect that change in value. [15453]

astropy.units
^^^^^^^^^^^^^

- In VOunits, "pix", "au", "a", and "ct" are removed from the list of deprecated units. [14885]

astropy.utils
^^^^^^^^^^^^^

- Ufuncs with more than 2 operands (such as ``erfa.dtf2d``) now work
also if all inputs are scalars and more than two inputs have masks. [15450]

- Ensured that ``str(masked_array)`` looks like ``str(unmasked_array)`` also for
array scalars. Thus, like regular array scalars, the precision is ignored for
float, and strings do not include extra quoting. [15451]

astropy.visualization
^^^^^^^^^^^^^^^^^^^^^

- The location of ticklabels on a WCSAxes is now correctly calculated when the figure is rasterized. [14760]

- Fixed a bug where a ``ValueError`` would be raised in the
``AsinhStretch`` and ``SinhStretch`` classes for valid ``a`` parameter
values. [15539]

astropy.wcs
^^^^^^^^^^^

- ``wcs.validate(filename)`` now properly closes the file handler. [15054]

- Fix a regression in custom WCS mapping due to the recent introduction of
Solar System frames. [15630]


Other Changes and Additions
---------------------------

- The minimum supported version of NumPy is now 1.22. [15006]

- Moved International Earth Rotation and Reference Systems (IERS) and Leap Second
files out into standalone astropy-iers-data package, maintaining full
backward-compatibility in the ``astropy.utils.iers`` API. Deprecation
warnings may be issued when certain files are accessed directly. [14819]

- Switch from using ``setup.cfg`` for project configuration to using ``pyproject.toml``. [15247]

- Update bundled expat to 2.5.0. [15585]

5.3.4

==========================

Bug Fixes
---------

astropy.io.misc
^^^^^^^^^^^^^^^

- Updated ``astropy.io.misc.yaml`` so ``dump()` with a numpy object array or
``load()`` with YAML representing a Numpy object array both raise
``TypeError``. This prevents problems like a segmentation fault. [15373]

astropy.io.votable
^^^^^^^^^^^^^^^^^^

- Fixed a bug in ``convert_to_writable_filelike`` where ``GzipFile`` was not
closed properly. [15359]

astropy.units
^^^^^^^^^^^^^

- In VOUnit, the spaces around the slash were removed in the formatting of
fractions, and fractional powers now also use the "**" operator. [15282]

- We now ensure that the unit ``u.cgs.cm`` is just an alias of ``u.si.cm``,
instead of a redefinition.  This ensures that ``u.Unit("cm") / u.cm``
will reliably cancel to dimensionless (instead of some "cm / cm"). [15368]

astropy.utils
^^^^^^^^^^^^^

- For ``Masked``, ``np.ptp`` and the ``.ptp()`` method now properly account for
the mask, ensuring the result is identical to subtracting the maximum and
minimum (with the same arguments). [15380]

Other Changes and Additions
---------------------------

- Compatibility with Python 3.12. [14784]

- Replaced the URL of ``IETF_LEAP_SECOND_URL`` because the original is now
defunct and IETF now defers to IANA for such look-up. [15421]

5.3.3

===========================

Bug Fixes
---------

astropy.coordinates
^^^^^^^^^^^^^^^^^^^

- ``TransformGraph.to_dot_graph()`` now throws an exception for invalid ``savelayout``.

astropy.cosmology
^^^^^^^^^^^^^^^^^

- The exponent of ``w0wzCDM`` functions in ``inv_efunc`` has been corrected to 3, from -3. [15224]

astropy.modeling
^^^^^^^^^^^^^^^^

- Astropy modeling can filter non-finite data values using the ``filter_non_finite``
keyword argument in a fitter call. Now when ``filter_non_finite`` is True,
non-finite *weights* will also be filtered to prevent crashes in ``LevMarLSQFitter``. [15215]

astropy.units
^^^^^^^^^^^^^

- Fixed ``astropy.units.Quantity``'s implementation of ``numpy.nanmedian()``,
where for Numpy >= 1.25 an exception was raised for some array shapes and axis
combinations. [15228]


Other Changes and Additions
---------------------------

- v5.3.x will not support NumPy 2.0 or later. [15234]

5.3.2

==========================

Bug Fixes
---------

astropy.coordinates
^^^^^^^^^^^^^^^^^^^

- Fixed import when called with Python ``-OO`` flag. [15037]

astropy.nddata
^^^^^^^^^^^^^^

- Fix for collapse operations on ``NDData`` without masks or units. [15082]

astropy.units
^^^^^^^^^^^^^

- Modified the implementation of ``np.power()`` for instances of ``Quantity`` to
allow any array as the second operand if all its elements have the same value. [15101]

5.3.1

==========================

Bug Fixes
---------

astropy.cosmology
^^^^^^^^^^^^^^^^^

- The exponent in ``wowzCDM.de_density_scale`` has been corrected to 3, from -3. [14991]

astropy.io.fits
^^^^^^^^^^^^^^^

- Fix crash when a PrimaryHDU has a GROUPS keyword with a non-boolean value (i.e.
not a random-groups HDU). [14998]

- Fixed a bug that caused ``Cutout2D`` to not work correctly with ``CompImageHDU.section`` [14999]

- Fixed a bug that caused compressed images with TFORM missing the optional '1' prefix to not be readable. [15001]

astropy.modeling
^^^^^^^^^^^^^^^^

- All models can be pickled now. [14902]

astropy.nddata
^^^^^^^^^^^^^^

- Restore bitmask propagation behavior in ``NDData.mask``, plus a fix
for arithmetic between masked and unmasked ``NDData`` objects. [14995]

astropy.table
^^^^^^^^^^^^^

- Fix a bug where table indexes were not using a stable sort order. This was causing the
order of rows within groups to not match the original table order when an indexed table
was grouped. [14907]

astropy.units
^^^^^^^^^^^^^

- In VOunits, "pix", "au", "a", and "ct" are removed from the list of deprecated units. [14885]

5.3

========================

New Features
------------

astropy.coordinates
^^^^^^^^^^^^^^^^^^^

- Add optional parameter ``refresh_cache`` to ``EarthLocation.of_site()`` and
``EarthLocation.get_site_names()`` to force the download of the latest site
registry. [13993]

- Added ``atol`` argument to function ``is_O3`` and ``is_rotation`` in matrix utilities. [14371]

- A new class ``astropy.coordinates.StokesCoord`` has been added to represent world coordinates describing polarization state.
This change introduces a breaking change to the return value of ``astropy.wcs.WCS.pixel_to_world`` where before a ``u.Quantity`` object would be returned containing numerical values representing a Stokes profile now a ``StokesCoord`` object is returned. The previous numerical values can be accessed with ``StokesCoord.value``. [14482]

- Add an optional parameter ``location`` to ``EarthLocation.get_itrs()``
to allow the generation of topocentric ITRS coordinates with respect
to a specific location. [14628]

astropy.cosmology
^^^^^^^^^^^^^^^^^

- Two new cosmologies have been added, ``FlatwpwaCDM`` and ``Flatw0wzCDM``, which are the
flat variants of ``wpwaCDM`` and ``w0wzCDM``, respectively. [12353]

astropy.io.ascii
^^^^^^^^^^^^^^^^

- Add ability to read and write an RST (reStructuredText) ASCII table that
includes additional header rows specifying any or all of the column dtype, unit,
format, and description. This is available via the new ``header_rows`` keyword
argument. [14182]

astropy.io.fits
^^^^^^^^^^^^^^^

- Added support for >3D data in CompImageHDU [14252]

- Added a ``CompImageHDU.section`` property which can be used to
efficiently access subsets of the data, similarly to ``ImageHDU.section``.
When using this, only the tiles required to cover the section are
read from disk and decompressed. [14353]

- Added support for ``'NOCOMPRESS'`` for the ``compression_type`` option in ``CompImageHDU``. [14408]

- Added new properties ``compression_type`` and ``tile_shape`` on
``CompImageHDU``, giving the name of the compression algorithm
and the shape of the tiles in the tiled compression respectively. [14428]

- Do not call ``gc.collect()`` when closing a ``CompImageHDU`` object as it has a
large performance penalty. [14576]

- VLA tables can now be written with the unified I/O interface.
When object types are present or the VLA contains different types a `TypeError`
is thrown. [14578]

astropy.io.misc
^^^^^^^^^^^^^^^

- Add support for writing/reading fixed-size and variable-length array columns to the parquet formatter. [14237]

astropy.io.votable
^^^^^^^^^^^^^^^^^^

- Added a method ``get_infos_by_name`` to make it easier to implement
DALI-compliant protocols [14212]

- Updating the built-in UCD list to upstream 1.5 (which requires a minor
update to the parser) [14554]

astropy.modeling
^^^^^^^^^^^^^^^^

- Enable check for poorly conditioned fits in ``LinearLSQFitter`` for polynomial
models with fixed inputs. [14037]

astropy.nddata
^^^^^^^^^^^^^^

- ``astropy.nddata.NDDataArray`` now has collapsing methods like ``sum``,
``mean``, ``min``, and ``max`` which operate along any axes, and better
support for ``astropy.utils.Masked`` objects. [14175]

astropy.stats
^^^^^^^^^^^^^

- ``vonmisesmle`` has now functioning "weights" and "axis" parameters that work equivalently
to the rest of the functions in the ``circstats`` module (``circmean``, ``rayleightest``, etc.) [14533]

astropy.table
^^^^^^^^^^^^^

- ``Table`` and ``QTable`` can now use the ``|`` and ``|=`` operators for
dictionary-style merge and update. [14187]

astropy.time
^^^^^^^^^^^^

- Add a ``leap_second_strict`` argument to the ``Time.to_datetime()`` method. This
controls the behavior when converting a time within a leap second to the ``datetime``
format and can take the values ``raise`` (the default), ``warn``, or ``silent``. [14606]

astropy.timeseries
^^^^^^^^^^^^^^^^^^

- Adds the ``astropy.timeseries.LombScargleMultiband`` class, which is an
extension of the ``astropy.timeseries.LombScargle`` class. It enables the
generation of periodograms for datasets with measurements taken in more than
one photometric band. [14016]

- Add ``unit_parse_strict`` parameter to the Kepler reader to control the warnings
emitted when reading files. [14294]

astropy.units
^^^^^^^^^^^^^

- Add support for degrees Celsius for FITS. Parsing "Celsius" and "deg C" is now
supported and astropy will output "Celsius" into FITS.

Note that "deg C" is only provided for compatibility with existing FITS files,
as it does not conform to the normal unit standard, where this should be read
as "degree * Coulomb". Indeed, compound units like "deg C kg-1" will still be
parsed as "Coulomb degree per kilogram". [14042]

- Enabled the ``equal_nan`` keyword argument for ``np.array_equal()`` when the
arguments are ``astropy.units.Quantity`` instances. [14135]

- Allow "console" and "unicode" formats for conversion to string of
function units. [14407]

- Add a "fraction" options to all the unit ``format`` classes, which determine
whether, if a unit has bases raised to a negative power, a string
representation should just show the negative powers (``fraction=False``) or
use a fraction, and, in the latter case, whether to use a single-line
representation using a solidus (``fraction='inline'`` or ``fraction=True``)
or, if the format supports it, a multi-line presentation with the numerator
and denominator separated by a horizontal line (``fraction='multiline'``). [14449]

astropy.utils
^^^^^^^^^^^^^

- The ``mean`` method on ``NDDataArray`` now avoids a division by zero
warning when taking the mean of a fully-masked slice (and still
returns ``np.nan``). [14341]

- Ensure we can read the newer ``IERS_B`` files produced by the International
Earth Rotation and Reference Systems Service, and point
``astropy.utils.iers.IERS_B_URL`` to the new location. [14382]


API Changes
-----------

astropy.coordinates
^^^^^^^^^^^^^^^^^^^

- ``get_moon()`` is deprecated and may be removed in a future version of
``astropy``. Calling ``get_moon(...)`` should be replaced with
``get_body("moon", ...)``. [14354]

astropy.io.fits
^^^^^^^^^^^^^^^

- Deprecate the auto-fixing of tile sizes for HCOMPRESS_1 tiled
image compression when the tile size could be changed by +1
to make it acceptable. [14410]

- The ``tile_size=`` argument to ``CompImageHDU`` has been deprecated
as it was confusing that it was required to be in the opposite
order to the data shape (it was in header rather than Numpy order).
Instead, users should make use of the ``tile_shape=`` argument which
is in Numpy shape order. [14428]

astropy.modeling
^^^^^^^^^^^^^^^^

- Deprecate the ``humlicek2`` method for `~astropy.modeling.functional_models.Voigt1D` in favor
of using the ``wofz`` method using the `scipy.special.wofz` implementation of the
Fadeeva function whenever `scipy` is installed. [14013]

- Deprecated ``astropy.modeling.utils.comb()`` function in favor of ``comb()``
from ``math`` standard library. [14038]

- Propagate measurement uncertainties via the ``weights`` keyword argument into the
parameter covariances. [14519]

astropy.units
^^^^^^^^^^^^^

- The conversion of ``astropy.units.Quantity`` to ``bool``
that was deprecated since astropy 3.0 now raises a ``ValueError``.
This affects statements like ``if quantity``.
Use explicit comparisons like ``if quantity.value != 0``
or ``if quantity is not None`` instead. [14124]

- Operations on ``Quantity`` in tables are sped up by only copying ``info`` when
it makes sense (i.e., when the object can still logically be thought of as the
same, such as in unit changes or slicing). ``info`` is no longer copied if a
``Quantity`` is part of an operation. [14253]

- The ``Quantity.nansum`` method has been deprecated. It was always weird that it
was present, since ``ndarray`` does not have a similar method, and the other
``nan*`` functions such as ``nanmean`` did not have a corresponding method.
Use ``np.nansum(quantity)`` instead. [14267]

- The unused ``units.format.Unscaled`` format class has been deprecated. [14417]

- The order in which unit bases are displayed has been changed to match the
order bases are stored in internally, which is by descending power to which
the base is raised, and alphabetical after. This helps avoid monstrosities
like ``beam^-1 Jy`` for ``format='fits'``.

Note that this may affect doctests that use quantities with complicated units. [14439]

astropy.utils
^^^^^^^^^^^^^

- For ``Masked`` instances, the ``where`` argument for any ufunc can now
also be masked (with any masked elements masked in the output as well).
This is not very useful in itself, but avoids problems in conditional
functions (like ``np.add(ma, 1, where=ma>10)``). [14590]

astropy.visualization
^^^^^^^^^^^^^^^^^^^^^

- The pixel attribute of ``astropy.visualization.wcsaxes.frame.Spine`` is deprecated
and will be removed in a future astropy version.
Because it is (in general) not possible to correctly calculate pixel
coordinates before Matplotlib is drawing a figure, instead set the world or data
coordinates of the ``Spine`` using the appropriate setters. [13989]

- Passing a bare number as the ``coord_wrap`` argument to ``CoordinateHelper.set_coord_type`` is deprecated.
Pass a ``Quantity`` with units equivalent to angular degrees instead.

The ``.coord_wrap`` attribute of ``CoordinateHelper`` is now a ``Quantity`` instead of a bare number. [14050]


Bug Fixes
---------

astropy.coordinates
^^^^^^^^^^^^^^^^^^^

- ``Angle.to_string()`` was changed to ensure it matches the behaviour of
``Quantity.to_string()`` in having a space between the value and the unit
for display with non-degree and hourangle units (i.e., the case in which
units are displayed by their name; the sexagesimal case for degrees or
hourangle that uses symbols is not changed). [14379]

astropy.io.ascii
^^^^^^^^^^^^^^^^

- Fix an issue in the ``io.ascii`` QDP format reader to allow lower-case commands in the
table data file. Previously it required all upper case in order to parse QDP files. [14365]

astropy.io.fits
^^^^^^^^^^^^^^^

- Compressing/decompressing a floating point dataset containing NaN values will
no longer read in the whole tile as NaNs.

Fixed segmentation faults that occurred when compressing/decompressing data
with the PLIO_1 algorithm. [14252]

- ``Card`` now uses the default Python representation for floating point
values. [14508]

- ``ImageHDU`` now properly rejects Numpy scalars, avoiding data corruption. [14528]

- Fix issues with double quotes in CONTINUE cards. [14598]

- Fixes an issue where FITS_rec was incorrectly raising a ValueError exception when the heapsize was greater than 2**31
when the Column type was 'Q' instead of 'P'. [14810]

astropy.io.misc
^^^^^^^^^^^^^^^

- Columns with big-endian byte ordering (such as those read in from a FITS table) can now be serialized with Parquet. [14373]

astropy.modeling
^^^^^^^^^^^^^^^^

- Bugfix for using ``getter/setter`` in properties to adjust the internal (computational)
value of a property vs its external proxy value when the values involve units. [14512]

- Fix issue with ``filter_non_finite`` option when fitting with ``weights`` via passing
the ``weights`` through the non-finite-filter alongside the input data. [14695]

- Fixed an issue with Parameter where a getter could be input without a
setter (or vice versa). [14708]

astropy.time
^^^^^^^^^^^^

- Using quantities with units of time for ``Time`` format 'decimalyear' will now
raise an error instead of converting the quantity to days and then
interpreting the value as years. An error is raised instead of attempting to
interpret the unit as years, since the interpretation is ambiguous: in
'decimaltime' years are equal to 365 or 366 days, while for regular time units
the year is defined as 365.25 days. [14566]

astropy.uncertainty
^^^^^^^^^^^^^^^^^^^

- Ensure that ``Distribution`` can be compared with ``==`` and ``!=``
with regular arrays or scalars, and that inplace operations like
``dist[dist<0] *= -1`` work. [14421]

astropy.units
^^^^^^^^^^^^^

- Modified ``astropy.units.Quantity.__array_ufunc__()`` to return ``NotImplemented`` instead of raising a ``ValueError`` if the inputs are incompatible. [13977]

- Modified the behavior of ``numpy.array_equal()`` and ``numpy.array_equiv()`` to
return ``False`` instead of raising an error if their arguments are
``astropy.units.Quantity`` instances with incompatible units. [14163]

- Spaces have been regularized for the ``unicode`` and ``console`` output
formats: no extraneous spaces in front of the unit, and always a space
between a possible scale factor and the unit. [14413]

- Prefixed degrees and arcmin are now typeset without using the symbol in
``latex`` and ``unicode`` formats (i.e., ``mdeg`` instead of ``m°``),
as was already the case for arcsec. [14419]

- Ensure the unit is kept in ``np.median`` even if the result is a scalar ``nan``
(the unit was lost for numpy < 1.22). [14635]

- Ensure that ``Quantity`` with structured dtype can be set using non-structured
``Quantity`` (if units match), and that structured dtype names are inferred
correctly in the creation of ``StructuredUnit``, thus avoiding mismatches
when setting units. [14680]

astropy.utils
^^^^^^^^^^^^^

- When using astropy in environments with sparse file systems (e.g., where the temporary directory and astropy data directory resides in different volumes), ``os.rename`` may fail with ``OSError: [Errno 18] Invalid cross-device link``.
This may affect some clean-up operations executed by the ``data`` module, causing them to fail.
This patch is to catch ``OSError`` with ``errno == EXDEV`` (i.e., Errno 18) when performing these operations and try to use ``shutil.move`` instead to relocate the data. [13730]

- Ensure masks are propagated correctly for ``outer`` methods of ufuncs also if
one of the inputs is not actually masked. [14624]

astropy.visualization
^^^^^^^^^^^^^^^^^^^^^

- The location of a ``astropy.visualization.wcsaxes.frame.Spine`` in a plot is now
correctly calculated when the DPI of a figure changes between a WCSAxes being
created and the figure being drawn. [13989]

- ``CoordinateHelper.set_ticks()`` now accepts ``number=0``. Previously it errored. [14160]

- ``WCSAxes.plot_coord`` and ``plot_scatter`` now work correctly for APE 14 compliant WCSes where the units are not always converted to degrees. [14251]

- Fixed a bug where coordinate overlays did not automatically determine the
longitude wrap angle or the appropriate units. [14326]

astropy.wcs
^^^^^^^^^^^

- Fix bugs with high-level WCS API on ``wcs.WCS`` object when using ``-TAB``
coordinates. [13571]

- Fixed a bug in how WCS handles ``PVi_ja`` header coefficients when ``CTYPE``
has ``-SIP`` suffix and in how code detects TPV distortions. [14295]


Other Changes and Additions
---------------------------

- The minimum supported version of Python is now 3.9, changing from 3.8. [14286]

- The minimum supported version of Numpy is now 1.21. [14349]

- The minimum supported version of matplotlib is now 3.3. [14286, 14321]

- ``astropy`` no longer publishes wheels for i686 architecture. [14517]

- Added a pre-commit configuration for codespell. [13985]

- Removed a large fraction of the bundled CFITSIO code and internally refactored
FITS compression-related code, which has resulted in a speedup when compiling
astropy from source (40% faster in some cases). [14252]

- The CFITSIO library is no longer bundled in full with astropy and
the option to build against an external installation of CFITSIO
has now been removed, so the ASTROPY_USE_SYSTEM_CFITSIO environment
variable will be ignored during building. [14311]

- Updated CDS URL for Sesame look-up as the old URL is deprecated. [14681]

5.2.2

==========================

Bug Fixes
---------

astropy.io.ascii
^^^^^^^^^^^^^^^^

- CDS and MRT tables with units that contain with multiple divisions, such as
``km/s/Mpc`` now parse correctly as being equal to ``km/(s.Mpc)``. [14369]

astropy.io.fits
^^^^^^^^^^^^^^^

- Fix ``FITSDiff`` when table contains a VLA column with the Q type. [14539]

astropy.table
^^^^^^^^^^^^^

- Fix a bug when creating a ``QTable`` when a ``Quantity`` input column is present and the
``units`` argument modifies the unit of that column. This now works as expected where
previously this caused an exception. [14357]

astropy.units
^^^^^^^^^^^^^

- CDS units with multiple divisions, such as ``km/s/Mpc`` now parse
correctly as being equal to ``km/(s.Mpc)``. [14369]

astropy.wcs
^^^^^^^^^^^

- Fixed a bug that caused subclasses of BaseHighLevelWCS and HighLevelWCSMixin to
not work correctly under certain conditions if they did not have ``world_n_dim``
and ``pixel_n_dim`` defined on them. [14495]

5.2.1

==========================

Bug Fixes
---------

astropy.coordinates
^^^^^^^^^^^^^^^^^^^

- Fix to ITRS frame ``earth_location`` attribute to give the correct result for
a topocentric frame. [14180]

astropy.cosmology
^^^^^^^^^^^^^^^^^

- Bounds are no longer passed to the scipy minimizer for methods Brent and
Golden. The scipy minimizer never used the bounds but silently accepted them.
In scipy v1.11.0.dev0+ an error is raised, so we now pass None as the bounds
to the minimizer. Users should not be affected by this change. [14232]

astropy.io.fits
^^^^^^^^^^^^^^^

- Tables with multidimensional variable length array can now be properly read
and written. [13417]

astropy.units
^^^^^^^^^^^^^

- Modified the behavior of ``numpy.histogram()``,
``numpy.histogram_bin_edges()``, ``numpy.histogram2d()``, and
``numpy.histogramdd()`` so that the ``range`` argument must a compatible
instance of ``astropy.units.Quantity`` if the other arguments are instances of
``astropy.units.Quantity``. [14213]

astropy.visualization
^^^^^^^^^^^^^^^^^^^^^

- Improved the performance of drawing WCSAxes grids by skipping some unnecessary
computations. [14164]

- Fixed WCSAxes sometimes triggering a NumPy RuntimeWarning when determining the
coordinate range of the axes. [14211]

Other Changes and Additions
---------------------------

- Fix compatibility with Numpy 1.24. [14193]

5.2

========================

New Features
------------

astropy.coordinates
^^^^^^^^^^^^^^^^^^^

- Adds new topocentric ITRS frame and direct transforms to and from the observed
frames ``AltAz`` and ``HADec`` with the ability to add or remove refraction
corrections as required. Since these frames are all within the ITRS, there are
no corrections applied other than refraction in the transforms. This makes the
topocentric ITRS frame and these transforms convenient for observers of near
Earth objects where stellar aberration should be omitted. [13398]

- Allow comparing ``SkyCoord`` to frames with data. [13477]

astropy.cosmology
^^^^^^^^^^^^^^^^^

- Cosmology instance can be parsed from or converted to a HTML table using
the new HTML methods in Cosmology's ``to/from_format`` I/O. [13075]

- A new comparison function has been added -- ``cosmology_equal()`` -- that
mirrors its ``numpy`` counterpart but allows for the arguments to be converted
to a ``Cosmology`` and to compare flat cosmologies with their non-flat
equivalents. [13104]

- Cosmology equivalence for flat FLRW cosmologies has been generalized to apply
to all cosmologies using the FlatCosmology mixin. [13261]

- The cosmological redshift unit now has a physical type of ``"redshift"``. [13561]

astropy.io.ascii
^^^^^^^^^^^^^^^^

- Add ability to read and write a fixed width ASCII table that includes additional
header rows specifying any or all of the column dtype, unit, format, and
description. This is available in the ``fixed_width`` and
``fixed_width_two_line`` formats via the new ``header_rows`` keyword argument. [13734]

astropy.io.fits
^^^^^^^^^^^^^^^

- Added support to the ``io.fits`` API for reading and writing file paths of the
form ``~/file.fits`` or ``~<username>/file.fits``, referring to the home
directory of the current user or the specified user, respectively. [13131]

- Added support for opening remote and cloud-hosted FITS files using the
``fsspec`` package, which has been added as an optional dependency. [13238]

astropy.io.votable
^^^^^^^^^^^^^^^^^^

- Added support in ``io.votable`` for reading and writing file paths of the form
``~/file.xml`` or ``~<username>/file.xml``, referring to the home directory of
the current user or the specified user, respectively. [13149]

astropy.modeling
^^^^^^^^^^^^^^^^

- Add option to non-linear fitters which enables automatic
exclusion of non-finite values from the fit data. [13259]

astropy.nddata
^^^^^^^^^^^^^^

- Modified ``Cutout2D`` to allow objects of type ``astropy.io.fits.Section``
to be passed to the ``data`` parameter. [13238]

- Add a PSF image representation to ``astropy.nddata.NDData`` and ``astropy.nddata.CCDData``. [13743]

astropy.table
^^^^^^^^^^^^^

- An Astropy table can now be converted to a scalar NumPy object array. For NumPy
>= 1.20, a list of Astropy tables can be converted to an NumPy object array of
tables. [13469]

astropy.time
^^^^^^^^^^^^

- Added the ``astropy.time.Time.mean()`` method which also enables the ``numpy.mean()`` function to be used on instances of ``astropy.time.Time``. [13508]

- Improve the performance of getting the string representation of a large ``Time``
or ``TimeDelta`` object. This is done via a new ``to_string()`` method that does
the time string format conversion only for the outputted values. Previously the
entire array was formatted in advance. [13555]

astropy.units
^^^^^^^^^^^^^

- It is now possible to use unit format names as string format specifiers for a
``Quantity``, e.g. ``f'{1e12*u.m/u.s:latex_inline}'`` now produces the string
``'$1 \\times 10^{12} \\; \\mathrm{m\\,s^{-1}}$'``. [13050]

- Ensure that the ``argmin`` and ``argmax`` methods of ``Quantity`` support the
``keepdims`` argument when numpy does (numpy version 1.22 and later). [13329]

- ``numpy.lib.recfunctions.merge_arrays()`` is registered with numpy overload for
``Quantity``. [13669]

- Added SI prefixes for quecto ("q", :math:`10^{-30}`), ronto ("r",
:math:`10^{-27}`), ronna ("R", :math:`10^{27}`), and quetta ("Q",
:math:`10^{30}`). [14046]

astropy.utils
^^^^^^^^^^^^^

- Added the ``use_fsspec``, ``fsspec_kwargs``, and ``close_files`` arguments
to ``utils.data.get_readable_fileobj``. [13238]

- Ensure that the ``argmin`` and ``argmax`` methods of ``Masked`` instances
support the ``keepdims`` argument when numpy does (numpy version 1.22 and
later). [13329]

astropy.visualization
^^^^^^^^^^^^^^^^^^^^^

- Add helper functions for WCSAxes instances to draw the instrument beam and a physical scale. [12102]

- Add a ``scatter_coord`` method to the ``wcsaxes`` functionality based on the
existing ``plot_coord`` method but that calls ``matplotlib.pyplot.scatter``. [13562]

- Added a ``sinh`` stretch option to ``simple_norm``. [13746]

- It is now possible to define "tickable" gridlines for the purpose of placing ticks or tick labels in the interior of WCSAxes plots. [13829]


API Changes
-----------

astropy.convolution
^^^^^^^^^^^^^^^^^^^

- Removed deprecated ``MexicanHat1DKernel`` and ``MexicanHat2DKernel``
classes. Please use ``RickerWavelet1DKernel`` and
``RickerWavelet2DKernel`` instead. [13300]

astropy.units
^^^^^^^^^^^^^

- Multiplying a ``LogQuantity`` like ``Magnitude`` with dimensionless physical
units by an array will no longer downcast to ``Quantity``. [12579]

- Quantity normally upcasts integer dtypes to floats, unless the dtype is
specifically provided.
Before this happened when ``dtype=None``; now the default has been changed to
``dtype=numpy.inexact`` and ``dtype=None`` has the same meaning as in `numpy`. [12941]

- In "in-place unit changes" of the form ``quantity <<= new_unit``, the result
will now share memory with the original only if the conversion could be done
through a simple multiplication with a scale factor. Hence, memory will not be
shared if the quantity has integer dtype or is structured, or when the
conversion is through an equivalency. [13638]

- When ``Quantity`` is constructed from a structured array and ``unit`` is
``None``, the default unit is now structured like the input data. [13676]

astropy.utils
^^^^^^^^^^^^^

- ``astropy.utils.misc.suppress`` has been removed, use ``contextlib.suppress``
instead. ``astropy.utils.namedtuple_asdict`` has been removed, instead use
method ``._asdict`` on a ``namedtuple``. ``override__dir__`` has been deprecated
and will be removed in a future version, see the docstring for the better
alternative. [13636]

- ``astropy.utils.misc.possible_filename`` has been removed. [13661]

astropy.visualization
^^^^^^^^^^^^^^^^^^^^^

- Rename number-of-samples keyword ``nsamples`` in ``ZScaleInterval`` to align
with the ``n_samples`` keyword used in all other ``Interval`` classes in
this module. [13810]


Bug Fixes
---------

astropy.convolution
^^^^^^^^^^^^^^^^^^^

- Fixed convolution Kernels to ensure the that returned kernels
are normalized to sum to one (e.g., ``Gaussian1DKernel``,
``Gaussian2DKernel``). Also fixed the Kernel ``truncation`` calculation. [13299]

- Fix import error with setuptools v65.6.0 by replacing
``numpy.ctypeslib.load_library`` with Cython to load the C convolution
extension. [14035]

astropy.coordinates
^^^^^^^^^^^^^^^^^^^

- ``BaseCoordinateFrame.get_frame_attr_names()`` had a misleading name,
because it actually provided a ``dict`` of attribute names and
their default values. It is now deprecated and replaced by ``BaseCoordinateFrame.get_frame_attr_defaults()``.
The fastest way to obtain the attribute names is ``BaseFrame.frame_attributes.keys()``. [13484]

- Fixed bug that caused ``earth_orientation.nutation_matrix()`` to error instead of returning output. [13572]

- Ensure that ``angle.to_string()`` continues to work after pickling,
and that units passed on to ``to_string()`` or the ``Angle``
initializer can be composite units (like ``u.hour**1``), which might
result from preceding calculations. [13933]

astropy.io.fits
^^^^^^^^^^^^^^^

- ``report_diff_values()`` have now two new parameters ``rtol`` and ``atol`` to make the
report consistent with ``numpy.allclose`` results.
This fixes ``FITSDiff`` with multi-dimensional columns. [13465]

astropy.io.votable
^^^^^^^^^^^^^^^^^^

- Fixed two bugs in validator.validator.make_validation_report:
- ProgressBar iterator was not called correctly.
- make_validation_report now handles input string urls correctly. [14102]

astropy.timeseries
^^^^^^^^^^^^^^^^^^

- Fixed a performance regression in ``timeseries.aggregate_downsample``
introduced in Astropy 5.0 / 11266. [13069]

astropy.units
^^^^^^^^^^^^^

- Unit changes of the form ``quantity <<= new_unit`` will now work also if the
quantity is integer. The result will always be float. This means that the result
will not share memory with the original. [13638]

- Ensure dimensionless quantities can be added inplace to regular ndarray. [13913]

astropy.utils
^^^^^^^^^^^^^

- Fixed an incompatibility with latest Python 3.1x versions that kept
``astropy.utils.data.download_file`` from switching to TLS+FTP mode. [14092]

- ``np.quantile`` and ``np.percentile`` can now be used on ``Masked``
arrays and quantities also with ``keepdims=True``. [14113]

astropy.visualization
^^^^^^^^^^^^^^^^^^^^^

- Significantly improve performance of ``ManualInterval`` when both limits
are specified manually. [13898]


Other Changes and Additions
---------------------------

- The deprecated private ``astropy._erfa`` module has been removed. Use
``pyerfa``, which is a dependency of ``astropy`` and can be imported directly
using ``import erfa``. [13317]

- The minimum version required for numpy is now 1.20 and that for scipy 1.5. [13885]

- Updated the bundled CFITSIO library to 4.2.0. [14020]
Links

Update cffi from 1.15.1 to 1.16.0.

The bot wasn't able to find a changelog for this release. Got an idea?

Links

Update colorlog from 6.7.0 to 6.8.2.

Changelog

6.8.2

What's Changed
* Update package links in README by buhtz in https://github.com/borntyping/python-colorlog/pull/131
* Added [docs/CONTRIBUTING.md](https://github.com/borntyping/python-colorlog/blob/main/docs/CONTRIBUTING.md).
* Documented "bright" colours in the README.

New Contributors
* buhtz made their first contribution in https://github.com/borntyping/python-colorlog/pull/131

**Full Changelog**: https://github.com/borntyping/python-colorlog/compare/v6.8.0...v6.8.2

6.8.0

What's Changed
* Remove universal wheel, python 2 is unsupported by gopackgo90 in https://github.com/borntyping/python-colorlog/pull/126
* Fix running tests in environment with NO_COLOR=1 by mgorny in https://github.com/borntyping/python-colorlog/pull/130

New Contributors
* gopackgo90 made their first contribution in https://github.com/borntyping/python-colorlog/pull/126
* mgorny made their first contribution in https://github.com/borntyping/python-colorlog/pull/130

**Full Changelog**: https://github.com/borntyping/python-colorlog/compare/v6.7.0...v6.8.0
Links

Update corner from 2.2.1 to 2.2.2.

Changelog

2.2.2

What's Changed
* Fixing infinite loop by dfm in https://github.com/dfm/corner.py/pull/154
* Added a reverse option to overplot_* by NeutralKaon in https://github.com/dfm/corner.py/pull/156
* Working to fix tests on CI by dfm in https://github.com/dfm/corner.py/pull/187
* download notebooks as .ipynb by Solosneros in https://github.com/dfm/corner.py/pull/188
* Add Returns block to main corner() docstring by adrn in https://github.com/dfm/corner.py/pull/190
* Proposed fix for title errorbars/quantiles bug  by jhmatthews in https://github.com/dfm/corner.py/pull/193
* Update corner hist2d to match axis background color by delinea in https://github.com/dfm/corner.py/pull/196
* Switching to using centralized packaging infrastructure by dfm in https://github.com/dfm/corner.py/pull/202
* Trying to silence font issues in docs by dfm in https://github.com/dfm/corner.py/pull/212
* Added option for log scaled axes. by castillohair in https://github.com/dfm/corner.py/pull/174
* Clarify support for using pandas column names as labels by zachjweiner in https://github.com/dfm/corner.py/pull/218
* Updated minimum python version and test outputs by dfm in https://github.com/dfm/corner.py/pull/221
* Fixing handling of range arugment when empty figure is provided by dfm in https://github.com/dfm/corner.py/pull/224
* Fixing outdated release workflow by dfm in https://github.com/dfm/corner.py/pull/227

New Contributors
* NeutralKaon made their first contribution in https://github.com/dfm/corner.py/pull/156
* pre-commit-ci made their first contribution in https://github.com/dfm/corner.py/pull/157
* Solosneros made their first contribution in https://github.com/dfm/corner.py/pull/188
* jhmatthews made their first contribution in https://github.com/dfm/corner.py/pull/193
* delinea made their first contribution in https://github.com/dfm/corner.py/pull/196
* castillohair made their first contribution in https://github.com/dfm/corner.py/pull/174
* zachjweiner made their first contribution in https://github.com/dfm/corner.py/pull/218

**Full Changelog**: https://github.com/dfm/corner.py/compare/v2.2.1...v2.2.2

2.2.2rc1

What's Changed
* Fixed infinite loop by dfm in https://github.com/dfm/corner.py/pull/154
* Fixed tests on CI by dfm in https://github.com/dfm/corner.py/pull/187
* Fixed title errorbars/quantiles bug  by jhmatthews in https://github.com/dfm/corner.py/pull/193
* Added a reverse option to overplot_* by NeutralKaon in https://github.com/dfm/corner.py/pull/156
* Added option to download notebooks as .ipynb by Solosneros in https://github.com/dfm/corner.py/pull/188
* Added `Returns` block to main corner() docstring by adrn in https://github.com/dfm/corner.py/pull/190
* Updated corner hist2d to match axis background color by delinea in https://github.com/dfm/corner.py/pull/196
* Switched to using centralized packaging infrastructure by dfm in https://github.com/dfm/corner.py/pull/202

New Contributors
* NeutralKaon made their first contribution in https://github.com/dfm/corner.py/pull/156
* pre-commit-ci made their first contribution in https://github.com/dfm/corner.py/pull/157
* Solosneros made their first contribution in https://github.com/dfm/corner.py/pull/188
* jhmatthews made their first contribution in https://github.com/dfm/corner.py/pull/193
* delinea made their first contribution in https://github.com/dfm/corner.py/pull/196

**Full Changelog**: https://github.com/dfm/corner.py/compare/v2.2.1...v2.2.2rc1
Links

Update emcee from 3.1.3 to 3.1.6.

The bot wasn't able to find a changelog for this release. Got an idea?

Links

Update joblib from 1.2.0 to 1.4.0.

Changelog

1.4.0

---------------------------

- Allow caching co-routines with `Memory.cache`.
https://github.com/joblib/joblib/pull/894

- Try to cast ``n_jobs`` to int in parallel and raise an error if
it fails. This means that ``n_jobs=2.3`` will now result in
``effective_n_jobs=2`` instead of failing.
https://github.com/joblib/joblib/pull/1539

- Ensure that errors in the task generator given to Parallel's call
are raised in the results consumming thread.
https://github.com/joblib/joblib/pull/1491

- Adjust codebase to NumPy 2.0 by changing ``np.NaN`` to ``np.nan``
and importing ``byte_bounds`` from ``np.lib.array_utils``.
https://github.com/joblib/joblib/pull/1501

- The parameter ``return_as`` in ``joblib.Parallel`` can now be set to
``generator_unordered``. In this case the results will be returned in the
order of task completion rather than the order of submission.
https://github.com/joblib/joblib/pull/1463

- dask backend now supports ``return_as=generator`` and
``return_as=generator_unordered``.
https://github.com/joblib/joblib/pull/1520

- Vendor cloudpickle 3.0.0 and end support for Python 3.7 which has
reached end of life.
https://github.com/joblib/joblib/pull/1487
https://github.com/joblib/joblib/pull/1515

1.3.2

---------------------------

- Fix a regression in ``joblib.Parallel`` introduced in 1.3.0 where
explicitly setting ``n_jobs=None`` was not interpreted as "unset".
https://github.com/joblib/joblib/pull/1475

- Fix a regression in ``joblib.Parallel`` introduced in 1.3.0 where
``joblib.Parallel`` logging methods exposed from inheritance to
``joblib.Logger`` didn't work because of missing logger
initialization.
https://github.com/joblib/joblib/pull/1494

- Various maintenance updates to the doc, the ci and the test.
https://github.com/joblib/joblib/pull/1480,
https://github.com/joblib/joblib/pull/1481,
https://github.com/joblib/joblib/pull/1476,
https://github.com/joblib/joblib/pull/1492

1.3.1

---------------------------

- Fix compatibility with python 3.7 by vendor loky 3.4.1
which is compatible with this version.
https://github.com/joblib/joblib/pull/1472

1.3.0

---------------------------

- Ensure native byte order for memmap arrays in ``joblib.load``.
https://github.com/joblib/joblib/issues/1353

- Add ability to change default Parallel backend in tests by setting the
``JOBLIB_TESTS_DEFAULT_PARALLEL_BACKEND`` environment variable.
https://github.com/joblib/joblib/pull/1356

- Fix temporary folder creation in `joblib.Parallel` on Linux subsystems on Windows
which do have `/dev/shm` but don't have the `os.statvfs` function
https://github.com/joblib/joblib/issues/1353

- Drop runtime dependency on ``distutils``. ``distutils`` is going away
in Python 3.12 and is deprecated from Python 3.10 onwards. This import
was kept around to avoid breaking scikit-learn, however it's now been
long enough since scikit-learn deployed a fixed (verion 1.1 was released
in May 2022) that it should be safe to remove this.
https://github.com/joblib/joblib/pull/1361

- A warning is raised when a pickling error occurs during caching operations.
In version 1.5, this warning will be turned into an error. For all other
errors, a new warning has been introduced: ``joblib.memory.CacheWarning``.
https://github.com/joblib/joblib/pull/1359

- Avoid (module, name) collisions when caching nested functions. This fix
changes the module name of nested functions, invalidating caches from
previous versions of Joblib.
https://github.com/joblib/joblib/pull/1374

- Add ``cache_validation_callback`` in :meth:`joblib.Memory.cache`, to allow
custom cache invalidation based on the metadata of the function call.
https://github.com/joblib/joblib/pull/1149

- Add a ``return_as`` parameter for ``Parallel``, that enables consuming
results asynchronously.
https://github.com/joblib/joblib/pull/1393,
https://github.com/joblib/joblib/pull/1458

- Improve the behavior of ``joblib`` for ``n_jobs=1``, with simplified
tracebacks and more efficient running time.
https://github.com/joblib/joblib/pull/1393

- Add the ``parallel_config`` context manager to allow for more fine-grained
control over the backend configuration. It should be used in place of the
``parallel_backend`` context manager. In particular, it has the advantage
of not requiring to set a specific backend in the context manager.
https://github.com/joblib/joblib/pull/1392,
https://github.com/joblib/joblib/pull/1457

- Add ``items_limit`` and ``age_limit`` in :meth:`joblib.Memory.reduce_size`
to make it easy to limit the number of items and remove items that have
not been accessed for a long time in the cache.
https://github.com/joblib/joblib/pull/1200

- Deprecate ``bytes_limit`` in ``Memory`` as this is not automatically enforced,
the limit can be directly passed to :meth:`joblib.Memory.reduce_size` which
needs to be called to actually enforce the limit.
https://github.com/joblib/joblib/pull/1447

- Vendor ``loky`` 3.4.0 which includes various fixes.
https://github.com/joblib/joblib/pull/1422

- Various updates to the documentation and to benchmarking tools.
https://github.com/joblib/joblib/pull/1343,
https://github.com/joblib/joblib/pull/1348,
https://

@pyup-bot
Copy link
Collaborator Author

pyup-bot commented Jun 1, 2024

Closing this in favor of #77

@pyup-bot pyup-bot closed this Jun 1, 2024
@AWehrhahn AWehrhahn deleted the pyup-scheduled-update-2024-05-01 branch June 1, 2024 15:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant