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 20 #194

Closed
wants to merge 248 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.3.0.

Changelog

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.0.

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]
Links

Update attrs from 23.1.0 to 23.2.0.

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

Links

Update autopep8 from 2.0.4 to 2.1.0.

Changelog

2.1.0

What's Changed
* migrate to pyproject.toml by hhatto in https://github.com/hhatto/autopep8/pull/705
* Revert "Update MANIFEST.in" by hhatto in https://github.com/hhatto/autopep8/pull/710
* run with pypy3.10 by hhatto in https://github.com/hhatto/autopep8/pull/711
* ISSUE_TEMPLATE: use "console" instead of non-existing "shell" syntax by emanuele6 in https://github.com/hhatto/autopep8/pull/714
* add 3.12, drop 3.7 by hhatto in https://github.com/hhatto/autopep8/pull/709
* tox: add python3.12 to test environments by mvo5 in https://github.com/hhatto/autopep8/pull/726
* async def function formatting by j-z10 in https://github.com/hhatto/autopep8/pull/728
* pyproject: support py3.12 via new version of pycodestyle by mvo5 in https://github.com/hhatto/autopep8/pull/730
* add: unit test for e501 with async def by hhatto in https://github.com/hhatto/autopep8/pull/729
* Update python versions by hhatto in https://github.com/hhatto/autopep8/pull/731
* add unit test for e501 not effected with f-string by hhatto in https://github.com/hhatto/autopep8/pull/732
* add dependabot alearts for GitHub Actions by hhatto in https://github.com/hhatto/autopep8/pull/733
* Bump actions/setup-python from 4 to 5 by dependabot in https://github.com/hhatto/autopep8/pull/737
* Bump actions/checkout from 3 to 4 by dependabot in https://github.com/hhatto/autopep8/pull/736
* Bump github/codeql-action from 2 to 3 by dependabot in https://github.com/hhatto/autopep8/pull/734
* update codecov action v4 by hhatto in https://github.com/hhatto/autopep8/pull/738
* Avoid lib2to3 (second challenge) by hhatto in https://github.com/hhatto/autopep8/pull/739

New Contributors
* emanuele6 made their first contribution in https://github.com/hhatto/autopep8/pull/714
* mvo5 made their first contribution in https://github.com/hhatto/autopep8/pull/726
* j-z10 made their first contribution in https://github.com/hhatto/autopep8/pull/728
* dependabot made their first contribution in https://github.com/hhatto/autopep8/pull/737

**Full Changelog**: https://github.com/hhatto/autopep8/compare/v2.0.4...v2.1.0
Links

Update Babel from 2.12.1 to 2.15.0.

Changelog

2.15.0

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

Python version support
~~~~~~~~~~~~~~~~~~~~~~

* Babel 2.15.0 will require Python 3.8 or newer. (:gh:`1048`)

Features
~~~~~~~~

* CLDR: Upgrade to CLDR 44 (:gh:`1071`) (akx)
* Dates: Support for the "fall back to short format" logic for time delta formatting (:gh:`1075`) (akx)
* Message: More versatile .po IO functions (:gh:`1068`) (akx)
* Numbers: Improved support for alternate spaces when parsing numbers (:gh:`1007`) (ronnix's first contribution)

Infrastructure
~~~~~~~~~~~~~~

* Upgrade GitHub Actions (:gh:`1054`) (cclauss's first contribution)
* The Unicode license is now included in `locale-data` and in the documentation (:gh:`1074`) (akx)

2.14.0

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

Upcoming deprecation
~~~~~~~~~~~~~~~~~~~~

* This version, Babel 2.14, is the last version of Babel to support Python 3.7.
Babel 2.15 will require Python 3.8 or newer.
* We had previously announced Babel 2.13 to have been the last version to support
Python 3.7, but being able to use CLDR 43 with Python 3.7 was deemed important
enough to keep supporting the EOL Python version for one more release.

Possibly backwards incompatible changes
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* ``Locale.number_symbols`` will now have first-level keys for each numbering system.
Since the implicit default numbering system still is ``"latn"``, what had previously
been e.g. ``Locale.number_symbols['decimal']`` is now ``Locale.number_symbols['latn']['decimal']``.
* Babel no longer directly depends on either ``distutils`` or ``setuptools``; if you had been
using the Babel setuptools command extensions, you would need to explicitly depend on ``setuptools`` –
though given you're running ``setup.py`` you probably already do.

Features
~~~~~~~~

* CLDR/Numbers: Add support of local numbering systems for number symbols by kajte in :gh:`1036`
* CLDR: Upgrade to CLDR 43 by rix0rrr in :gh:`1043`
* Frontend: Allow last_translator to be passed as an option to extract_message by AivGitHub in :gh:`1044`
* Frontend: Decouple `pybabel` CLI frontend from distutils/setuptools by akx in :gh:`1041`
* Numbers: Improve parsing of malformed decimals by Olunusib and akx in :gh:`1042`

Infrastructure
~~~~~~~~~~~~~~

* Enforce trailing commas (enable Ruff COM rule and autofix) by akx in :gh:`1045`
* CI: use GitHub output formats by akx in :gh:`1046`

2.13.1

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

This is a patch release to fix a few bugs.

Fixes
~~~~~

* Fix a typo in ``_locales_to_names`` by Dl84 in :gh:`1038` (issue :gh:`1037`)
* Fix ``setuptools`` dependency for Python 3.12 by opryprin in :gh:`1033`

2.13.0

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

Upcoming deprecation (reverted)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* It was previously announced that this version, Babel 2.13, would be the last version of
Babel to support Python 3.7. Babel 2.14 will still support Python 3.7.

Features
~~~~~~~~

* Add flag to ignore POT-Creation-Date for updates by joeportela in :gh:`999`
* Support 't' specifier in keywords by jeanas in :gh:`1015`
* Add f-string parsing for Python 3.12 (PEP 701) by encukou in :gh:`1027`

Fixes
~~~~~

* Various typing-related fixes by akx in :gh:`979`, in :gh:`978`, :gh:`981`,  :gh:`983`
* babel.messages.catalog: deduplicate _to_fuzzy_match_key logic by akx in :gh:`980`
* Freeze format_time() tests to a specific date to fix test failures by mgorny in :gh:`998`
* Spelling and grammar fixes by scop in :gh:`1008`
* Renovate lint tools by akx in :gh:`1017`, :gh:`1028`
* Use SPDX license identifier by vargenau in :gh:`994`
* Use aware UTC datetimes internally by scop in :gh:`1009`

New Contributors
~~~~~~~~~~~~~~~~

* mgorny made their first contribution in :gh:`998`
* vargenau made their first contribution in :gh:`994`
* joeportela made their first contribution in :gh:`999`
* encukou made their first contribution in :gh:`1027`
Links

Update backports.functools-lru-cache from 1.6.6 to 2.0.0.

Changelog

2.0.0

======

Features
--------

- Refreshed implementation from CPython.


Deprecations and Removals
-------------------------

- Drop support for Python 2 and require Python 3.8 or later. In most cases, users should rely on the 1.x releases for an implementation that runs on older Pythons. This 2.0 series provides minimal value for users of Python 3.3 and later except to provide packaging updates and possibly preview access to functionality on later Python versions.
Links

Update bcrypt from 4.0.1 to 4.1.3.

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

Links

Update beautifulsoup4 from 4.12.2 to 4.12.3.

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

Links

Update billiard from 4.1.0 to 4.2.0.

Changelog

4.2.0

--------------------
- Update process.py to close during join only if process has completed.
- Adjust the __repr__ in ApplyResult.
- Remove python 3.7 from CI.
- Added Python 3.12 support.
- Fixed (co_positions): resolve issue caused by absence co_positions (395).
- Fixed: Replaced mktemp usage for Python 3 from python 2.
- Changed nose test to pytest (397) in Integration test.
- Changed nose dependency for unit test (383).
Links

Update bitarray from 2.8.1 to 2.9.2.

Changelog

2.9.2

-------------------
* optimize initialization from strings by not constantly resizing buffer
* optimize `util.hex2ba()` and `util.base2ba()` by avoiding unnecessary
 copies
* optimize `util.base2ba()` and `util.ba2base()` for `n=16` (hexadecimal)

2.9.1

-------------------
* avoid buffer being unnecessarily initialized with 0s in several
 functions of the `bitarray.util` module
* fix `.count()` type hint in pyi-file
* improve testing

2.9.0

-------------------
* deprecate support for Python 2 - Python 2.7 support will be removed
 in bitarray version 3.0,
 see [roadmap](https://github.com/ilanschnell/bitarray#roadmap)
* `bitarray(n)` for integer initializer `n` will always return a bitarray
 of length `n` with all items initialized to `0`, see 212
* allow sub-bitarray in `.count()`, 212
* add `util.ones()`
* `.find()` and `.index()`: add keyword argument `right` for rightmost index
* `.itersearch()`: add start and stop argument, and keyword
 argument `right` (for descending order - starting with rightmost match)
* deprecate `util.rindex()` (will be removed in 3.0 release),
 use `.index(..., right=True)` instead
* deprecate `util.make_endian()` (will be removed in 3.0 release),
 use `bitarray(..., endian=...)` instead

2.8.5

-------------------
* speedup unaligned copies by always using word shifts (in combination
 with builtin byte swap 64 when available) when bit-endianness and
 machine byte-order are opposite
* add `HAVE_BUILTIN_BSWAP64` to header
* avoid misaligned pointers when casting to `(uint64_t *)`
* add tests

2.8.4

-------------------
* simplify `copy_n()` (remove special cases), see d2d6fd53
* add [word shift example C program](../examples/shift_r8.c),
 and simplify `shift_r8()`
* improve documentation and testing
* add [roadmap](https://github.com/ilanschnell/bitarray#roadmap)

2.8.3

-------------------
* ensure readonly attribute is set correctly when creating new objects,
 see 211
* optimize sparse bitarray compression for raw block type
* improve hash functions in Bloom filter example

2.8.2

-------------------
* update cibuildwheel to 2.16.1 in order to provide cp312 wheels on PyPI
* improve error messages for masked assignment
* simplify test collection
* added `pytest.ini` to allow running pytest with no additional arguments,
 see 208
* `util.sc_encode()`: avoid writing empty blocks at end of compressed
 stream, i.e. skip encoding when total population count is reached
Links

Update black from 23.9.1 to 24.4.2.

Changelog

24.4.2

This is a bugfix release to fix two regressions in the new f-string parser introduced in
24.4.1.

Parser

- Fix regression where certain complex f-strings failed to parse (4332)

Performance

- Fix bad performance on certain complex string literals (4331)

24.4.1

Highlights

- Add support for the new Python 3.12 f-string syntax introduced by PEP 701 (3822)

Stable style

- Fix crash involving indented dummy functions containing newlines (4318)

Parser

- Add support for type parameter defaults, a new syntactic feature added to Python 3.13
by PEP 696 (4327)

Integrations

- Github Action now works even when `git archive` is skipped (4313)

24.4.0

Stable style

- Fix unwanted crashes caused by AST equivalency check (4290)

Preview style

- `if` guards in `case` blocks are now wrapped in parentheses when the line is too long.
(4269)
- Stop moving multiline strings to a new line unless inside brackets (4289)

Integrations

- Add a new option `use_pyproject` to the GitHub Action `psf/black`. This will read the
Black version from `pyproject.toml`. (4294)

24.3.0

Highlights

This release is a milestone: it fixes Black's first CVE security vulnerability. If you
run Black on untrusted input, or if you habitually put thousands of leading tab
characters in your docstrings, you are strongly encouraged to upgrade immediately to fix
[CVE-2024-21503](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2024-21503).

This release also fixes a bug in Black's AST safety check that allowed Black to make
incorrect changes to certain f-strings that are valid in Python 3.12 and higher.

Stable style

- Don't move comments along with delimiters, which could cause crashes (4248)
- Strengthen AST safety check to catch more unsafe changes to strings. Previous versions
of Black would incorrectly format the contents of certain unusual f-strings containing
nested strings with the same quote type. Now, Black will crash on such strings until
support for the new f-string syntax is implemented. (4270)
- Fix a bug where line-ranges exceeding the last code line would not work as expected
(4273)

Performance

- Fix catastrophic performance on docstrings that contain large numbers of leading tab
characters. This fixes
[CVE-2024-21503](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2024-21503).
(4278)

Documentation

- Note what happens when `--check` is used with `--quiet` (4236)

24.2.0

Stable style

- Fixed a bug where comments where mistakenly removed along with redundant parentheses
(4218)

Preview style

- Move the `hug_parens_with_braces_and_square_brackets` feature to the unstable style
due to an outstanding crash and proposed formatting tweaks (4198)
- Fixed a bug where base expressions caused inconsistent formatting of \*\* in tenary
expression (4154)
- Checking for newline before adding one on docstring that is almost at the line limit
(4185)
- Remove redundant parentheses in `case` statement `if` guards (4214).

Configuration

- Fix issue where _Black_ would ignore input files in the presence of symlinks (4222)
- _Black_ now ignores `pyproject.toml` that is missing a `tool.black` section when
discovering project root and configuration. Since _Black_ continues to use version
control as an indicator of project root, this is expected to primarily change behavior
for users in a monorepo setup (desirably). If you wish to preserve previous behavior,
simply add an empty `[tool.black]` to the previously discovered `pyproject.toml`
(4204)

Output

- Black will swallow any `SyntaxWarning`s or `DeprecationWarning`s produced by the `ast`
module when performing equivalence checks (4189)

Integrations

- Add a JSONSchema and provide a validate-pyproject entry-point (4181)

24.1.1

Bugfix release to fix a bug that made Black unusable on certain file systems with strict
limits on path length.

Preview style

- Consistently add trailing comma on typed parameters (4164)

Configuration

- Shorten the length of the name of the cache file to fix crashes on file systems that
do not support long paths (4176)

24.1.0

Highlights

This release introduces the new 2024 stable style (4106), stabilizing the following
changes:

- Add parentheses around `if`-`else` expressions (2278)
- Dummy class and function implementations consisting only of `...` are formatted more
compactly (3796)
- If an assignment statement is too long, we now prefer splitting on the right-hand side
(3368)
- Hex codes in Unicode escape sequences are now standardized to lowercase (2916)
- Allow empty first lines at the beginning of most blocks (3967, 4061)
- Add parentheses around long type annotations (3899)
- Enforce newline after module docstrings (3932, 4028)
- Fix incorrect magic trailing comma handling in return types (3916)
- Remove blank lines before class docstrings (3692)
- Wrap multiple context managers in parentheses if combined in a single `with` statement
(3489)
- Fix bug in line length calculations for power operations (3942)
- Add trailing commas to collection literals even if there's a comment after the last
entry (3393)
- When using `--skip-magic-trailing-comma` or `-C`, trailing commas are stripped from
subscript expressions with more than 1 element (3209)
- Add extra blank lines in stubs in a few cases (3564, 3862)
- Accept raw strings as docstrings (3947)
- Split long lines in case blocks (4024)
- Stop removing spaces from walrus operators within subscripts (3823)
- Fix incorrect formatting of certain async statements (3609)
- Allow combining ` fmt: skip` with other comments (3959)

There are already a few improvements in the `--preview` style, which are slated for the
2025 stable style. Try them out and
[share your feedback](https://github.com/psf/black/issues). In the past, the preview
style has included some features that we were not able to stabilize. This year, we're
adding a separate `--unstable` style for features with known problems. Now, the
`--preview` style only includes features that we actually expect to make it into next
year's stable style.

Stable style

Several bug fixes were made in features that are moved to the stable style in this
release:

- Fix comment handling when parenthesising conditional expressions (4134)
- Fix bug where spaces were not added around parenthesized walruses in subscripts,
unlike other binary operators (4109)
- Remove empty lines before docstrings in async functions (4132)
- Address a missing case in the change to allow empty lines at the beginning of all
blocks, except immediately before a docstring (4130)
- For stubs, fix logic to enforce empty line after nested classes with bodies (4141)

Preview style

- Add `--unstable` style, covering preview features that have known problems that would
block them from going into the stable style. Also add the `--enable-unstable-feature`
flag; for example, use
`--enable-unstable-feature hug_parens_with_braces_and_square_brackets` to apply this
preview feature throughout 2024, even if a later Black release downgrades the feature
to unstable (4096)
- Format module docstrings the same as class and function docstrings (4095)
- Fix crash when using a walrus in a dictionary (4155)
- Fix unnecessary parentheses when wrapping long dicts (4135)
- Stop normalizing spaces before ` fmt: skip` comments (4146)

Configuration

- Print warning when configuration in `pyproject.toml` contains an invalid key (4165)
- Fix symlink handling, properly ignoring symlinks that point outside of root (4161)
- Fix cache mtime logic that resulted in false positive cache hits (4128)
- Remove the long-deprecated `--experimental-string-processing` flag. This feature can
currently be enabled with `--preview --enable-unstable-feature string_processing`.
(4096)

Integrations

- Revert the change to run Black's pre-commit integration only on specific git hooks
(3940) for better compatibility with older versions of pre-commit (4137)

23.12.1

Packaging

- Fixed a bug that included dependencies from the `d` extra by default (4108)

23.12.0

Highlights

It's almost 2024, which means it's time for a new edition of _Black_'s stable style!
Together with this release, we'll put out an alpha release 24.1a1 showcasing the draft
2024 stable style, which we'll finalize in the January release. Please try it out and
[share your feedback](https://github.com/psf/black/issues/4042).

This release (23.12.0) will still produce the 2023 style. Most but not all of the
changes in `--preview` mode will be in the 2024 stable style.

Stable style

- Fix bug where ` fmt: off` automatically dedents when used with the `--line-ranges`
option, even when it is not within the specified line range. (4084)
- Fix feature detection for parenthesized context managers (4104)

Preview style

- Prefer more equal signs before a break when splitting chained assignments (4010)
- Standalone form feed characters at the module level are no longer removed (4021)
- Additional cases of immediately nested tuples, lists, and dictionaries are now
indented less (4012)
- Allow empty lines at the beginning of all blocks, except immediately before a
docstring (4060)
- Fix crash in preview mode when using a short `--line-length` (4086)
- Keep suites consisting of only an ellipsis on their own lines if they are not
functions or class definitions (4066) (4103)

Configuration

- `--line-ranges` now skips _Black_'s internal stability check in `--safe` mode. This
avoids a crash on rare inputs that have many unformatted same-content lines. (4034)

Packaging

- Upgrade to mypy 1.7.1 (4049) (4069)
- Faster compiled wheels are now available for CPython 3.12 (4070)

Integrations

- Enable 3.12 CI (4035)
- Build docker images in parallel (4054)
- Build docker images with 3.12 (4055)

23.11.0

Highlights

- Support formatting ranges of lines with the new `--line-ranges` command-line option
(4020)

Stable style

- Fix crash on formatting bytes strings that look like docstrings (4003)
- Fix crash when whitespace followed a backslash before newline in a docstring (4008)
- Fix standalone comments inside complex blocks crashing Black (4016)
- Fix crash on formatting code like `await (a ** b)` (3994)
- No longer treat leading f-strings as docstrings. This matches Python's behaviour and
fixes a crash (4019)

Preview style

- Multiline dicts and lists that are the sole argument to a function are now indented
less (3964)
- Multiline unpacked dicts and lists as the sole argument to a function are now also
indented less (3992)
- In f-string debug expressions, quote types that are visible in the final string are
now preserved (4005)
- Fix a bug where long `case` blocks were not split into multiple lines. Also enable
general trailing comma rules on `case` blocks (4024)
- Keep requiring two empty lines between module-level docstring and first function or
class definition (4028)
- Add support for single-line format skip with other comments on the same line (3959)

Configuration

- Consistently apply force exclusion logic before resolving symlinks (4015)
- Fix a bug in the matching of absolute path names in `--include` (3976)

Performance

- Fix mypyc builds on arm64 on macOS (4017)

Integrations

- Black's pre-commit integration will now run only on git hooks appropriate for a code
formatter (3940)

23.10.1

Highlights

- Maintenance release to get a fix out for GitHub Action edge case (3957)

Preview style

- Fix merging implicit multiline strings that have inline comments (3956)
- Allow empty first line after block open before a comment or compound statement (3967)

Packaging

- Change Dockerfile to hatch + compile black (3965)

Integrations

- The summary output for GitHub workflows is now suppressible using the `summary`
parameter. (3958)
- Fix the action failing when Black check doesn't pass (3957)

Documentation

- It is known Windows documentation CI is broken
https://github.com/psf/black/issues/3968

23.10.0

Stable style

- Fix comments getting removed from inside parenthesized strings (3909)

Preview style

- Fix long lines with power operators getting split before the line length (3942)
- Long type hints are now wrapped in parentheses and properly indented when split across
multiple lines (3899)
- Magic trailing commas are now respected in return types. (3916)
- Require one empty line after module-level docstrings. (3932)
- Treat raw triple-quoted strings as docstrings (3947)

Configuration

- Fix cache versioning logic when `BLACK_CACHE_DIR` is set (3937)

Parser

- Fix bug where attributes named `type` were not accepted inside `match` statements
(3950)
- Add support for PEP 695 type aliases containing lambdas and other unusual expressions
(3949)

Output

- Black no longer attempts to provide special errors for attempting to format Python 2
code (3933)
- Black will more consistently print stacktraces on internal errors in verbose mode
(3938)

Integrations

- The action output displayed in the job summary is now wrapped in Markdown (3914)
Links

Update bleach from 6.0.0 to 6.1.0.

Changelog

6.1.0

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

**Backwards incompatible changes**

* Dropped support for Python 3.7. (709)

**Security fixes**

None

**Bug fixes**

* Add support for Python 3.12. (710)
* Fix linkify with arrays in querystring (436)
* Handle more cases with < followed by character data (705)
* Fix entities inside a tags in linkification (704)
* Update cap for tinycss2 to <1.3 (702)
* Updated Sphinx requirement
* Add dependabot for github actions and update github actions

<detai

Copy link

sweep-ai bot commented May 20, 2024

Sweep: PR Review

Sweep is currently reviewing your pr...

@pyup-bot
Copy link
Collaborator Author

Closing this in favor of #195

@pyup-bot pyup-bot closed this May 27, 2024
@thomas545 thomas545 deleted the pyup-scheduled-update-2024-05-20 branch May 27, 2024 20:51
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