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 weekly dependency update for week 25 #199

Closed
wants to merge 252 commits into from

Conversation

pyup-bot
Copy link
Collaborator

Update alabaster from 0.7.13 to 0.7.16.

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

Links

Update amqp from 5.1.1 to 5.2.0.

Changelog

5.2.0

=====
:release-date: 2023-11-06 10:55 A.M. UTC+6:00
:release-by: Asif Saif Uddin

- Added python 3.12 and drop python 3.7 (423).
- Test vine 5.1.0 (424).
- Set an explicit timeout on SSL handshake to prevent hangs.
- Add MessageNacked to recoverable errors.
- Send heartbeat frames more often.



.. _version-5.1.1:
Links

Update anyio from 4.0.0 to 4.4.0.

Changelog

4.4.0

- Added the ``BlockingPortalProvider`` class to aid with constructing synchronous
counterparts to asynchronous interfaces that would otherwise require multiple blocking
portals
- Added ``__slots__`` to ``AsyncResource`` so that child classes can use ``__slots__``
(`733 <https://github.com/agronholm/anyio/pull/733>`_; PR by Justin Su)
- Added the ``TaskInfo.has_pending_cancellation()`` method
- Fixed erroneous ``RuntimeError: called 'started' twice on the same task status``
when cancelling a task in a TaskGroup created with the ``start()`` method before
the first checkpoint is reached after calling ``task_status.started()``
(`706 <https://github.com/agronholm/anyio/issues/706>`_; PR by Dominik Schwabe)
- Fixed two bugs with ``TaskGroup.start()`` on asyncio:

* Fixed erroneous ``RuntimeError: called 'started' twice on the same task status``
 when cancelling a task in a TaskGroup created with the ``start()`` method before
 the first checkpoint is reached after calling ``task_status.started()``
 (`706 <https://github.com/agronholm/anyio/issues/706>`_; PR by Dominik Schwabe)
* Fixed the entire task group being cancelled if a ``TaskGroup.start()`` call gets
 cancelled (`685 <https://github.com/agronholm/anyio/issues/685>`_,
 `710 <https://github.com/agronholm/anyio/issues/710>`_)
- Fixed a race condition that caused crashes when multiple event loops of the same
backend were running in separate threads and simultaneously attempted to use AnyIO for
their first time (`425 <https://github.com/agronholm/anyio/issues/425>`_; PR by David
Jiricek and Ganden Schaffner)
- Fixed cancellation delivery on asyncio incrementing the wrong cancel scope's
cancellation counter when cascading a cancel operation to a child scope, thus failing
to uncancel the host task (`716 <https://github.com/agronholm/anyio/issues/716>`_)
- Fixed erroneous ``TypedAttributeLookupError`` if a typed attribute getter raises
``KeyError``
- Fixed the asyncio backend not respecting the ``PYTHONASYNCIODEBUG`` environment
variable when setting the ``debug`` flag in ``anyio.run()``
- Fixed ``SocketStream.receive()`` not detecting EOF on asyncio if there is also data in
the read buffer (`701 <https://github.com/agronholm/anyio/issues/701>`_)
- Fixed ``MemoryObjectStream`` dropping an item if the item is delivered to a recipient
that is waiting to receive an item but has a cancellation pending
(`728 <https://github.com/agronholm/anyio/issues/728>`_)
- Emit a ``ResourceWarning`` for ``MemoryObjectReceiveStream`` and
``MemoryObjectSendStream`` that were garbage collected without being closed (PR by
Andrey Kazantcev)
- Fixed ``MemoryObjectSendStream.send()`` not raising ``BrokenResourceError`` when the
last corresponding ``MemoryObjectReceiveStream`` is closed while waiting to send a
falsey item (`731 <https://github.com/agronholm/anyio/issues/731>`_; PR by Ganden
Schaffner)

4.3.0

- Added support for the Python 3.12 ``walk_up`` keyword argument in
``anyio.Path.relative_to()`` (PR by Colin Taylor)
- Fixed passing ``total_tokens`` to ``anyio.CapacityLimiter()`` as a keyword argument
not working on the ``trio`` backend
(`515 <https://github.com/agronholm/anyio/issues/515>`_)
- Fixed ``Process.aclose()`` not performing the minimum level of necessary cleanup when
cancelled. Previously:

- Cancellation of ``Process.aclose()`` could leak an orphan process
- Cancellation of ``run_process()`` could very briefly leak an orphan process.
- Cancellation of ``Process.aclose()`` or ``run_process()`` on Trio could leave
 standard streams unclosed

(PR by Ganden Schaffner)
- Fixed ``Process.stdin.aclose()``, ``Process.stdout.aclose()``, and
``Process.stderr.aclose()`` not including a checkpoint on asyncio (PR by Ganden
Schaffner)
- Fixed documentation on how to provide your own typed attributes

4.2.0

- Add support for ``byte``-based paths in ``connect_unix``, ``create_unix_listeners``,
``create_unix_datagram_socket``, and ``create_connected_unix_datagram_socket``. (PR by
Lura Skye)
- Enabled the ``Event`` and ``CapacityLimiter`` classes to be instantiated outside an
event loop thread
- Broadly improved/fixed the type annotations. Among other things, many functions and
methods that take variadic positional arguments now make use of PEP 646
``TypeVarTuple`` to allow the positional arguments to be validated by static type
checkers. These changes affected numerous methods and functions, including:

* ``anyio.run()``
* ``TaskGroup.start_soon()``
* ``anyio.from_thread.run()``
* ``anyio.from_thread.run_sync()``
* ``anyio.to_thread.run_sync()``
* ``anyio.to_process.run_sync()``
* ``BlockingPortal.call()``
* ``BlockingPortal.start_task_soon()``
* ``BlockingPortal.start_task()``

(also resolves `560 <https://github.com/agronholm/anyio/issues/560>`_)
- Fixed various type annotations of ``anyio.Path`` to match Typeshed:

* ``anyio.Path.__lt__()``
* ``anyio.Path.__le__()``
* ``anyio.Path.__gt__()``
* ``anyio.Path.__ge__()``
* ``anyio.Path.__truediv__()``
* ``anyio.Path.__rtruediv__()``
* ``anyio.Path.hardlink_to()``
* ``anyio.Path.samefile()``
* ``anyio.Path.symlink_to()``
* ``anyio.Path.with_segments()``

(PR by Ganden Schaffner)
- Fixed adjusting the total number of tokens in a ``CapacityLimiter`` on asyncio failing
to wake up tasks waiting to acquire the limiter in certain edge cases (fixed with help
from Egor Blagov)
- Fixed ``loop_factory`` and ``use_uvloop`` options not being used on the asyncio
backend (`643 <https://github.com/agronholm/anyio/issues/643>`_)
- Fixed cancellation propagating on asyncio from a task group to child tasks if the task
hosting the task group is in a shielded cancel scope
(`642 <https://github.com/agronholm/anyio/issues/642>`_)

4.1.0

- Adapted to API changes made in Trio v0.23:

- Call ``trio.to_thread.run_sync()`` using the ``abandon_on_cancel`` keyword argument
 instead of ``cancellable``
- Removed a checkpoint when exiting a task group
- Renamed the ``cancellable`` argument in ``anyio.to_thread.run_sync()`` to
 ``abandon_on_cancel`` (and deprecated the old parameter name)
- Bumped minimum version of Trio to v0.23
- Added support for voluntary thread cancellation via
``anyio.from_thread.check_cancelled()``
- Bumped minimum version of trio to v0.23
- Exposed the ``ResourceGuard`` class in the public API
(`627 <https://github.com/agronholm/anyio/issues/627>`_)
- Fixed ``RuntimeError: Runner is closed`` when running higher-scoped async generator
fixtures in some cases (`619 <https://github.com/agronholm/anyio/issues/619>`_)
- Fixed discrepancy between ``asyncio`` and ``trio`` where reraising a cancellation
exception in an ``except*`` block would incorrectly bubble out of its cancel scope
(`634 <https://github.com/agronholm/anyio/issues/634>`_)
Links

Update argh from 0.29.3 to 0.31.2.

Changelog

0.31.2

What's Changed

Bugs fixed:

- broken support for `Optional[List]` (but not `Optional[list]`), a narrower case of the problem fixed earlier (issue 216) by neithere, thanks to thorwhalen

Full changelog: https://argh.readthedocs.io/en/latest/changes.html

Full diff: https://github.com/neithere/argh/compare/v0.31.1...v0.31.2

0.31.1

*This text is a brief summary of the full changelog entry: https://argh.readthedocs.io/en/latest/changes.html#version-0-31-1-2024-01-19*

What's Changed

Bugs fixed:

- broken support for type alias `List` (issue 216), thanks to thorwhalen.

Enhancements:

- cleaned up the README, rearranged other documentation.

**Full diff**: https://github.com/neithere/argh/compare/v0.31.0...v0.31.1

0.31.0

What's Changed

This release is a major step forward for Argh. It paves the way to a fully annotations-driven approach where decorators will remain a mere legacy.

*This text is a brief summary of the full changelog entry: https://argh.readthedocs.io/en/latest/changes.html#version-0-31-0-2023-12-30*

Breaking changes:

* The typing hints introspection feature is automatically enabled for any command (function) which does **not** have any arguments specified via `arg` decorator.
* A small change in the legacy argument mapping policy `BY_NAME_IF_HAS_DEFAULT` concerning the order of variadic positional vs. keyword-only arguments.
* Removed the previously deprecated decorator `expects_obj`.

Enhancements:

* Type hints: basic usage to infer argument types (fixes 203) by neithere in https://github.com/neithere/argh/pull/211
* Support realtime output through a pipe (fixes 145) by neithere in https://github.com/neithere/argh/pull/202
* High-level functions `argh.dispatch_command()` and `argh.dispatch_commands()`
now accept a new parameter `old_name_mapping_policy`. 

Deprecated:

- the `namespace` argument in `argh.dispatch()` and `argh.parse_and_resolve()`.
Rationale: continued API cleanup.  It's already possible to mutate the
namespace object between parsing and calling the endpoint; it's unlikely that
anyone would need to specify a custom namespace class or pre-populate it
before parsing.  Please file an issue if you have a valid use case.

Other changes:

- Refactoring.

**Full Diff**: https://github.com/neithere/argh/compare/v0.30.5...v0.31.0

0.30.5

What's Changed
* fix: nargs + list as default value (212) by neithere in https://github.com/neithere/argh/pull/213
(thanks to pioio for bug report)
* feat: argspec guessing: if `nargs` is not specified but the default value is a list, `nargs="*"` is assumed and passed to argparse.

**Full Changelog**: https://github.com/neithere/argh/compare/v0.30.4...v0.30.5

Please refer to the official changelog for more details: https://argh.readthedocs.io/en/latest/changes.html

0.30.4

What's Changed

There were complaints about the lack of a deprecation cycle for the legacy name
mapping policy.  This version addresses the issue:

- The handling introduced in v.0.30.2 (raising an exception for clarity)
is retained for cases when no name mapping policy is specified but function
signature contains defaults in non-kwonly args **and kwonly args are also
defined**::

   def main(alpha, beta=1, *, gamma=2):   error — explicit policy required

In a similar case but when **kwonly args are not defined** Argh now assumes
the legacy name mapping policy (`BY_NAME_IF_HAS_DEFAULT`) and merely issues
a deprecation warning with the same message as the exception mentioned above::

   def main(alpha, beta=2):     `[-b BETA] alpha` + DeprecationWarning

This ensures that most of the old scripts still work the same way despite the
new policy being used by default and enforced in cases when it's impossible
to resolve the mapping conflict.

Please note that this "soft" handling is to be removed in version v0.33
(or v1.0 if the former is not deemed necessary).  The new name mapping policy
will be used by default without warnings, like in v0.30.

— by neithere 

**Full Changelog**: https://github.com/neithere/argh/compare/v0.30.3...v0.30.4

0.30.3

What's Changed
*  fix: regression — `arg` deco failing with underscore in positional arg name (fixes 208) by neithere in https://github.com/neithere/argh/pull/209 (thanks to kaetir for a report with a reproducible example)


**Full Changelog**: https://github.com/neithere/argh/compare/v0.30.2...v0.30.3

0.30.2

What's Changed
* fix: raise exception for non-migrated commands (fixes 206) by neithere (reported and valuable feedback given by valentin-feron) in https://github.com/neithere/argh/pull/207

**Full Changelog**: https://github.com/neithere/argh/compare/v0.30.1...v0.30.2

0.30.1

What's Changed

Bugs fixed:

- Regression: certain special values in argument default value would cause an exception (204 reported by mfussenegger, fixed by neithere)

Enhancements:

- Improved the tutorial by neithere 
- Added a more informative error message when the reason is likely to be related to the migration from Argh v0.29 to a version with a new argument name mapping policy by neithere 

Other changes:

- Added `py.typed` marker file for PEP-561 by neithere 

Details

Commits: https://github.com/neithere/argh/compare/v0.30.0...v0.30.1

Full changelog: https://argh.readthedocs.io/en/latest/changes.html#version-0-30-1

0.30.0

What's Changed
* Remove previously deprecated code (closes 184) by neithere in https://github.com/neithere/argh/pull/188
* Type annotations for existing code (closes 185) by neithere in https://github.com/neithere/argh/pull/189
* Deprecate `help` command alias and `expects_obj` decorator by neithere in https://github.com/neithere/argh/pull/192
* Document usage with class methods (closes 138) by neithere in https://github.com/neithere/argh/pull/194
* Remove pre_call, expose finer control over dispatching (re 63) by neithere in https://github.com/neithere/argh/pull/193
* Add support for Python 3.12 (closes 196) by neithere in https://github.com/neithere/argh/pull/195
* Refactor assembling module (closes 197) by neithere in https://github.com/neithere/argh/pull/198
* Keyword-only arguments as options (closes 191) by neithere in https://github.com/neithere/argh/pull/199

**Full Changelog**: https://github.com/neithere/argh/compare/v0.29.4...v0.30.0

0.30.0alpha

What's Changed
* Remove previously deprecated code (closes 184) by neithere in https://github.com/neithere/argh/pull/188
* Type annotations for existing code (closes 185) by neithere in https://github.com/neithere/argh/pull/189
* Deprecate `help` command alias and `expects_obj` decorator by neithere in https://github.com/neithere/argh/pull/192
* Document usage with class methods (closes 138) by neithere in https://github.com/neithere/argh/pull/194
* Remove pre_call, expose finer control over dispatching (re 63) by neithere in https://github.com/neithere/argh/pull/193
* Add support for Python 3.12 (closes 196) by neithere in https://github.com/neithere/argh/pull/195
* Refactor assembling module (closes 197) by neithere in https://github.com/neithere/argh/pull/198
* Keyword-only arguments as options (closes 191) by neithere in https://github.com/neithere/argh/pull/199

**Full Changelog**: https://github.com/neithere/argh/compare/v0.29.4...v0.30.0-alpha

0.29.4

Bugs fixed:

- Test coverage reported as <100% when argcomplete is installed (187)
Links

Update arrow from 1.2.3 to 1.3.0.

Changelog

1.3.0

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

- [ADDED] Added official support for Python 3.11 and 3.12.
- [ADDED] Added dependency on ``types-python-dateutil`` to improve Arrow mypy compatibility. `PR 1102 <https://github.com/arrow-py/arrow/pull/1102>`_
- [FIX] Updates to Italian, Romansh, Hungarian, Finish and Arabic locales.
- [FIX] Handling parsing of UTC prefix in timezone strings.
- [CHANGED] Update documentation to improve readability.
- [CHANGED] Dropped support for Python 3.6 and 3.7, which are end-of-life.
- [INTERNAL] Migrate from ``setup.py``/Twine to ``pyproject.toml``/Flit for packaging and distribution.
- [INTERNAL] Adopt ``.readthedocs.yaml`` configuration file for continued ReadTheDocs support.
Links

Update asgiref from 3.7.2 to 3.8.1.

Changelog

3.8.1

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

* Fixes a regression in 3.8.0 affecting nested task cancellation inside
sync_to_async.

3.8.0

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

* Adds support for Python 3.12.

* Drops support for (end-of-life) Python 3.7.

* Fixes task cancellation propagation to subtasks when using synchronous Django
middleware.

* Allows nesting ``sync_to_async`` via ``asyncio.wait_for``.

* Corrects WSGI adapter handling of root path.

* Handles case where `"client"` is ``None`` in WsgiToAsgi adapter.
Links

Update astroid from 2.15.6 to 3.2.2.

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

Links

Update astropy from 5.3.3 to 6.1.1.

Changelog

6.1.1

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


Bug Fixes
---------

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

- Let fitsdiff compare files with lower case HIERARCH keywords [16357]

- Fix writing a ``HDUList`` to file when numpy 2 is installed and at least some of
the data is represented as dask arrays. [16384]

- Fix display of diff reports with numpy 2. [16426]

- Ensure that also zero-length tables preserve whether integer data are
signed or unsigned. [16505]

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

- Fix YAML table serialization compatibility with numpy 2. [16416]

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

- Fix bugs in io.votable related to numpy 2's representation of scalars. [16442]

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

- Ensure that return types from ``sigma_clip`` ``cenfunc`` and ``stdfunc``
are np.float64 for scalar values. [16431]

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

- Ensure structured ``MaskedColumn`` are serialized correctly, including
the mask. [16380]

- Fix problems converting Pandas Series to ``Table`` with numpy >=2.0. [16439]

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

- Ensure Time in ymdhms format can also be serialized to files as part of a
table if it is masked. [16380]

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

- Ensure Masked versions of ``np.recarray`` will show the correct class
name of ``MaskedRecarray`` in their ``repr``, and that they will be
serialized correctly if part of a table. [16380]

- Fix bugs with how masked structured arrays were represented with numpy 2. [16443]

- ``MaskedQuantity`` now works properly with ``np.block``. [16499]

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

- Fix a bug where ``WCSAxes`` could be missing negative signs on axis labels when using matplotlib's ``usetex`` mode. [16406]

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

- Fix compilation with gcc 14, avoid implicit pointer conversions. [16450]


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

- Updated bundled WCSLIB version to 8.3. This update changes the behavior of
various ``*set`` functions in order to improve stability of WCSLIB in threaded
applications. For a full list of changes - see ``astropy/cextern/wcslib/CHANGES``. [16451]

6.1.0

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

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

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

- ``BaseCoordinateFrame`` now has a ``position_angle()`` method, which is the
same as the ``position_angle`` method of ``SkyCoord`` instances. [15737]

- By default the ``SkyCoord`` and ``BaseCoordinateFrame`` ``separation()``
methods now emit a warning if they have to perform a coordinate transformation
that is not a pure rotation to inform the user that the angular separation can
depend on the direction of the transformation.
It is possible to modify this behaviour with the new optional keyword-only
``origin_mismatch`` argument.
Specifying ``origin_mismatch="ignore"`` allows any transformation to
succeed without warning, which has been the behaviour so far.
``origin_mismatch="error"`` forbids all transformations that are not
pure rotations. [16246]

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

- Clearer error message in reading ASCII tables when there is
a mismatch between converter type and column type. [15991]

astropy.io.registry
^^^^^^^^^^^^^^^^^^^

- The module ``astropy.io.typing`` has been added to provide type annotations for
I/O-related functionality. [15916]

astropy.samp
^^^^^^^^^^^^

- SAMP web profile CORS HTTP server implements `Private Network Access proposal <https://wicg.github.io/private-network-access>`_. [#16193]

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

- ``Table`` now has a ``setdefault()`` method, analogous to
``dict.setdefault()``. [16188]

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

- Added a new module ``astropy.units.typing`` that provides support for type annotations related to
``astropy.units``. [15860]

- Added a new CGS unit Oersted. [15962]

- Added "surface brightness", "surface brightness wav", "photon surface brightness", and "photon surface brightness wav" to recognized physical types. [16032]

- Added magnetic helicity as a physical type. [16101]

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

- For gufuncs on ``Masked`` instances, add support for the ``axes`` argument. [16121]

- ``Masked`` instances now support the various numpy array set operations, such
as ``np.unique`` and ``np.isin``. [16224]

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

- Added support for slicing WCS objects containing ``cpdis`` or ``det2im`` distortions, which previously were ignored. [16163]


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

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

- The ``astropy.coordinates.transformations`` module has been refactored into a module.
There should be no user-visible changes, but if you notice any, please open an
Issue. [15895]

- Changed the default value of the ``copy`` argument in
``astropy.coordinates.representation.CylindricalDifferential.__init__`` from
``False`` to ``True``, which is the intended behaviour for all subclasses of
``astropy.coordinates.representation.BaseDifferential``. [16198]

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

- ``Cosmology`` and its subclasses are now frozen ``dataclass`` objects. [15484]

- The argument ``verbose`` in the function ``z_at_value`` is now keyword-only. [15855]

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

- The ``io.ascii`` Python and C table readers were updated to use a 64-bit integer field by
default when reading a column of integer numeric data. This changes the default behavior
on Windows and potentially 32-bit architectures. Previously on those platforms, table
columns with any long integers which overflowed the 32-bit integer would be returned
as string columns. The new default behavior is consistent with ``numpy`` v2 and ``pandas``. [16005]

- The parallel fast-reader parser for reading ASCII files has been removed.
Since astropy v4.0.4 requesting this option has issued a warning that
this option is broken and that the serial parser will be used.
The ``parallel`` key in the ``fast_reader`` argument for reading
ASCII tables is no longer available. [16103]

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

- ``show_in_notebook`` is deprecated and it is recommended to use dedicated
tools in the Jupyter ecosystem to create interactive plots in notebooks. [15905]

- A warning is now emitted when ``Quantity`` values are inserted into empty ``Column`` objects
via ``Table.insert_row`` or ``Table.add_row``. [16038]

- ``show_in_browser`` is deprecated (pending feedback from the community).
Please use https://github.com/astropy/astropy/issues/16067 if you are
actively using the function. [16068]

- ``TableColumns.setdefault()``  and ``TableColumns.update()`` methods (which
would typically be called as ``Table.columns.setdefault()`` and
``Table.columns.update()``) have been deprecated because they can easily
corrupt the ``Table`` instance the ``TableColumns`` instance is attached to.
The ``Table.setdefault()`` and ``Table.update()`` methods are safe. [16154]

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

- ``TIME_FORMATS`` and ``TIME_DELTA_FORMATS`` in ``astropy.time.formats``
are changed from ``OrderedDict`` to Python ``dict``. [15491]

- A ``FutureWarning`` is now emitted when mutating ``Time.location`` post-initialization. [16063]

- Following the removal of ``np.ndarray.ptp`` in Numpy v2, ``Time.ptp`` is now
deprecated in favor of ``np.ptp``. [16212]

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

- If any iterable such as a list of tuple was input to ``Quantity``, a check was
done to see if they contained only quantities, and, if so, the quantities were
concatenated.  This makes sense for list and tuple, but is not necessarily
logical for all iterables and indeed was broken for those that do not have a
length (such as ``array_api`` array instances). Hence, the check will now be
done only for values where it makes sense, i.e., instances of list and tuple. [15752]

- Units now exposes ``get_converter`` which returns a function that
will convert a scalar or array from one unit to another. This can be
useful to speed up code that converts many quantities with the same
unit to another one, especially if the quantity has not many elements,
so that the overhead of creating a conversion function is relatively large. [16139]

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

- Deprecate importing ``ErfaError`` and ``ErfaWarning`` from ``astropy.utils.exceptions``.
They should be imported directly from ``erfa`` instead. [15777]

- ``introspection.isinstancemethod()`` and ``introspection.find_mod_objs()`` are
deprecated. [15934]

- ``astropy.utils.console.terminal_size`` is now deprecated in favour of
``shutil.get_terminal_size`` from the standard library. [16045]

- ``indent()`` is deprecated.
Use ``textwrap.indent()`` from Python standard library instead. [16223]

- Unmasked ``Masked`` scalar instances are now considered hashable, to match the
implicit behaviour of regular arrays, where if an operation leads to a scalar,
a hashable array scalar is returned. [16224]

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

- Renamed the ``min_cut`` and ``max_cut`` keywords in ``simple_norm`` and
``fits2bitmap`` to ``vmin`` and ``vmax``. The old names are deprecated. [15621]

- If ``vmin == vmax``, the ``ImageNormalize`` class now maps the input
data to 0. If ``vmin > vmax``, the ``ImageNormalize`` class now raises a
``ValueError``. [15622]


Bug Fixes
---------

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

- Avoid a segfault when calling ``astropy.convolution.convolve`` on an empty array.
An exception is now raised instead. [15840]

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

- Previously passing a ``SkyCoord`` instance to the ``BaseCoordinateFrame``
``separation()`` or ``separation_3d()`` methods could produce wrong results,
depending on what additional frame attributes were defined on the ``SkyCoord``,
but now ``SkyCoord`` input can be used safely. [15659]

- ``Distance`` now accepts as ``parallax`` any angle-like value.
This includes types like ``Column`` which have a unit but are not ``Quantity`` subclasses. [15712]

- The new default for the class method ``SkyCoord.from_name()``
is to look for coordinates first in SIMBAD, then in NED, and then in VizieR,
instead of having no specific order. [16046]

- Fix ``Angle.to_string()`` for angles in degrees represented in 'hms' and angles in hours represented in 'dms'. [16085]

- Fix a bug where ``SkyCoord.spherical_offsets_by`` would crash when a wrap
was needed. [16241]

- ``search_around_3d()`` now always raises a ``UnitConversionError`` if the units
of the distances in ``coord1`` and ``coord2`` and the unit of ``distlimit`` do
not agree.
Previously the error was not raised if at least one of the coordinates was
empty. [16280]

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

- Fixed a bug where the attribute ``ParametersAttribute.attr_name`` could be None
instead of a string. [15882]

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

- Reading of CDS header files with multi-line descriptions where the continued line started with a number was broken. This is now fixed. [15617]

- Ensure that the names of mixin columns are properly propagated as
labels for the MRT format. [15848]

- Fixed reading IPAC tables for ``long`` column type on some platforms, e.g., Windows. [16005]

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

- Avoid ``WinError 1455`` in opening some large files with memory
mapping on windows. [15388]

- Fix TDISP parsing for floating numbers. [16007]

- Fix a crash when calling FITS ``writeto`` methods with stdout as the output stream. [16008]

- Fix TDISP parsing for floating numbers in formats ES / EN. [16015]

- Fix conversion of ``Table`` to ``BinTableHDU`` with ``character_as_bytes=True``. [16358]

- Improved error message when instantiating a fits table with an ill-formed array. [16363]

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

- Reading an empty table stored in parquet format now creates an empty
table instead of raising an unexpected error. [16237]

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

- When reading a VOTable, if some user-requested columns were not present then the
resulting error message previously listed all the requested column names.
Now only columns that are actually missing are shown. [15956]

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

- Fix a spurious warning when calling ``sigma_clipped_stats`` on a ``MaskedColumn``. [15844]

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

- Fix a Table bug when setting items (via slice or index list) in a ``bytes`` type
``MaskedColumn`` would cause the column mask to be set to all ``False``. A common way to
trigger this bug was reading a FITS file with masked string data and then sorting the
table. [15669]

- Fix slicing logic for Row.
Previously, slicing a ``astropy.table.row.Row`` object would incorrectly return a column,
now it correctly returns a list of values from that row. [15733]

- Fix a ``ValueError`` raised by ``table.join`` when fed with large tables.
This would typically happen in situations when the result joined table would be
too large to fit in memory. In those situations, the error message is now much more
clearly about the necessary memory size. [15734]

- Fix an unintended exception being raised when attempting to compare two unequal ``Table`` instances. [15845]

- Ensure that if a ``Column`` is initialized with a ``Quantity`` it will use by
default a possible name defined on the quantity's ``.info``. [15848]

- Fix a bug where columns with ``dtype=object`` wouldn't be properly deep-copied using ``copy.deepcopy``. [15871]

- Fix ``hasattr(Table, "iloc")`` raising an exception, preventing use of tables e.g. with scikit-learn. [15913]

- Calling ``Table.group_by`` on an empty table no longer raises an exception. [16093]

- The unit conversion ``convert_unit_to`` with MaskedColumn was
broken as it was storing the old unit in a dictionary attached
to underlying np.ma.MaskedArray. This fixes it by overwriting
the old unit after unit conversion. [16118]

- ``astropy.table.vstack`` will no longer modify the input list even when it
contains non-Table objects like ``astropy.table.Row``. [16130]

- Update old dataTables.js version.
This should not affect the end user. [16315]

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

- Fix comparing NaN ``Quantity`` with ``TimeDelta`` object. [15830]

- Scalar ``Time`` instances are now hashable if they are not masked, also if one
uses ``Masked`` internally, matching the behaviour prior to astropy 6.0 (and
the current behaviour when masking using ``np.ma.MaskedArray``). [16224]

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

- Fix rare signature incompatibilities between helper and helped array functions.
Most involve cases where the corresponding numpy function has had its
arguments renamed between numpy versions. Since all those generally changed
the first arguments, which are typically passed as positional arguments,
this should not affect user code.
Affected functions:
- ``numpy.array_str``
- ``numpy.choose``
- ``numpy.convolve``
- ``numpy.correlate``
- ``numpy.histogram``
- ``numpy.histogramdd``
- ``numpy.histogram2d``
- ``numpy.isin``
- ``numpy.inner``
- ``numpy.nanmedian``
- ``numpy.unique``
- ``numpy.matrix_rank``
- ``numpy.unwrap``
- ``numpy.vdot``
- ``numpy.lib.recfunctions.unstructured_to_structured`` [15710]

- Fix an issue with unicode string representations of units shown as
superscripts (like degree) when raised to some power. Like for
LaTeX representations, now the superscript unicode character is
replaced by the literal short name before adding the power. [15755]

- Fix a missing ``Sun`` unit in the list of VOUnits simple_units. [15832]

- Fix an unhelpful ``TypeError`` when attempting truediv, ``lshift`` (``<<``) or ``mul`` (``*``) or ``truediv`` (``/``) with a ``Unit`` for right operand and a numpy array with non-numerical dtype for left operand. [15883]

- Fix write/read roundtrips with empty ``Table`` dumped to ECSV. [15885]

- Fix a bug where LaTeX formatter would return empty strings for unity (1) input. [15923]

- Fix extraneous space in LaTeX repr for ``Quantity`` objects with superscript
units (e.g. angles or temperatures in degree Celsius). [16043]

- Ensure powers of units are consistently as simple as possible. So, an
integer if possible, otherwise a float, or a fraction if the float is
really close to that. This also ensures the hash of a unit is unique
for any given unit (previously, the same power could be represented as
float, int or fraction, which made the hash different). [16058]

- Ensure that ``find_equivalent_units`` only returns actual units, not units
that raised to some power match the requested one.  With this fix,
``(u.m**-3).find_equivalent_units()`` properly finds nothing, rather than all
units of length. [16127]

- Using a dimensionless ``Quantity`` as an exponent works anew.
In astropy 6.0.1 an exception was erroneously raised. [16261]

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

- Fix rare signature incompatibilities between helper and helped array functions.
These typically cover corner cases and should not affect user code.
Some arguments weren't being re-exposed correctly or at all, depending on
numpy's version.
Affected functions:
- ``numpy.broadcast_arrays``
- ``numpy.median``
- ``numpy.quantile``
- ``numpy.empty_like``
- ``numpy.ones_like``
- ``numpy.zeros_like``
- ``numpy.full_like`` [16025]

- Fix a bug where ``astropy.utils.console.Spinner`` would leak newlines for
messages longer than terminal width. [16040]

- Update ``report_diff_values`` so the diff no longer depends on the
console terminal size. [16065]

- Fix support in ``Masked`` for generalized ufuncs with more than a
single core dimension (such as ``erfa.rxp``). [16120]

- ``Masked`` array instances now deal more properly with structured dtypes,
combining field masks to get element masks for generalized ufuncs, and
allowing ``.view()`` any time the mask can be viewed as well. This allows a
larger number of ``erfa`` routines to work with masked data. [16125]

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

- ``WCSAxes`` will correctly set certain defaults when ``wcs.world_axis_physical_types`` contains ``custom:`` prefixes. [15626]

- Fix an edge case where ``quantity_support`` would produce duplicate tick labels for small data ranges. [15841]

- Fix a bug where ``AngleFormatterLocator`` and ``ScalarFormatterLocator`` wouldn't respect matplotlib.rc's ``axes.unicode_minus`` parameter. [15902]

- Fixed a bug in ``CoordinateHelper.grid`` method to properly handle ``draw_grid=False`` and ``draw_grid=None``,
ensuring grid lines are controlled correctly even when not explicitly called. [15985]

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

- Updated bundled WCSLIB version to 8.2.2. This update fixes character buffer
overflows in the comment string for the longitude and latitude axes triggered
by some projections in ``wcshdo()``, and also the formatting for generic
coordinate systems. For a full list of changes - see
http://www.atnf.csiro.au/people/mcalabre/WCS/CHANGES or
``astropy/cextern/wcslib/CHANGES`` [15795]

- Fixed a bug in ``fit_wcs_from_points`` that does not set the default value of the ``cdelt`` of the returned WCS object. [16027]

- Fixed a bug in ``DistortionLookupTable`` (which implements ``cpdis`` and ``det2im`` projection corrections to a WCS) in which image pixels received an incorrect distortion value, from a location in the lookup table incorrectly offset by about 1 table pixel. [16163]


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

- Update minimum supported Python version to 3.10 [15603]

- The minimum required NumPy version is now 1.23 and the minimum required SciPy version is 1.8. [15706]

- Fix loading parser tabs on pyc-only installations.

Fix a bug in the wrappers for the lex and yacc wrappers that are
used for parsing Astropy units so that they work on pyc-only
installations.

According to the Python module loading
`flow chart <https://peps.python.org/pep-3147/#flow-chart>`_, when evaluating
``import foo`` and ``foo.py`` is not found, Python then reads ``foo.pyc``.

One can take advantage of this fact to strip source files and leave only Python
bytecode files for deployment inspace-constrained execution environments such
as AWS Lambda. Astropy is now compatible with pyc-only deployments. [16159]

- Change the default value of ``copy`` arguments in public APIs from ``False`` to
``None`` if Numpy 2.0 or newer is installed.
For details, see the "Copy semantics" section on the What's New page for Astropy 6.1 . [16181]

- astropy is now compiled against NumPy 2.0, enabling runtime compatibility
with this new major release. Compatibility with NumPy 1.23 and newer
versions of NumPy 1.x is preserved through this change. [16252]

6.0.1

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

Bug Fixes
---------

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

- Previously passing a ``SkyCoord`` instance to the ``BaseCoordinateFrame``
``separation()`` or ``separation_3d()`` methods could produce wrong results,
depending on what additional frame attributes were defined on the ``SkyCoord``,
but now ``SkyCoord`` input can be used safely. [15659]

- ``Distance`` now accepts as ``parallax`` any angle-like value.
This includes types like ``Column`` which have a unit but are not ``Quantity`` subclasses. [15712]

- The new default for the class method ``SkyCoord.from_name()``
is to look for coordinates first in SIMBAD, then in NED, and then in VizieR,
instead of having no specific order. [16046]

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

- Reading of CDS header files with multi-line descriptions where the continued line started with a number was broken. This is now fixed. [15617]

- Ensure that the names of mixin columns are properly propagated as
labels for the MRT format. [15848]

- Fixed reading IPAC tables for ``long`` column type on some platforms, e.g., Windows. [15992]

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

- Fix TDISP parsing for floating numbers. [16007]

- Fix a crash when calling FITS ``writeto`` methods with stdout as the output stream. [16008]

- Fix TDISP parsing for floating numbers in formats ES / EN. [16015]

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

- Fix a spurious warning when calling ``sigma_clipped_stats`` on a ``MaskedColumn``. [15844]

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

- Fix a Table bug when setting items (via slice or index list) in a ``bytes`` type
``MaskedColumn`` would cause the column mask to be set to all ``False``. A common way to
trigger this bug was reading a FITS file with masked string data and then sorting the
table. [15669]

- Fix slicing logic for Row.
Previously, slicing a ``astropy.table.row.Row`` object would incorrectly return a column,
now it correctly returns a list of values from that row. [15733]

- Fix a ``ValueError`` raised by ``table.join`` when fed with large tables.
This would typically happen in situations when the result joined table would be
too large to fit in memory. In those situations, the error message is now much more
clearly about the necessary memory size. [15734]

- Fix an unintended exception being raised when attempting to compare two unequal ``Table`` instances. [15845]

- Ensure that if a ``Column`` is initialized with a ``Quantity`` it will use by
default a possible name defined on the quantity's ``.info``. [15848]

- The unit conversion ``convert_unit_to`` with MaskedColumn was
broken as it was storing the old unit in a dictionary attached
to underlying np.ma.MaskedArray. This fixes it by overwriting
the old unit after unit conversion. [16118]

- ``astropy.table.vstack`` will no longer modify the input list even when it
contains non-Table objects like ``astropy.table.Row``. [16130]

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

- Fix an issue with unicode string representations of units shown as
superscripts (like degree) when raised to some power. Like for
LaTeX representations, now the superscript unicode character is
replaced by the literal short name before adding the power. [15755]

- Fix a missing ``Sun`` unit in the list of VOUnits simple_units. [15832]

- Fix write/read roundtrips with empty ``Table`` dumped to ECSV. [15885]

- Fix a bug where LaTeX formatter would return empty strings for unity (1) input. [15923]

- Ensure powers of units are consistently as simple as possible. So, an
integer if possible, otherwise a float, or a fraction if the float is
really close to that. This also ensures the hash of a unit is unique
for any given unit (previously, the same power could be represented as
float, int or fraction, which made the hash different). [16058]

- Ensure that ``find_equivalent_units`` only returns actual units, not units
that raised to some power match the requested one.  With this fix,
``(u.m**-3).find_equivalent_units()`` properly finds nothing, rather than all
units of length. [16127]

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

- Fix a bug where ``astropy.utils.console.Spinner`` would leak newlines for
messages longer than terminal width. [16040]

- Update ``report_diff_values`` so the diff no longer depends on the
console terminal size. [16065]

- Fix support in ``Masked`` for generalized ufuncs with more than a
single core dimension (such as ``erfa.rxp``). [16120]

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

- Fix an edge case where ``quantity_support`` would produce duplicate tick labels for small data ranges. [15841]

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

- Updated bundled WCSLIB version to 8.2.2. This update fixes character buffer
overflows in the comment string for the longitude and latitude axes triggered
by some projections in ``wcshdo()``, and also the formatting for generic
coordinate systems. For a full list of changes - see
http://www.atnf.csiro.au/people/mcalabre/WCS/CHANGES or
``astropy/cextern/wcslib/CHANGES`` [15795]

- Fixed a bug in ``fit_wcs_from_points`` that does not set the default value of the ``cdelt`` of the returned WCS object. [16027]

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

- Given the potential breaking changes with the upcoming Numpy 2.0 release,
this release pins Numpy<2.0 and support for Numpy 2.0 will be added in the
v6.1.0 release.

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

@pyup-bot
Copy link
Collaborator Author

pyup-bot commented Jul 1, 2024

Closing this in favor of #200

@pyup-bot pyup-bot closed this Jul 1, 2024
@thomas545 thomas545 deleted the pyup-scheduled-update-2024-06-24 branch July 1, 2024 20:50
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.

None yet

1 participant