Skip to content

chore(deps): update all non-major dependencies#249

Open
renovate[bot] wants to merge 1 commit intomainfrom
renovate/all-minor-patch
Open

chore(deps): update all non-major dependencies#249
renovate[bot] wants to merge 1 commit intomainfrom
renovate/all-minor-patch

Conversation

@renovate
Copy link
Contributor

@renovate renovate bot commented May 8, 2025

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Change Age Confidence Type Update
anywidget ==0.9.18==0.9.21 age confidence project.optional-dependencies patch
anywidget ==0.9.18==0.9.21 age confidence patch
asttokens ==3.0.0==3.0.1 age confidence patch
babel (source) ==2.17.0==2.18.0 age confidence minor
black (changelog) ==25.1.0==25.12.0 age confidence minor
certifi ==2025.4.26==2025.11.12 age confidence minor
charset-normalizer (changelog) ==3.4.2==3.4.4 age confidence patch
click (changelog) ==8.1.8==8.3.1 age confidence minor
comm ==0.2.2==0.2.3 age confidence patch
docutils (changelog) ==0.21.2==0.22.4 age confidence minor
executing ==2.2.0==2.2.1 age confidence patch
idna (changelog) ==3.10==3.11 age confidence minor
iniconfig ==2.1.0==2.3.0 age confidence minor
ipython ==9.2.0==9.10.0 age confidence minor
ipywidgets ==8.1.7==8.1.8 age confidence patch
isort (changelog) ==6.0.1==6.1.0 age confidence minor
jupyterlab-widgets ==3.0.15==3.0.16 age confidence patch
markupsafe (changelog) ==3.0.2==3.0.3 age confidence patch
matplotlib-inline ==0.1.7==0.2.1 age confidence minor
numpy (changelog) ==2.2.5==2.4.2 age confidence minor
orjson (changelog) ==3.10.18==3.11.7 age confidence minor
parso ==0.8.4==0.8.5 age confidence patch
platformdirs (changelog) ==4.3.7==4.5.1 age confidence minor
pluggy ==1.5.0==1.6.0 age confidence minor
prompt-toolkit ==3.0.51==3.0.52 age confidence patch
psygnal ==0.13.0==0.15.1 age confidence minor
pygments (changelog) ==2.19.1==2.19.2 age confidence patch
pyjwt ==2.10.1==2.11.0 age confidence minor
pytest (changelog) ==8.3.5==8.4.2 age confidence minor
python 3.113.14 age confidence uses-with minor
python 3.133.14 age confidence uses-with minor
sphinx-autodoc-typehints (changelog) ==3.2.0==3.6.2 age confidence project.optional-dependencies minor
sphinx-autodoc-typehints (changelog) ==3.2.0==3.6.2 age confidence minor
sphinx-rtd-theme ==3.0.2==3.1.0 age confidence minor
typing-extensions (changelog) ==4.13.2==4.15.0 age confidence minor
wcwidth ==0.2.13==0.6.0 age confidence minor
widgetsnbextension ==4.0.14==4.0.15 age confidence patch

Release Notes

manzt/anywidget (anywidget)

v0.9.21

Compare Source

Patch Changes
  • Use rsbuild inline sourcemaps for JupyterLab extension (#​909)

    JupyterLab was refusing to load external source map files because they were
    being served with the wrong MIME type ('application/octet-stream' instead of
    the expected source map MIME type). This caused the extension to fail loading
    in version 0.9.20.

    Switching to inline source maps embeds the source map directly in the
    JavaScript bundle, avoiding the MIME type issue while still providing source
    map support for debugging.

v0.9.20

Compare Source

Patch Changes
  • Override repr to avoid expensive trait serialization #​906 (#​906)

    Previously, AnyWidget inherited ipywidgets.Widget.__repr__ which serialized all trait values. This is costly because the repr might not even be shown to users, yet it forces a full serialization of potentially large data. AnyWidget now overrides __repr__ to use object.__repr__(self), which produces a simple <module.ClassName object at 0x...> format.

    To restore the previous behavior showing all trait values, users can define:

    class MyWidget(anywidget.AnyWidget):
        def __repr__(self):
            return traitlets.HasTraits.__repr__(self)

v0.9.19

Compare Source

Patch Changes
  • Exclude docs/ and paper/ from sdist/wheel (#​902)
gristlabs/asttokens (asttokens)

v3.0.1

Compare Source

python-babel/babel (babel)

v2.18.0

Compare Source

Happy 2026! This release is, coincidentally, also being made from FOSDEM.

We will aspire for a slightly less glacial release cadence in this year;
there are interesting features in the pipeline.

Features


* Core: Add `babel.core.get_cldr_version()` by @&#8203;akx in :gh:`1242`
* Core: Use CLDR 47 by @&#8203;tomasr8 in :gh:`1210`
* Core: Use canonical IANA zone names in zone_territories by @&#8203;akx in :gh:`1220`
* Messages: Improve extract performance via ignoring directories early during os.walk by @&#8203;akx in :gh:`968`
* Messages: Merge in per-format keywords and auto_comments by @&#8203;akx in :gh:`1243`
* Messages: Update keywords for extraction of dpgettext and dnpgettext by @&#8203;mardiros in :gh:`1235`
* Messages: Validate all plurals in Python format checker by @&#8203;tomasr8 in :gh:`1188`
* Time: Use standard library `timezone` instead of `FixedOffsetTimezone` by @&#8203;akx in :gh:`1203`

Bugfixes
  • Core: Fix formatting for "Empty locale identifier" exception added in #​1164 by @​akx in :gh:1184
  • Core: Improve handling of no-inheritance-marker in timezone data by @​akx in :gh:1194
  • Core: Make the number pattern regular expression more efficient by @​akx in :gh:1213
  • Messages: Keep translator comments next to the translation function call by @​akx in :gh:1196
  • Numbers: Fix KeyError that occurred when formatting compact currencies of exactly one thousand in several locales by @​bartbroere in :gh:1246

Other improvements


* Core: Avoid unnecessary uses of `map()` by @&#8203;akx in :gh:`1180`
* Messages: Have init-catalog create directories too by @&#8203;akx in :gh:`1244`
* Messages: Optimizations for read_po by @&#8203;akx in :gh:`1200`
* Messages: Use pathlib.Path() in catalog frontend; improve test coverage by @&#8203;akx in :gh:`1204`

Infrastructure and documentation
  • CI: Renovate CI & lint tools by @​akx in :gh:1228
  • CI: Tighten up CI with Zizmor by @​akx in :gh:1230
  • CI: make job permissions explicit by @​akx in :gh:1227
  • Docs: Add SECURITY.md by @​akx in :gh:1229
  • Docs: Remove u string prefix from docs by @​verhovsky in :gh:1174
  • Docs: Update dates.rst with current unicode.org tr35 link by @​clach04 in :gh:1189
  • General: Add some PyPI classifiers by @​tomasr8 in :gh:1186
  • General: Apply reformatting by hand and with Ruff by @​akx in :gh:1202
  • General: Test on and declare support for Python 3.14 by @​akx in :gh:1233
  • Tests: Convert Unittest testcases with setup/teardown to fixtures by @​akx in :gh:1240
  • Tests: Mark PyPy CI flake as xfail by @​akx in :gh:1197
  • Tests: Move pytest config to pyproject.toml by @​tomasr8 in :gh:1187
  • Tests: Unwrap most unittest test cases to bare functions by @​akx in :gh:1241
psf/black (black)

v25.12.0

Compare Source

Highlights
  • Black no longer supports running with Python 3.9 (#​4842)
Stable style
  • Fix bug where comments preceding # fmt: off/# fmt: on blocks were incorrectly
    removed, particularly affecting Jupytext's # %% [markdown] comments (#​4845)
  • Fix crash when multiple # fmt: skip comments are used in a multi-part if-clause, on
    string literals, or on dictionary entries with long lines (#​4872)
  • Fix possible crash when fmt: directives aren't on the top level (#​4856)
Preview style
  • Fix fmt: skip skipping the line after instead of the line it's on (#​4855)
  • Remove unnecessary parentheses from the left-hand side of assignments while preserving
    magic trailing commas and intentional multiline formatting (#​4865)
  • Fix fix_fmt_skip_in_one_liners crashing on with statements (#​4853)
  • Fix fix_fmt_skip_in_one_liners crashing on annotated parameters (#​4854)
  • Fix new lines being added after imports with # fmt: skip on them (#​4894)
Packaging
  • Releases now include arm64 Windows binaries and wheels (#​4814)
Integrations
  • Add output-file input to GitHub Action psf/black to write formatter output to a
    file for artifact capture and log cleanliness (#​4824)

v25.11.0

Compare Source

Highlights
  • Enable base 3.14 support (#​4804)
  • Add support for the new Python 3.14 t-string syntax introduced by PEP 750 (#​4805)
Stable style
  • Fix bug where comments between # fmt: off and # fmt: on were reformatted (#​4811)
  • Comments containing fmt directives now preserve their exact formatting instead of
    being normalized (#​4811)
Preview style
  • Move multiline_string_handling from --unstable to --preview (#​4760)
  • Fix bug where module docstrings would be treated as normal strings if preceded by
    comments (#​4764)
  • Fix bug where python 3.12 generics syntax split line happens weirdly (#​4777)
  • Standardize type comments to form # type: <value> (#​4645)
  • Fix fix_fmt_skip_in_one_liners preview feature to respect # fmt: skip for compound
    statements with semicolon-separated bodies (#​4800)
Configuration
  • Add no_cache option to control caching behavior. (#​4803)
Packaging
  • Releases now include arm64 Linux binaries (#​4773)
Output
  • Write unchanged content to stdout when excluding formatting from stdin using pipes
    (#​4610)
Blackd
  • Implemented BlackDClient. This simple python client allows to easily send formatting
    requests to blackd (#​4774)
Integrations
  • Enable 3.14 base CI (#​4804)
  • Enhance GitHub Action psf/black to support the required-version major-version-only
    "stability" format when using pyproject.toml (#​4770)
  • Improve error message for vim plugin users. It now handles independently vim version
  • Vim: Warn on unsupported Vim and Python versions independently (#​4772)
  • Vim: Print the import paths when importing black fails (#​4675)
  • Vim: Fix handling of virtualenvs that have a different Python version (#​4675)

v25.9.0

Compare Source

Highlights
  • Remove support for pre-python 3.7 await/async as soft keywords/variable names
    (#​4676)
Stable style
  • Fix crash while formatting a long del statement containing tuples (#​4628)
  • Fix crash while formatting expressions using the walrus operator in complex with
    statements (#​4630)
  • Handle # fmt: skip followed by a comment at the end of file (#​4635)
  • Fix crash when a tuple appears in the as clause of a with statement (#​4634)
  • Fix crash when tuple is used as a context manager inside a with statement (#​4646)
  • Fix crash when formatting a \ followed by a \r followed by a comment (#​4663)
  • Fix crash on a \\r\n (#​4673)
  • Fix crash on await ... (where ... is a literal Ellipsis) (#​4676)
  • Fix crash on parenthesized expression inside a type parameter bound (#​4684)
  • Fix crash when using line ranges excluding indented single line decorated items
    (#​4670)
Preview style
  • Fix a bug where one-liner functions/conditionals marked with # fmt: skip would still
    be formatted (#​4552)
  • Improve multiline_string_handling with ternaries and dictionaries (#​4657)
  • Fix a bug where string_processing would not split f-strings directly after
    expressions (#​4680)
  • Wrap the in clause of comprehensions across lines if necessary (#​4699)
  • Remove parentheses around multiple exception types in except and except* without
    as. (#​4720)
  • Add \r style newlines to the potential newlines to normalize file newlines both from
    and to (#​4710)
Parser
  • Rewrite tokenizer to improve performance and compliance (#​4536)
  • Fix bug where certain unusual expressions (e.g., lambdas) were not accepted in type
    parameter bounds and defaults. (#​4602)
Performance
  • Avoid using an extra process when running with only one worker (#​4734)
Integrations
  • Fix the version check in the vim file to reject Python 3.8 (#​4567)
  • Enhance GitHub Action psf/black to read Black version from an additional section in
    pyproject.toml: [project.dependency-groups] (#​4606)
  • Build gallery docker image with python3-slim and reduce image size (#​4686)
Documentation
  • Add FAQ entry for windows emoji not displaying (#​4714)
certifi/python-certifi (certifi)

v2025.11.12

Compare Source

v2025.10.5

Compare Source

v2025.8.3

Compare Source

v2025.7.14

Compare Source

v2025.7.9

Compare Source

v2025.6.15

Compare Source

jawah/charset_normalizer (charset-normalizer)

v3.4.4

Compare Source

Changed
  • Bound setuptools to a specific constraint setuptools>=68,<=81.
  • Raised upper bound of mypyc for the optional pre-built extension to v1.18.2
Removed
  • setuptools-scm as a build dependency.
Misc
  • Enforced hashes in dev-requirements.txt and created ci-requirements.txt for security purposes.
  • Additional pre-built wheels for riscv64, s390x, and armv7l architectures.
  • Restore multiple.intoto.jsonl in GitHub releases in addition to individual attestation file per wheel.

v3.4.3

Compare Source

Changed
  • mypy(c) is no longer a required dependency at build time if CHARSET_NORMALIZER_USE_MYPYC isn't set to 1. (#​595) (#​583)
  • automatically lower confidence on small bytes samples that are not Unicode in detect output legacy function. (#​391)
Added
  • Custom build backend to overcome inability to mark mypy as an optional dependency in the build phase.
  • Support for Python 3.14
Fixed
  • sdist archive contained useless directories.
  • automatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (#​633)
Misc
  • SBOM are automatically published to the relevant GitHub release to comply with regulatory changes.
    Each published wheel comes with its SBOM. We choose CycloneDX as the format.
  • Prebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.
pallets/click (click)

v8.3.1

Compare Source

Released 2025-11-15

  • Don't discard pager arguments by correctly using subprocess.Popen. :issue:3039
    :pr:3055
  • Replace Sentinel.UNSET default values by None as they're passed through
    the Context.invoke() method. :issue:3066 :issue:3065 :pr:3068
  • Fix conversion of Sentinel.UNSET happening too early, which caused incorrect
    behavior for multiple parameters using the same name. :issue:3071 :pr:3079
  • Hide Sentinel.UNSET values as None when looking up for other parameters
    through the context inside parameter callbacks. :issue:3136 :pr:3137
  • Fix rendering when prompt and confirm parameter prompt_suffix is
    empty. :issue:3019 :pr:3021
  • When Sentinel.UNSET is found during parsing, it will skip calls to
    type_cast_value. :issue:3069 :pr:3090

v8.3.0

Compare Source

Released 2025-09-17

  • Improved flag option handling: Reworked the relationship between flag_value
    and default parameters for better consistency:

    • The default parameter value is now preserved as-is and passed directly
      to CLI functions (no more unexpected transformations)
    • Exception: flag options with default=True maintain backward compatibility
      by defaulting to their flag_value
    • The default parameter can now be any type (bool, None, etc.)
    • Fixes inconsistencies reported in: :issue:1992 :issue:2514 :issue:2610
      :issue:3024 :pr:3030
  • Allow default to be set on Argument for nargs = -1. :issue:2164
    :pr:3030

  • Show correct auto complete value for nargs option in combination with flag
    option :issue:2813

  • Fix handling of quoted and escaped parameters in Fish autocompletion. :issue:2995 :pr:3013

  • Lazily import shutil. :pr:3023

  • Properly forward exception information to resources registered with
    click.core.Context.with_resource(). :issue:2447 :pr:3058

  • Fix regression related to EOF handling in CliRunner. :issue:2939 :pr:2940

v8.2.2

Compare Source

Released 2025-07-31

  • Fix reconciliation of default, flag_value and type parameters for
    flag options, as well as parsing and normalization of environment variables.
    :issue:2952 :pr:2956
  • Fix typing issue in BadParameter and MissingParameter exceptions for the
    parameter param_hint that did not allow for a sequence of string where the
    underlying function _join_param_hints allows for it. :issue:2777 :pr:2990
  • Use the value of Enum choices to render their default value in help
    screen. Refs :issue:2911 :pr:3004
  • Fix completion for the Z shell (zsh) for completion items containing
    colons. :issue:2703 :pr:2846
  • Don't include envvar in error hint when not configured. :issue:2971 :pr:2972
  • Fix a rare race in click.testing.StreamMixer's finalization that manifested
    as a ValueError on close in a multi-threaded test session.
    :issue:2993 :pr:2991

v8.2.1

Compare Source

Released 2025-05-20

  • Fix flag value handling for flag options with a provided type. :issue:2894
    :issue:2897 :pr:2930
  • Fix shell completion for nested groups. :issue:2906 :pr:2907
  • Flush sys.stderr at the end of CliRunner.invoke. :issue:2682
  • Fix EOF handling for stdin input in CliRunner. :issue:2787

v8.2.0

Compare Source

Released 2025-05-10

  • Drop support for Python 3.7, 3.8, and 3.9. :pr:2588 :pr:2893

  • Use modern packaging metadata with pyproject.toml instead of setup.cfg.
    :pr:2438

  • Use flit_core instead of setuptools as build backend. :pr:2543

  • Deprecate the __version__ attribute. Use feature detection, or
    importlib.metadata.version("click"), instead. :issue:2598

  • BaseCommand is deprecated. Command is the base class for all
    commands. :issue:2589

  • MultiCommand is deprecated. Group is the base class for all group
    commands. :issue:2590

  • The current parser and related classes and methods, are deprecated.
    :issue:2205

    • OptionParser and the parser module, which is a modified copy of
      optparse in the standard library.
    • Context.protected_args is unneeded. Context.args contains any
      remaining arguments while parsing.
    • Parameter.add_to_parser (on both Argument and Option) is
      unneeded. Parsing works directly without building a separate parser.
    • split_arg_string is moved from parser to shell_completion.
  • Enable deferred evaluation of annotations with
    from __future__ import annotations. :pr:2270

  • When generating a command's name from a decorated function's name, the
    suffixes _command, _cmd, _group, and _grp are removed.
    :issue:2322

  • Show the types.ParamType.name for types.Choice options within
    --help message if show_choices=False is specified.
    :issue:2356

  • Do not display default values in prompts when Option.show_default is
    False. :pr:2509

  • Add get_help_extra method on Option to fetch the generated extra
    items used in get_help_record to render help text. :issue:2516
    :pr:2517

  • Keep stdout and stderr streams independent in CliRunner. Always
    collect stderr output and never raise an exception. Add a new
    output stream to simulate what the user sees in its terminal. Removes
    the mix_stderr parameter in CliRunner. :issue:2522 :pr:2523

  • Option.show_envvar now also shows environment variable in error messages.
    :issue:2695 :pr:2696

  • Context.close will be called on exit. This results in all
    Context.call_on_close callbacks and context managers added via
    Context.with_resource to be closed on exit as well. :pr:2680

  • Add ProgressBar(hidden: bool) to allow hiding the progressbar. :issue:2609

  • A UserWarning will be shown when multiple parameters attempt to use the
    same name. :issue:2396

  • When using Option.envvar with Option.flag_value, the flag_value
    will always be used instead of the value of the environment variable.
    :issue:2746 :pr:2788

  • Add Choice.get_invalid_choice_message method for customizing the
    invalid choice message. :issue:2621 :pr:2622

  • If help is shown because no_args_is_help is enabled (defaults to True
    for groups, False for commands), the exit code is 2 instead of 0.
    :issue:1489 :pr:1489

  • Contexts created during shell completion are closed properly, fixing
    a ResourceWarning when using click.File. :issue:2644 :pr:2800
    :pr:2767

  • click.edit(filename) now supports passing an iterable of filenames in
    case the editor supports editing multiple files at once. Its return type
    is now also typed: AnyStr if text is passed, otherwise None.
    :issue:2067 :pr:2068

  • Specialized typing of progressbar(length=...) as ProgressBar[int].
    :pr:2630

  • Improve echo_via_pager behaviour in face of errors.
    :issue:2674

    • Terminate the pager in case a generator passed to echo_via_pager
      raises an exception.
    • Ensure to always close the pipe to the pager process and wait for it
      to terminate.
    • echo_via_pager will not ignore KeyboardInterrupt anymore. This
      allows the user to search for future output of the generator when
      using less and then aborting the program using ctrl-c.
  • deprecated: bool | str can now be used on options and arguments. This
    previously was only available for Command. The message can now also be
    customised by using a str instead of a bool. :issue:2263 :pr:2271

    • Command.deprecated formatting in --help changed from
      (Deprecated) help to help (DEPRECATED).
    • Parameters cannot be required nor prompted or an error is raised.
    • A warning will be printed when something deprecated is used.
  • Add a catch_exceptions parameter to CliRunner. If
    catch_exceptions is not passed to CliRunner.invoke, the value
    from CliRunner is used. :issue:2817 :pr:2818

  • Option.flag_value will no longer have a default value set based on
    Option.default if Option.is_flag is False. This results in
    Option.default not needing to implement __bool__. :pr:2829

  • Incorrect click.edit typing has been corrected. :pr:2804

  • Choice is now generic and supports any iterable value.
    This allows you to use enums and other non-str values. :pr:2796
    :issue:605

  • Fix setup of help option's defaults when using a custom class on its
    decorator. Removes HelpOption. :issue:2832 :pr:2840

ipython/comm (comm)

v0.2.3

Compare Source

(Full Changelog)

Merged PRs
Contributors to this release

(GitHub contributors page for this release)

@​Carreau | @​davidbrochart

alexmojaki/executing (executing)

v2.2.1

Compare Source

kjd/idna (idna)

v3.11

Compare Source

pytest-dev/iniconfig (iniconfig)

v2.3.0

Compare Source

=====

  • add IniConfig.parse() classmethod with strip_inline_comments parameter (fixes #​55)
    • by default (strip_inline_comments=True), inline comments are properly stripped from values
    • set strip_inline_comments=False to preserve old behavior if needed
  • IniConfig() constructor maintains backward compatibility (does not strip inline comments)
  • users should migrate to IniConfig.parse() for correct comment handling
  • add strip_section_whitespace parameter to IniConfig.parse() (regarding #​4)
    • opt-in parameter to strip Unicode whitespace from section names
    • when True, strips Unicode whitespace (U+00A0, U+2000, U+3000, etc.) from section names
    • when False (default), preserves existing behavior for backward compatibility
  • clarify Unicode whitespace handling (regarding #​4)
    • since iniconfig 2.0.0 (Python 3 only), all strings are Unicode by default
    • Python 3's str.strip() has handled Unicode whitespace since Python 3.0 (2008)
    • iniconfig automatically benefits from this in all supported versions (Python >= 3.10)
    • key names and values have Unicode whitespace properly stripped using Python's built-in methods

v2.2.0

Compare Source

=====

  • drop Python 3.8 and 3.9 support (now requires Python >= 3.10)
  • add Python 3.14 classifier
  • migrate from hatchling to setuptools 77 with setuptools_scm
  • adopt PEP 639 license specifiers and PEP 740 build attestations
  • migrate from black + pyupgrade to ruff
  • migrate CI to uv and unified test workflow
  • automate GitHub releases and PyPI publishing via Trusted Publishing
  • include tests in sdist
  • modernize code for Python 3.10+ (remove future annotations, TYPE_CHECKING guards)
  • rename _ParsedLine to ParsedLine
ipython/ipython (ipython)

v9.10.0

Compare Source

v9.9.0

Compare Source

v9.8.0

Compare Source

v9.7.0

Compare Source

v9.6.0

Compare Source

v9.5.0

Compare Source

v9.4.0

Compare Source

v9.3.0

Compare Source

PyCQA/isort (isort)

v6.1.0

Compare Source

pallets/markupsafe (markupsafe)

v3.0.3

Compare Source

Released 2025-09-27

  • __version__ raises DeprecationWarning instead of UserWarning.
    :issue:487
  • Adopt multi-phase initialisation (:pep:489) for the C extension.
    :issue:494
  • Build Windows ARM64 wheels. :issue:485
  • Build Python 3.14 wheels. :issue:503
  • Build riscv64 wheels. :issue:505
ipython/matplotlib-inline (matplotlib-inline)

v0.2.1

Compare Source

numpy/numpy (numpy)

v2.4.2

Compare Source

v2.4.1: 2.4.1 (Jan 10, 2026)

Compare Source

NumPy 2.4.1 Release Notes

The NumPy 2.4.1 is a patch release that fixes bugs discoved after the
2.4.0 release. In particular, the typo SeedlessSequence is preserved to
enable wheels using the random Cython API and built against NumPy < 2.4.0
to run without errors.

This release supports Python versions 3.11-3.14

Contributors

A total of 9 people contributed to this release. People with a "+" by their
names contributed a patch for the first time.

  • Alexander Shadchin
  • Bill Tompkins +
  • Charles Harris
  • Joren Hammudoglu
  • Marten van Kerkwijk
  • Nathan Goldbaum
  • Raghuveer Devulapalli
  • Ralf Gommers
  • Sebastian Berg
Pull requests merged

A total of 15 pull requests were merged for this release.

  • #​30490: MAINT: Prepare 2.4.x for further development
  • #​30503: DOC: numpy.select: fix default parameter docstring...
  • #​30504: REV: Revert part of #​30164 (#​30500)
  • #​30506: TYP: numpy.select: allow passing array-like default...
  • #​30507: MNT: use if constexpr for compile-time branch selection
  • #​30513: BUG: Fix leak in flat assignment iterator
  • #​30516: BUG: fix heap overflow in fixed-width string multiply (#​30511)
  • #​30523: BUG: Ensure summed weights returned by np.average always are...
  • #​30527: TYP: Fix return type of histogram2d
  • #​30594: MAINT: avoid passing ints to random functions that take double...
  • #​30595: BLD: Avoiding conflict with pygit2 for static build
  • #​30596: MAINT: Fix msvccompiler missing error on FreeBSD
  • #​30608: BLD: update vendored Meson to 1.9.2
  • #​30620: ENH: use more fine-grained critical sections in array coercion...
  • #​30623: BUG: Undo result type change of quantile/percentile but keep...

v2.4.0: 2.4.0 (Dec 20, 2025)

Compare Source

NumPy 2.4.0 Release Notes

The NumPy 2.4.0 release continues the work to improve free threaded Python
support, user dtypes implementation, and annotations. There are many expired
deprecations and bug fixes as well.

This release supports Python versions 3.11-3.14

Highlights

Apart from annotations and same_value kwarg, the 2.4 highlights are mostly
of interest to downstream developers. They should help in implementing new user
dtypes.

  • Many annotation improvements. In particular, runtime signature introspection.
  • New casting kwarg 'same_value' for casting by value.
  • New PyUFunc_AddLoopsFromSpec function that can be used to add user sort
    loops using the ArrayMethod API.
  • New __numpy_dtype__ protocol.
Deprecations
Setting the strides attribute is deprecated

Setting the strides attribute is now deprecated since mutating
an array is unsafe if an array is shared, especially by multiple
threads. As an alternative, you can create a new view (no copy) via:

  • np.lib.stride_tricks.strided_window_view if applicable,
  • np.lib.stride_tricks.as_strided for the general case,
  • or the np.ndarray constructor (buffer is the original array) for a
    light-weight version.

(gh-28925)

Positional out argument to np.maximum, np.minimum is deprecated

Passing the output array out positionally to numpy.maximum and
numpy.minimum is deprecated. For example, np.maximum(a, b, c) will emit
a deprecation warning, since c is treated as the output buffer rather than
a third input.

Always pass the output with the keyword form, e.g. np.maximum(a, b, out=c).
This makes intent clear and simplifies type annotations.

(gh-29052)

align= must be passed as boolean to np.dtype()

When creating a new dtype a VisibleDeprecationWarning will be given if
align= is not a boolean. This is mainly to prevent accidentally passing a
subarray align flag where it has no effect, such as np.dtype("f8", 3)
instead of np.dtype(("f8", 3)). We strongly suggest to always pass
align= as a keyword argument.

(gh-29301)

Assertion and warning control utilities are deprecated

np.testing.assert_warns and np.testing.suppress_warnings are
deprecated. Use warnings.catch_warnings, warnings.filterwarnings,
pytest.warns, or pytest.filterwarnings instead.

(gh-29550)

np.fix is pending deprecation

The numpy.fix function will be deprecated in a future release. It is
recommended to use numpy.trunc instead, as it provides the same
functionality of truncating decimal values to their integer parts. Static type
checkers might already report a warning for the use of numpy.fix.

(gh-30168)

in-place modification of ndarray.shape is pending deprecation

Setting the ndarray.shape attribute directly will be deprecated in a future
release. Instead of modifying the shape in place, it is recommended to use the
numpy.reshape function. Static type checkers might already report a
warning for assignments to ndarray.shape.

(gh-30282)

Deprecation of numpy.lib.user_array.container

The numpy.lib.user_array.container class is deprecated and will be removed
in a future version.

(gh-30284)

Expired deprecations
Removed deprecated MachAr runtime discovery mechanism.

(gh-29836)

Raise TypeError on attempt to convert array with ndim > 0 to scalar

Conversion of an array with ndim > 0 to a scalar was deprecated in NumPy
1.25. Now, attempting to do so raises TypeError. Ensure you extract a
single element from your array before performing this operation.

(gh-29841)

Removed numpy.linalg.linalg and numpy.fft.helper

The following were deprecated in NumPy 2.0 and have been moved to private
modules:

  • numpy.linalg.linalg
    Use numpy.linalg instead.
  • numpy.fft.helper
    Use numpy.fft instead.

(gh-29909)

Removed interpolation parameter from quantile and percentile functions

The interpolation parameter was deprecated in NumPy 1.22.0 and has been
removed from the following functions:

  • numpy.percentile
  • numpy.nanpercentile
  • numpy.quantile
  • numpy.nanquantile

Use the method parameter instead.

(gh-29973)

Removed numpy.in1d

numpy.in1d has been deprecated since NumPy 2.0 and is now removed in favor of numpy.isin.

(gh-29978)

Removed numpy.ndindex.ndincr()

The ndindex.ndincr() method has been deprecated since NumPy 1.20 and is now
removed; use next(ndindex) instead.

(gh-29980)

Removed fix_imports parameter from numpy.save

The fix_imports parameter was deprecated in NumPy 2.1.0 and is now removed.
This flag has been ignored since NumPy 1.17 and was only needed to support
loading files in Python 2 that were written in Python 3.

(gh-29984)

Removal of four undocumented ndarray.ctypes methods

Four undocumented methods of the ndarray.ctypes object have been removed:

  • _ctypes.get_data() (use _ctypes.data instead)
  • _ctypes.get_shape() (use _ctypes.shape instead)
  • _ctypes.get_strides() (use _ctypes.strides instead)
  • _ctypes.get_as_parameter() (use _ctypes._as_parameter_ instead)

These methods have been deprecated since NumPy 1.21.

(gh-29986)

Removed newshape parameter from numpy.reshape

The newshape parameter was deprecated in NumPy 2.1.0 and has been
removed from numpy.reshape. Pass it positionally or use shape=
on newer NumPy versions.

(gh-29994)

Removal of deprecated functions and arguments

The following long


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@coveralls
Copy link

coveralls commented May 8, 2025

Pull Request Test Coverage Report for Build 16527042364

Details

  • 0 of 0 changed or added relevant lines in 0 files are covered.
  • No unchanged relevant lines lost coverage.
  • Overall coverage remained the same at 85.43%

Totals Coverage Status
Change from base Build 14883398476: 0.0%
Covered Lines: 129
Relevant Lines: 151

💛 - Coveralls

@renovate renovate bot changed the title chore(deps): update dependency platformdirs to v4.3.8 chore(deps): update all non-major dependencies May 10, 2025
@renovate renovate bot force-pushed the renovate/all-minor-patch branch 3 times, most recently from 0957198 to 71800c5 Compare May 17, 2025 23:00
@renovate renovate bot force-pushed the renovate/all-minor-patch branch from 71800c5 to fe83857 Compare May 21, 2025 01:58
@renovate renovate bot force-pushed the renovate/all-minor-patch branch 3 times, most recently from 53d717b to 25aa9fe Compare June 2, 2025 18:49
@renovate renovate bot force-pushed the renovate/all-minor-patch branch 2 times, most recently from deca614 to 419b680 Compare June 9, 2025 17:25
@renovate renovate bot force-pushed the renovate/all-minor-patch branch 5 times, most recently from 6ae2378 to b32c3da Compare June 21, 2025 16:32
@renovate renovate bot force-pushed the renovate/all-minor-patch branch 3 times, most recently from 791b7da to ca01aee Compare July 4, 2025 16:56
@renovate renovate bot force-pushed the renovate/all-minor-patch branch 3 times, most recently from e287b00 to 25b02ed Compare July 15, 2025 16:45
@renovate renovate bot force-pushed the renovate/all-minor-patch branch 3 times, most recently from 33d24b5 to e2d3e31 Compare July 29, 2025 20:27
@renovate renovate bot force-pushed the renovate/all-minor-patch branch 3 times, most recently from b6c8999 to 6e696fb Compare August 3, 2025 04:46
@renovate renovate bot force-pushed the renovate/all-minor-patch branch 2 times, most recently from c2516ea to 994c9ab Compare August 10, 2025 14:07
@renovate renovate bot force-pushed the renovate/all-minor-patch branch 4 times, most recently from 8ce83d0 to 96b8c60 Compare December 9, 2025 06:03
@renovate renovate bot force-pushed the renovate/all-minor-patch branch 2 times, most recently from c39e961 to 1b086bf Compare December 20, 2025 18:00
@renovate renovate bot force-pushed the renovate/all-minor-patch branch 4 times, most recently from 08dff36 to 6fff644 Compare January 5, 2026 14:41
@renovate renovate bot force-pushed the renovate/all-minor-patch branch 2 times, most recently from 94112bd to e9ab7ab Compare January 12, 2026 18:13
@renovate renovate bot force-pushed the renovate/all-minor-patch branch 8 times, most recently from 4533c12 to b1004b8 Compare January 27, 2026 04:38
@renovate renovate bot force-pushed the renovate/all-minor-patch branch 8 times, most recently from 7e41921 to f689daa Compare February 2, 2026 17:32
@renovate renovate bot force-pushed the renovate/all-minor-patch branch from f689daa to 573cde8 Compare February 6, 2026 21:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant