Skip to content

build(deps): bump the python-runtime group across 1 directory with 72 updates - #44

Closed
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/pip/python-runtime-49590a997d
Closed

dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/pip/python-runtime-49590a997d

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Sep 14, 2026 •

Copy link
Copy Markdown
Contributor

Bumps the python-runtime group with 72 updates in the / directory:

Package From To
click 8.3.3 8.5.0
hdbscan 0.8.42 0.8.44
matplotlib 3.10.9 3.11.1
numpy 2.2.4 2.5.3
opencv-contrib-python-headless 4.10.0.84 4.14.0.94
opencv-python-headless 4.10.0.84 4.14.0.94
sahi 0.11.36 0.12.6
scikit-learn 1.8.0 1.9.1
scikit-image 0.24.0 0.26.0
modin 0.32.0 0.37.1
anyio 4.13.0 4.15.1
asttokens 3.0.1 3.0.2
beautifulsoup4 4.14.3 4.15.0
bleach 6.3.0 6.4.0
certifi 2026.4.22 2026.7.22
cffi 2.0.0 2.1.1
charset-normalizer 3.4.7 3.5.1
dask 2026.3.0 2026.8.0
debugpy 1.8.20 1.8.21
decorator 5.2.1 5.3.1
distributed 2026.3.0 2026.8.0
fastjsonschema 2.21.2 2.22.2
filelock 3.29.0 3.32.6
fonttools 4.62.1 4.65.0
fsspec 2026.4.0 2026.7.0
idna 3.13 3.19
imageio 2.37.3 2.37.4
ipykernel 7.2.0 7.3.0
ipython 9.13.0 9.17.1
ipywidgets 8.1.8 8.1.9
joblib 1.5.3 1.6.0
json5 0.14.0 0.15.0
jupyter-client 8.8.0 8.10.0
jupyter-server 2.18.2 2.21.0
jupyterlab 4.5.7 4.6.3
jupyterlab-widgets 3.0.16 3.0.17
kiwisolver 1.5.0 1.5.1
llvmlite 0.47.0 0.49.0
mistune 3.2.1 3.3.4
mpmath 1.3.0 1.4.1
msgpack 1.1.2 1.2.2
nbclient 0.10.4 0.11.0
nbformat 5.10.4 5.11.1
notebook 7.5.6 7.6.2
numba 0.65.1 0.67.0
packaging 26.2 26.3
platformdirs 4.9.6 4.11.8
prometheus-client 0.25.0 0.26.0
prompt-toolkit 3.0.52 3.0.53
protobuf 7.34.1 7.36.1
pure-eval 0.2.3 0.2.4
pybboxes 0.1.6 0.2.0
pygments 2.20.0 2.21.0
python-json-logger 4.1.0 4.2.0
pywavelets 1.9.0 1.10.0
pyzmq 27.1.0 27.2.0
ray 2.56.0 2.58.0
regex 2026.4.4 2026.9.10
requests 2.33.1 2.34.2
safetensors 0.7.0 0.8.0
scipy 1.17.1 1.18.1
soupsieve 2.8.3 2.9.2
tifffile 2026.5.2 2026.9.9
tinycss2 1.4.0 1.5.1
tqdm 4.67.3 4.70.0
traitlets 5.15.0 5.16.1
typing-extensions 4.15.0 4.16.0
tzdata 2026.2 2026.3
wcwidth 0.7.0 0.8.3
webencodings 0.5.1 0.6.1
websocket-client 1.9.0 1.9.2
widgetsnbextension 4.0.15 4.0.16

Updates click from 8.3.3 to 8.5.0

Release notes

Sourced from click's releases.

8.5.0

This is the Click 8.5.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecation, or introduce potentially breaking changes.

We encourage everyone to upgrade. You can read more about our Version Support Policy on our website.

PyPI: https://pypi.org/project/click/8.5.0/ Changes: https://click.palletsprojects.com/page/changes/#version-8-5-0 Milestone https://github.com/pallets/click/milestone/33

  • Add built-in shell completion support for PowerShell (Windows PowerShell 5.1+ and pwsh 7+) alongside the existing bash, zsh, and fish completers. Use _FOO_BAR_COMPLETE=powershell_source foo-bar to generate the completion script. #2672 #3637
  • Supported versions of Windows enable ANSI terminal styles by default. Colorama is no longer a dependency and is not used. #2986 #3505
  • {class}Argument accepts a help parameter, and help output includes a Positional arguments section when argument help is available. #2983 #3473
  • confirm() and prompt() strip ANSI color and style codes from the prompt when the output stream does not support them, matching echo(). This stripping was lost in 8.4.0 when #2969 began writing the prompt with input() directly. #3572 #3653
  • {class}Path with allow_dash=True no longer triggers a BytesWarning, an error under python -bb, when checking a value against the - convention. #2877 #3642
  • Add {func}custom_version_option, a --version option whose output is produced by a callback, covering cases {func}version_option intentionally does not. The feature set of {func}version_option is now frozen; see [discussion #3527](`@version_option` future direction pallets/click#3527). #3581
  • style() and secho() no longer silently drop the 256-color index 0 (black) passed as fg or bg, and now validate color arguments. Invalid colors raise a ValueError instead of a TypeError. #3677
  • The automatic help option stores its value under the reserved name _click_default_help instead of help, so a parameter named help no longer breaks parsing. The new name is visible in {meth}Command.to_info_dict output. Parameters that overwrite each other's value trigger a warning: an argument sharing its name with another parameter, or any parameter claiming the reserved name. Options may still share a name to compete for the same value (feature switches). #2819 #3678
  • unstyle and the ANSI handling behind help-text wrapping now strip the full CSI escape-sequence grammar. #3681
  • Streamline Option flag handling: the flag-kind, type, lazy-default and validation steps in Option.__init__ move into focused helpers, and flag_value and default keep their unset sentinel at construction (resolved lazily on read) so is UNSET reliably tells a user-supplied value from an auto-derived one. Runtime behavior is unchanged, but {meth}Parameter.to_info_dict now resolves default=True on a feature switch to its flag_value, matching what the function receives at call

... (truncated)

Changelog

Sourced from click's changelog.

Version 8.5.0

Released 2026-08-24

  • Add built-in shell completion support for PowerShell (Windows PowerShell 5.1+ and pwsh 7+) alongside the existing bash, zsh, and fish completers. Use _FOO_BAR_COMPLETE=powershell_source foo-bar to generate the completion script. {issue}2672 {pr}3637
  • Supported versions of Windows enable ANSI terminal styles by default. Colorama is no longer a dependency and is not used. {issue}2986 {pr}3505
  • {class}Argument accepts a help parameter, and help output includes a Positional arguments section when argument help is available. {issue}2983 {pr}3473
  • confirm() and prompt() strip ANSI color and style codes from the prompt when the output stream does not support them, matching echo(). This stripping was lost in 8.4.0 when {pr}2969 began writing the prompt with input() directly. {issue}3572 {pr}3653
  • Fix test failures when using pytest >= 9.1. {pr}3656
  • {class}Path with allow_dash=True no longer triggers a BytesWarning, an error under python -bb, when checking a value against the - convention. {issue}2877 {pr}3642
  • Add {func}custom_version_option, a --version option whose output is produced by a callback, covering cases {func}version_option intentionally does not. The feature set of {func}version_option is now frozen; see [discussion #3527](`@version_option` future direction pallets/click#3527). {pr}3581
  • style() and secho() no longer silently drop the 256-color index 0 (black) passed as fg or bg, and now validate color arguments. Invalid colors raise a ValueError instead of a TypeError. {pr}3677
  • The automatic help option stores its value under the reserved name _click_default_help instead of help, so a parameter named help no longer breaks parsing. The new name is visible in {meth}Command.to_info_dict output. Parameters that overwrite each other's value trigger a warning: an argument sharing its name with another parameter, or any parameter claiming the reserved name. Options may still share a name to compete for the same value (feature switches). {issue}2819 {pr}3678
  • unstyle and the ANSI handling behind help-text wrapping now strip the full CSI escape-sequence grammar. {pr}3681
  • Streamline Option flag handling: the flag-kind, type, lazy-default and validation steps in Option.__init__ move into focused helpers, and flag_value and default keep their unset sentinel at construction (resolved lazily on read) so is UNSET reliably tells a user-supplied value from an auto-derived one. Runtime behavior is unchanged, but {meth}Parameter.to_info_dict now resolves default=True on a feature switch to its flag_value, matching what the function receives at call time. {pr}3641
  • {func}get_binary_stream and {func}get_text_stream are deprecated and will be removed in Click 9.0. {issue}3481 {pr}3695
  • The following click.utils names were never intentionally public and are now private (_-prefixed). The old names remain available with a DeprecationWarning until Click 9.0: LazyFile, KeepOpenFile,

... (truncated)

Commits
  • 8b19813 Release version 8.5.0
  • 2c8cd3a Add FAQ entry about UnicodeEncodeError on Windows (#3778)
  • 131c86a Add FAQ entry about UnicodeEncodeError on Windows
  • e1fd594 Add support of pathlib.Path to edit (#3781)
  • a1d8785 Add support of pathlib.Path to edit
  • 2103e15 Forward all user's parameters set in PAGER and improve flag detection (#3777)
  • a6256bf Forwards all user's parameters set in PAGER
  • 61b69e9 Resolve the pager command once, in _pager_contextmanager (#3776)
  • 9835b0f Resolve the pager command once, in _pager_contextmanager
  • f36d58b Refactor pager stream handling (#3767)
  • Additional commits viewable in compare view

Updates hdbscan from 0.8.42 to 0.8.44

Release notes

Sourced from hdbscan's releases.

release-0.8.44

What's Changed

New Contributors

Full Changelog: scikit-learn-contrib/hdbscan@release-0.8.43...release-0.8.44

release-0.8.43

What's Changed

New Contributors

Full Changelog: scikit-learn-contrib/hdbscan@release-0.8.42...release-0.8.43

Commits
  • dfdc9ca Update pyproject.toml
  • ce1366c Merge pull request #707 from gclendenning/master
  • 69f3a57 Merge pull request #725 from sebastianbreguel/optimize-predict-clustertree-lo...
  • 2c0e8f1 Speed up the cluster-tree walk-up in approximate_predict
  • faba633 Merge pull request #722 from sebastianbreguel/optimize-exemplar-hstack
  • d60aa04 Merge pull request #723 from sebastianbreguel/optimize-cluster-walk-mask
  • e6bf6e3 Compute the cluster-walk child mask once per step
  • a0052dc Build cluster exemplars with a single hstack
  • 2eb5d92 Merge pull request #720 from sebastianbreguel/optimize-grouped-max-prediction
  • 65ae73b Replace per-cluster tree scans with a single grouped reduction
  • Additional commits viewable in compare view

Updates matplotlib from 3.10.9 to 3.11.1

Release notes

Sourced from matplotlib's releases.

REL: v3.11.1

This is the first bugfix release of the 3.11.x series.

This release contains several bug-fixes and adjustments:

  • Fix tight layout of multiple subplots with sharey=True
  • Fix NoNorm cursor formatting for uint8 images
  • Fix occasional misalignment in reported mouse position (also fix a bug with canvas height)
  • Fix clipped Axis labels on 3D plots with tight layout
  • Fix inverted Axis on 3D plots
  • Fix restoring 'auto' aspect in 3D axes after switching from 'equal'
  • Fix missing glyphs when subsetting Type 1 fonts in PDF
  • Fix oversized embedding of Type 42 fonts in PDF/PostScript files

As well as several documentation and typing improvements and corrections.

REL: v3.11.0

The largest change within this release is a complete overhaul of text and font processing. Through the use of libraqm, HarfBuzz, SheenBidi, and an updated release of FreeType, all text should now support modern font features, enabling full internationalization in all languages. Not all features of these libraries are supported yet, but we expect this work to enable further improvements in an easier manner.

Outside of text handling, there are several improvements to 3D Axes, performance, new accessible colour sequences, flexible figure management, and more. See the release notes for more information.

REL: v3.11.0rc2

This is the second release candidate for the meso release 3.11.0.

This release candidate fixes some problems with downstream packages, removes some missed deprecations, and corrects some additional minor bugs.

REL: v3.11.0rc1

After an extended development stretch, we are pleased to announce the first release candidate of Matplotlib 3.11.0.

The largest change within this release is a complete overhaul of text and font processing. Through the use of libraqm, HarfBuzz, SheenBidi, and an updated release of FreeType, all text should now support modern font features, enabling full internationalization in all languages. Not all features of these libraries are supported yet, but we expect this work to enable further improvements in an easier manner. Due to the update to the font rendering stack, we cannot guarantee that text will be bit-for-bit perfect with previous releases, so if you are using Matplotlib for testing, it may be necessary to introduce/raise a tolerance within your tests.

Outside of text handling, there are several improvements to 3D Axes, performance, new accessible colour sequences, flexible figure management, and more. Final release notes are still being curated, but you may browse the list of new features, API changes, and all issues/pull requests on the milestone.

As a note for downstream packagers, the font libraries have only been tested against the versions bundled with the wheels. It may be possible to expand the range of requirements, or that a requirement is too broad. Please report any issues you have building against external dependencies.

Commits
  • 3c1757a REL: v3.11.1
  • 792c6b5 DOC: Prepare for 3.11.1
  • aaff9f6 Merge branch 'v3.11.0-doc' into v3.11.x
  • d4f4527 Merge pull request #32052 from meeseeksmachine/auto-backport-of-pr-32038-on-v...
  • 6ad4bcf Merge pull request #32050 from meeseeksmachine/auto-backport-of-pr-31304-on-v...
  • 7fb74d3 Merge pull request #32051 from meeseeksmachine/auto-backport-of-pr-32037-on-v...
  • c624aec Backport PR #32038: Fix occasional misalignment in reported mouse position (a...
  • 8eda2b7 Backport PR #32037: Bump the actions group with 3 updates
  • a0e7ae5 Backport PR #31304: Fix restoring 'auto' aspect in 3D axes after switching fr...
  • 9001323 Merge pull request #32047 from meeseeksmachine/auto-backport-of-pr-32025-on-v...
  • Additional commits viewable in compare view

Updates numpy from 2.2.4 to 2.5.3

Release notes

Sourced from numpy's releases.

v2.5.3 (Sep 6, 2026)

NumPy 2.5.3 Release Notes

The NumPy 2.5.3 is a patch release that fixes bugs discovered after the 2.5.2 release. Apart from the usual bug and maintenance work, there are a number of StringDType related fixes for problems discovered during the ongoing string work in the main branch.

This release supports Python versions 3.12-3.15

Changes

  • Casting a fixed-width byte string array (np.bytes_) to StringDType now raises TypeError when the bytes are not valid UTF-8. Previously the invalid bytes were stored as-is and later caused undefined behavior in string operations.

    (gh-32296)

  • MaskedArray._fill_value would become stale when ufuncs that change dtype left the result holding a fill_value typed for the old dtype. The mismatch was silent until something later called _check_fill_value, such as .view(), and then a TypeError would be raised. Now, when the copied fill_value is no longer valid for the new dtype, fall back to the default fill_value for that dtype instead of propagating the stale value. This may raise a ComplexWarning if the fill_value is complex and the new dtype is real.

    (gh-32423)

Contributors

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

  • Charles Harris
  • Iason Krommydas
  • James Davies +
  • Joren Hammudoglu
  • Maanas Arora
  • Matti Picus
  • Nathan Goldbaum
  • Shikhar Goel +
  • Yeonho Kim +

Pull requests merged

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

  • #32235: MAINT: Prepare 2.5.x for further development

... (truncated)

Changelog

Sourced from numpy's changelog.

This is a walkthrough of the NumPy 2.4.0 release on Linux, which will be the first feature release using the numpy/numpy-release <https://github.com/numpy/numpy-release>__ repository.

The commands can be copied into the command line, but be sure to replace 2.4.0 with the correct version. This should be read together with the :ref:general release guide <prepare_release>.

Facility preparation

Before beginning to make a release, use the requirements/*_requirements.txt files to ensure that you have the needed software. Most software can be installed with pip, but some will require apt-get, dnf, or whatever your system uses for software. You will also need a GitHub personal access token (PAT) to push the documentation. There are a few ways to streamline things:

  • Git can be set up to use a keyring to store your GitHub personal access token. Search online for the details.

Prior to release

Add/drop Python versions

When adding or dropping Python versions, multiple config and CI files need to be edited in addition to changing the minimum version in pyproject.toml. Make these changes in an ordinary PR against main and backport if necessary. We currently release wheels for new Python versions after the first Python RC once manylinux and cibuildwheel support that new Python version.

Backport pull requests

Changes that have been marked for this release must be backported to the maintenance/2.4.x branch.

Update 2.4.0 milestones

Look at the issues/prs with 2.4.0 milestones and either push them off to a later version, or maybe remove the milestone. You may need to add a milestone.

Check the numpy-release repo

... (truncated)

Commits
  • dd88c0c Merge pull request #32511 from charris/prepare-2.5.3
  • edcac6a REL: Prepare for the NumPy 2.5.3 release
  • fd4d908 Merge pull request #32509 from charris/backport-32496
  • 65bb1da BUG: fix crash in ufunc.resolve_dtypes with a Python scalar type (#32496)
  • 294956e Merge pull request #32506 from charris/backport-32503
  • 26428d9 DOC: fix scipy docs links in intersphinx mapping (#32507)
  • 5fab1cb DOC: use static scipy doc site for intershpinx (#32503)
  • 7beed2f Merge pull request #32481 from ngoldbaum/stringdtype-backport
  • 8972f70 Merge pull request #32478 from charris/backport-32466
  • ab1b589 Merge pull request #32477 from charris/backport-32423
  • Additional commits viewable in compare view

Updates opencv-contrib-python-headless from 4.10.0.84 to 4.14.0.94

Release notes

Sourced from opencv-contrib-python-headless's releases.

4.14.0.94

Complete OpenCV 4.14.0 changelog: https://github.com/opencv/opencv/wiki/OpenCV-Change-Logs#version4140

Python specific:

  • Bumped ffmpeg to 8.1.2 to fix CVE-2026-8461
  • Added libav1d to FFmpeg configuration
  • Fixed tests with modern numpy #28349, #29122
  • Fixed: mark distCoeffs, cameraMatrix as optional in calibrateCamera function #28470
  • Fixed inRange type signature to accept Scalar values #28536
  • Fixed HoughCircles Python return type to allow None in python #28621
  • Fixed segfault on 0-channel numpy array input #28747
  • Added context manager compatibility for VideoCapture and VideoWriter #28967
  • Fixed python wrapper around ECCParameters to include itersPerLevel #29148

4.13.0.92

Follow up release for 4.13.0 with X server dependency fix. See #28438 for details.

4.13.0.90

Complete OpenCV 4.13.0 changelog: https://github.com/opencv/opencv/wiki/OpenCV-Change-Logs#version4130

Python specific:

  • Manylinux 2_28 support, Numpy 2.4 support, Python 3.14 support
  • Tuned Python bindings for logging #27812
  • Marked Feature2D.detectAndCompute mask as optional in Python type stubs #27544
  • Marked distCoeffs/R/D as optional in calib3d functions #27564
  • Added DLPACK support #27581, #27861
  • Fixed memory leaks in pybindings #27738
  • Add PathLike type hints for args annotated with CV_WRAP_FILE_PATH #27767
  • Fixed memory leak in pyopencv_to for path-like objects #28047
  • Tunned Python bindings: use export_name as resolved typename for AliasTypeNode #27997
  • python: fix pytest-cov false warnings by using compile() with full file path in exec_file_wrapper #28093
  • Fixed python scalar typing issues #27620
  • Fixed bug in ifdef state machine in header parser for bindings #27393
  • Wrap GridType field in cv::findCirclesGrid parameters structure #27689

4.12.0.88

Complete OpenCV 4.12.0 changelog: https://github.com/opencv/opencv/wiki/OpenCV-Change-Logs#version4120

Python:

  • Added libavif to the package and corresponding image format support on Linux and Mac OS. Windows is in progress.
  • Enabled GIF support by default.
  • Updated Numpy dependency rules. Packages for Python 3.9+ are built with Numpy 2.x. Packages for older Python version are built with Numpy 1.x.
  • Improved libjpeg-turbo performance in Windows builds (added NASM and assembly branches).
  • Made DNN, FLANN, G-API modules optional during the package build (bindings generation and typing).

4.11.0.86

Complete OpenCV 4.11.0 changelog: https://github.com/opencv/opencv/wiki/OpenCV-Change-Logs#version4110

Python:

  • Added Python 3.13 support

... (truncated)

Commits

Updates opencv-python-headless from 4.10.0.84 to 4.14.0.94

Release notes

Sourced from opencv-python-headless's releases.

4.14.0.94

Complete OpenCV 4.14.0 changelog: https://github.com/opencv/opencv/wiki/OpenCV-Change-Logs#version4140

Python specific:

  • Bumped ffmpeg to 8.1.2 to fix CVE-2026-8461
  • Added libav1d to FFmpeg configuration
  • Fixed tests with modern numpy #28349, #29122
  • Fixed: mark distCoeffs, cameraMatrix as optional in calibrateCamera function #28470
  • Fixed inRange type signature to accept Scalar values #28536
  • Fixed HoughCircles Python return type to allow None in python #28621
  • Fixed segfault on 0-channel numpy array input #28747
  • Added context manager compatibility for VideoCapture and VideoWriter #28967
  • Fixed python wrapper around ECCParameters to include itersPerLevel #29148

4.13.0.92

Follow up release for 4.13.0 with X server dependency fix. See #28438 for details.

4.13.0.90

Complete OpenCV 4.13.0 changelog: https://github.com/opencv/opencv/wiki/OpenCV-Change-Logs#version4130

Python specific:

  • Manylinux 2_28 support, Numpy 2.4 support, Python 3.14 support
  • Tuned Python bindings for logging #27812
  • Marked Feature2D.detectAndCompute mask as optional in Python type stubs #27544
  • Marked distCoeffs/R/D as optional in calib3d functions #27564
  • Added DLPACK support #27581, #27861
  • Fixed memory leaks in pybindings #27738
  • Add PathLike type hints for args annotated with CV_WRAP_FILE_PATH #27767
  • Fixed memory leak in pyopencv_to for path-like objects #28047
  • Tunned Python bindings: use export_name as resolved typename for AliasTypeNode #27997
  • python: fix pytest-cov false warnings by using compile() with full file path in exec_file_wrapper #28093
  • Fixed python scalar typing issues #27620
  • Fixed bug in ifdef state machine in header parser for bindings #27393
  • Wrap GridType field in cv::findCirclesGrid parameters structure #27689

4.12.0.88

Complete OpenCV 4.12.0 changelog: https://github.com/opencv/opencv/wiki/OpenCV-Change-Logs#version4120

Python:

  • Added libavif to the package and corresponding image format support on Linux and Mac OS. Windows is in progress.
  • Enabled GIF support by default.
  • Updated Numpy dependency rules. Packages for Python 3.9+ are built with Numpy 2.x. Packages for older Python version are built with Numpy 1.x.
  • Improved libjpeg-turbo performance in Windows builds (added NASM and assembly branches).
  • Made DNN, FLANN, G-API modules optional during the package build (bindings generation and typing).

4.11.0.86

Complete OpenCV 4.11.0 changelog: https://github.com/opencv/opencv/wiki/OpenCV-Change-Logs#version4110

Python:

  • Added Python 3.13 support

... (truncated)

Commits

Updates sahi from 0.11.36 to 0.12.6

Release notes

Sourced from sahi's releases.

0.12.6

A patch release with one performance fix. NMM postprocessing no longer slows down as its merge groups grow, which is the shape crowded scenes produce.

NMM merge time before and after, on crowded scenes

⚡ Performance

  • NMM stops rescanning merge lists it has already filled (obss/sahi#1422). Every candidate box was first searched for in the Python list of boxes already merged into the current keeper, and only then checked against the merge_to_keep array. That search costs one step per box already in the group, so a crowded scene, which ends up with a few very large groups, paid it on almost every candidate. A box is appended to a merge list and recorded in merge_to_keep in the same step, so the array lookup on its own already answers the question and the list search only repeated it. Removing it leaves every group exactly as it was and turns the merge bookkeeping from quadratic in the size of a group into linear. The dense, stored-pair and streaming paths share this bookkeeping, so all three improve, and the numba backend inherits the change through the dense one.

NMM on a crowded layout, IOS / 0.3:

boxes before after speedup
2000 324 ms 199 ms 1.6x
5000 2132 ms 896 ms 2.4x
10000 13303 ms 3531 ms 3.8x
20000 80153 ms 14625 ms 5.5x
33337 297170 ms 48926 ms 6.1x

📚 Documentation

Full Changelog: obss/sahi@0.12.5...0.12.6

0.12.5

A patch release that finishes the postprocessing memory work started in 0.12.2, which turned out to help only when boxes were spread out, and fixes two correctness problems found while testing it.

🐛 Fixes

  • Postprocessing memory no longer depends on how crowded the boxes are (#1417). Avoiding the N x N overlap matrix by storing one entry per intersecting pair is only a saving while boxes are spread out. Boxes piled on top of each other intersect nearly everything, so the pair count approaches N^2 and the stored list costs about as much as the matrix it replaced, which is exactly the layout that sliced inference produces on crowd scenes and small-object imagery. The merge loops read one row of matches at a time, and NMS and greedy NMM only ever read rows of boxes that survived, so rows are now answered from the STRtree on demand and peak memory is bounded by O(N + max_degree) whatever the layout. NMM reads a row per box rather than per survivor, so it keeps the stored pair list until that list is projected to be large.
  • A non-positive match_threshold no longer builds a metric matrix (#1417). Both metrics are non-negative, so metric >= 0 holds for every pair and the adjacency is the complete graph. The dense path was still computing every overlap to discover this, which made the one configuration that needs no overlap computation the most expensive one and reproduced the out-of-memory failure from #1374 at 25000 boxes. The result now follows from the score order alone.
  • NMM no longer merges a keeper into itself (#1416). A keeper was marked by leaving its merge_to_keep entry at -1, the same value that marks a box as unclaimed, so a box processed later could claim a keeper and append it to a merge list. With tied scores on duplicate boxes this produced a keeper listed inside its own merge list, and an index reachable as both a keeper and a merged box. Keepers now point at themselves, which makes them unclaimable without changing any other outcome.
  • Zero-area boxes no longer trigger a divide-by-zero warning (#1416). The metric computed inter / denom for every pair and discarded the invalid entries afterwards, so a degenerate box emitted a RuntimeWarning. The division is now masked instead of the result.

⚡ Performance

Postprocessing on crowded and scattered layouts, IOS / 0.3:

layout boxes NMS before NMS after peak memory before peak memory after
crowded 33337 47180 ms 135 ms 3416 MB 4 MB
crowded 20000 15931 ms 57 ms 1232 MB 2 MB
crowded 10000 2717 ms 25 ms 311 MB 1 MB
scattered 33336 539 ms 188 ms 65 MB 4 MB
  • The numba backend picks its path by box density (#1418). Its NMS and greedy NMM loops ran an exhaustive pairwise scan whatever the input. Routing them by prediction count alone would regress crowded scenes, because the JIT loop skips suppressed candidates and stays competitive long after the numpy one stops being viable, so the neighbour count decides instead and is estimated from a sample of the boxes. The score sort was also an insertion sort, quadratic in its own right, and now uses the same lexsort the other backends share, which produces an identical order including ties.
avg. neighbours per box, 20000 bbox NMS before NMS after greedy NMM before greedy NMM after

... (truncated)

Changelog

Sourced from sahi's changelog.

🚀 SAHI v0.12.6 Release Notes

A patch release with one performance fix. NMM postprocessing no longer slows down as its merge groups grow, which is the shape crowded scenes produce.

⚡ Performance

  • NMM stops rescanning merge lists it has already filled (#1422). Every candidate box was first searched for in the Python list of boxes already merged into the current keeper, and only then checked against the merge_to_keep array. That search costs one step per box already in the group, so a crowded scene, which ends up with a few very large groups, paid it on almost every candidate. A box is appended to a merge list and recorded in merge_to_keep in the same step, so the array lookup on its own already answers the question and the list search only repeated it. Removing it leaves every group exactly as it was and turns the merge bookkeeping from quadratic in the size of a group into linear. The dense, stored-pair and streaming paths share this bookkeeping, so all three improve, and the numba backend inherits the change through the dense one.

NMM merge time before and after, on crowded scenes

NMM on a crowded layout, IOS / 0.3:

boxes before after speedup
2000 324 ms 199 ms 1.6x
5000 2132 ms 896 ms 2.4x
10000 13303 ms 3531 ms 3.8x
20000 80153 ms 14625 ms 5.5x
33337 297170 ms 48926 ms 6.1x

📚 Documentation

  • The Chinese documentation now covers 0.12.5 (#1423).

🚀 SAHI v0.12.5 Release Notes

A patch release that finishes the postprocessing memory work started in 0.12.2, which turned out to help only when boxes were spread out, and fixes two correctness problems found while testing it.

🐛 Fixes

  • Postprocessing memory no longer depends on how crowded the boxes are (#1417). Avoiding the N x N overlap matrix by storing one entry per intersecting pair is only a saving while boxes are spread out. Boxes piled on top of each other intersect nearly everything, so the pair count approaches N^2 and the stored list costs about as much as the matrix it replaced, which is exactly the layout that sliced inference produces on crowd scenes and small-object imagery. The merge loops read one row of matches at a time, and NMS and greedy NMM only ever read rows of boxes that survived, so rows are now answered from the STRtree on demand and peak memory is bounded by O(N + max_degree) whatever the layout. NMM reads a row per box rather than per survivor, so it keeps the stored pair list until that list is projected to be large.
  • A non-positive match_threshold no longer builds a metric matrix (#1417). Both metrics are non-negative, so metric >= 0 holds for every pair and the adjacency is the complete graph. The dense path was still computing every overlap to discover this, which made the one configuration that needs no overlap computation the most expensive one and reproduced the out-of-memory failure from #1374 at 25000 boxes. The result now follows from the score order alone.
  • NMM no longer merges a keeper into itself (#1416). A keeper was marked by leaving its merge_to_keep entry at -1, the same value that marks a box as unclaimed, so a box processed later could claim a keeper and append it to a merge list. With tied scores on duplicate boxes this produced a keeper listed inside its own merge list, and an index reachable as both a keeper and a merged box. Keepers now point at themselves, which makes them unclaimable without changing any other outcome.
  • Zero-area boxes no longer trigger a divide-by-zero warning (#1416). The metric computed inter / denom for every pair and discarded the invalid entries afterwards, so a degenerate box emitted a RuntimeWarning. The division is now masked instead of the result.

⚡ Performance

Postprocessing on crowded and scattered layouts, IOS / 0.3:

layout boxes NMS before NMS after peak memory before peak memory after
crowded 33337 47180 ms 135 ms 3416 MB 4 MB
crowded 20000 15931 ms 57 ms 1232 MB 2 MB
crowded 10000 2717 ms 25 ms 311 MB 1 MB
scattered 33336 539 ms 188 ms 65 MB 4 MB

… updates

Bumps the python-runtime group with 72 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [click](https://github.com/pallets/click) | `8.3.3` | `8.5.0` |
| [hdbscan](https://github.com/scikit-learn-contrib/hdbscan) | `0.8.42` | `0.8.44` |
| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.10.9` | `3.11.1` |
| [numpy](https://github.com/numpy/numpy) | `2.2.4` | `2.5.3` |
| [opencv-contrib-python-headless](https://github.com/opencv/opencv-python) | `4.10.0.84` | `4.14.0.94` |
| [opencv-python-headless](https://github.com/opencv/opencv-python) | `4.10.0.84` | `4.14.0.94` |
| [sahi](https://github.com/obss/sahi) | `0.11.36` | `0.12.6` |
| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.8.0` | `1.9.1` |
| [scikit-image](https://github.com/scikit-image/scikit-image) | `0.24.0` | `0.26.0` |
| [modin](https://github.com/modin-project/modin) | `0.32.0` | `0.37.1` |
| [anyio](https://github.com/agronholm/anyio) | `4.13.0` | `4.15.1` |
| [asttokens](https://github.com/gristlabs/asttokens) | `3.0.1` | `3.0.2` |
| [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) | `4.14.3` | `4.15.0` |
| [bleach](https://github.com/mozilla/bleach) | `6.3.0` | `6.4.0` |
| [certifi](https://github.com/certifi/python-certifi) | `2026.4.22` | `2026.7.22` |
| [cffi](https://github.com/python-cffi/cffi) | `2.0.0` | `2.1.1` |
| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.7` | `3.5.1` |
| [dask](https://github.com/dask/dask) | `2026.3.0` | `2026.8.0` |
| [debugpy](https://github.com/microsoft/debugpy) | `1.8.20` | `1.8.21` |
| [decorator](https://github.com/micheles/decorator) | `5.2.1` | `5.3.1` |
| [distributed](https://github.com/dask/distributed) | `2026.3.0` | `2026.8.0` |
| [fastjsonschema](https://github.com/horejsek/python-fastjsonschema) | `2.21.2` | `2.22.2` |
| [filelock](https://github.com/tox-dev/py-filelock) | `3.29.0` | `3.32.6` |
| [fonttools](https://github.com/fonttools/fonttools) | `4.62.1` | `4.65.0` |
| [fsspec](https://github.com/fsspec/filesystem_spec) | `2026.4.0` | `2026.7.0` |
| [idna](https://github.com/kjd/idna) | `3.13` | `3.19` |
| [imageio](https://github.com/imageio/imageio) | `2.37.3` | `2.37.4` |
| [ipykernel](https://github.com/ipython/ipykernel) | `7.2.0` | `7.3.0` |
| [ipython](https://github.com/ipython/ipython) | `9.13.0` | `9.17.1` |
| [ipywidgets](https://github.com/jupyter-widgets/ipywidgets) | `8.1.8` | `8.1.9` |
| [joblib](https://github.com/joblib/joblib) | `1.5.3` | `1.6.0` |
| [json5](https://github.com/dpranke/pyjson5) | `0.14.0` | `0.15.0` |
| [jupyter-client](https://github.com/jupyter/jupyter_client) | `8.8.0` | `8.10.0` |
| [jupyter-server](https://github.com/jupyter-server/jupyter_server) | `2.18.2` | `2.21.0` |
| [jupyterlab](https://github.com/jupyterlab/jupyterlab) | `4.5.7` | `4.6.3` |
| [jupyterlab-widgets](https://github.com/jupyter-widgets/ipywidgets) | `3.0.16` | `3.0.17` |
| [kiwisolver](https://github.com/nucleic/kiwi) | `1.5.0` | `1.5.1` |
| [llvmlite](https://github.com/numba/llvmlite) | `0.47.0` | `0.49.0` |
| [mistune](https://github.com/lepture/mistune) | `3.2.1` | `3.3.4` |
| [mpmath](https://github.com/mpmath/mpmath) | `1.3.0` | `1.4.1` |
| [msgpack](https://github.com/msgpack/msgpack-python) | `1.1.2` | `1.2.2` |
| [nbclient](https://github.com/jupyter/nbclient) | `0.10.4` | `0.11.0` |
| [nbformat](https://github.com/jupyter/nbformat) | `5.10.4` | `5.11.1` |
| [notebook](https://github.com/jupyter/notebook) | `7.5.6` | `7.6.2` |
| [numba](https://github.com/numba/numba) | `0.65.1` | `0.67.0` |
| [packaging](https://github.com/pypa/packaging) | `26.2` | `26.3` |
| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.9.6` | `4.11.8` |
| [prometheus-client](https://github.com/prometheus/client_python) | `0.25.0` | `0.26.0` |
| [prompt-toolkit](https://github.com/prompt-toolkit/python-prompt-toolkit) | `3.0.52` | `3.0.53` |
| [protobuf](https://github.com/protocolbuffers/protobuf) | `7.34.1` | `7.36.1` |
| [pure-eval](https://github.com/alexmojaki/pure_eval) | `0.2.3` | `0.2.4` |
| [pybboxes](https://github.com/devrimcavusoglu/pybboxes) | `0.1.6` | `0.2.0` |
| [pygments](https://github.com/pygments/pygments) | `2.20.0` | `2.21.0` |
| [python-json-logger](https://github.com/nhairs/python-json-logger) | `4.1.0` | `4.2.0` |
| [pywavelets](https://github.com/PyWavelets/pywt) | `1.9.0` | `1.10.0` |
| [pyzmq](https://github.com/zeromq/pyzmq) | `27.1.0` | `27.2.0` |
| [ray](https://github.com/ray-project/ray) | `2.56.0` | `2.58.0` |
| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.4.4` | `2026.9.10` |
| [requests](https://github.com/psf/requests) | `2.33.1` | `2.34.2` |
| [safetensors](https://github.com/huggingface/safetensors) | `0.7.0` | `0.8.0` |
| [scipy](https://github.com/scipy/scipy) | `1.17.1` | `1.18.1` |
| [soupsieve](https://github.com/facelessuser/soupsieve) | `2.8.3` | `2.9.2` |
| [tifffile](https://github.com/cgohlke/tifffile) | `2026.5.2` | `2026.9.9` |
| [tinycss2](https://github.com/Kozea/tinycss2) | `1.4.0` | `1.5.1` |
| [tqdm](https://github.com/tqdm/tqdm) | `4.67.3` | `4.70.0` |
| [traitlets](https://github.com/ipython/traitlets) | `5.15.0` | `5.16.1` |
| [typing-extensions](https://github.com/python/typing_extensions) | `4.15.0` | `4.16.0` |
| [tzdata](https://github.com/python/tzdata) | `2026.2` | `2026.3` |
| [wcwidth](https://github.com/jquast/wcwidth) | `0.7.0` | `0.8.3` |
| [webencodings](https://github.com/CourtBouillon/webencodings) | `0.5.1` | `0.6.1` |
| [websocket-client](https://github.com/websocket-client/websocket-client) | `1.9.0` | `1.9.2` |
| [widgetsnbextension](http://jupyter.org) | `4.0.15` | `4.0.16` |



Updates `click` from 8.3.3 to 8.5.0
- [Release notes](https://github.com/pallets/click/releases)
- [Changelog](https://github.com/pallets/click/blob/main/CHANGES.md)
- [Commits](pallets/click@8.3.3...8.5.0)

Updates `hdbscan` from 0.8.42 to 0.8.44
- [Release notes](https://github.com/scikit-learn-contrib/hdbscan/releases)
- [Commits](scikit-learn-contrib/hdbscan@release-0.8.42...release-0.8.44)

Updates `matplotlib` from 3.10.9 to 3.11.1
- [Release notes](https://github.com/matplotlib/matplotlib/releases)
- [Commits](matplotlib/matplotlib@v3.10.9...v3.11.1)

Updates `numpy` from 2.2.4 to 2.5.3
- [Release notes](https://github.com/numpy/numpy/releases)
- [Changelog](https://github.com/numpy/numpy/blob/main/doc/RELEASE_WALKTHROUGH.rst)
- [Commits](numpy/numpy@v2.2.4...v2.5.3)

Updates `opencv-contrib-python-headless` from 4.10.0.84 to 4.14.0.94
- [Release notes](https://github.com/opencv/opencv-python/releases)
- [Commits](https://github.com/opencv/opencv-python/commits)

Updates `opencv-python-headless` from 4.10.0.84 to 4.14.0.94
- [Release notes](https://github.com/opencv/opencv-python/releases)
- [Commits](https://github.com/opencv/opencv-python/commits)

Updates `sahi` from 0.11.36 to 0.12.6
- [Release notes](https://github.com/obss/sahi/releases)
- [Changelog](https://github.com/obss/sahi/blob/main/CHANGELOG.md)
- [Commits](obss/sahi@0.11.36...0.12.6)

Updates `scikit-learn` from 1.8.0 to 1.9.1
- [Release notes](https://github.com/scikit-learn/scikit-learn/releases)
- [Commits](scikit-learn/scikit-learn@1.8.0...1.9.1)

Updates `scikit-image` from 0.24.0 to 0.26.0
- [Release notes](https://github.com/scikit-image/scikit-image/releases)
- [Changelog](https://github.com/scikit-image/scikit-image/blob/main/RELEASE.txt)
- [Commits](scikit-image/scikit-image@v0.24.0...v0.26.0)

Updates `modin` from 0.32.0 to 0.37.1
- [Release notes](https://github.com/modin-project/modin/releases)
- [Changelog](https://github.com/modin-project/modin/blob/main/docs/release-procedure.md)
- [Commits](modin-project/modin@0.32.0...0.37.1)

Updates `anyio` from 4.13.0 to 4.15.1
- [Release notes](https://github.com/agronholm/anyio/releases)
- [Commits](agronholm/anyio@4.13.0...4.15.1)

Updates `asttokens` from 3.0.1 to 3.0.2
- [Release notes](https://github.com/gristlabs/asttokens/releases)
- [Commits](gristlabs/asttokens@v3.0.1...v3.0.2)

Updates `beautifulsoup4` from 4.14.3 to 4.15.0

Updates `bleach` from 6.3.0 to 6.4.0
- [Changelog](https://github.com/mozilla/bleach/blob/main/CHANGES)
- [Commits](mozilla/bleach@v6.3.0...v6.4.0)

Updates `certifi` from 2026.4.22 to 2026.7.22
- [Commits](certifi/python-certifi@2026.04.22...2026.07.22)

Updates `cffi` from 2.0.0 to 2.1.1
- [Release notes](https://github.com/python-cffi/cffi/releases)
- [Commits](python-cffi/cffi@v2.0.0...v2.1.1)

Updates `charset-normalizer` from 3.4.7 to 3.5.1
- [Release notes](https://github.com/jawah/charset_normalizer/releases)
- [Changelog](https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md)
- [Commits](jawah/charset_normalizer@3.4.7...3.5.1)

Updates `dask` from 2026.3.0 to 2026.8.0
- [Release notes](https://github.com/dask/dask/releases)
- [Changelog](https://github.com/dask/dask/blob/main/docs/release-procedure.md)
- [Commits](dask/dask@2026.3.0...2026.8.0)

Updates `debugpy` from 1.8.20 to 1.8.21
- [Release notes](https://github.com/microsoft/debugpy/releases)
- [Commits](microsoft/debugpy@v1.8.20...v1.8.21)

Updates `decorator` from 5.2.1 to 5.3.1
- [Release notes](https://github.com/micheles/decorator/releases)
- [Changelog](https://github.com/micheles/decorator/blob/master/CHANGES.md)
- [Commits](micheles/decorator@5.2.1...5.3.1)

Updates `distributed` from 2026.3.0 to 2026.8.0
- [Release notes](https://github.com/dask/distributed/releases)
- [Changelog](https://github.com/dask/distributed/blob/main/docs/release-procedure.md)
- [Commits](dask/distributed@2026.3.0...2026.8.0)

Updates `fastjsonschema` from 2.21.2 to 2.22.2
- [Changelog](https://github.com/horejsek/python-fastjsonschema/blob/master/CHANGELOG.txt)
- [Commits](horejsek/python-fastjsonschema@v2.21.2...v2.22.2)

Updates `filelock` from 3.29.0 to 3.32.6
- [Release notes](https://github.com/tox-dev/py-filelock/releases)
- [Changelog](https://github.com/tox-dev/filelock/blob/main/docs/changelog.rst)
- [Commits](tox-dev/filelock@3.29.0...3.32.6)

Updates `fonttools` from 4.62.1 to 4.65.0
- [Release notes](https://github.com/fonttools/fonttools/releases)
- [Changelog](https://github.com/fonttools/fonttools/blob/main/NEWS.rst)
- [Commits](fonttools/fonttools@4.62.1...4.65.0)

Updates `fsspec` from 2026.4.0 to 2026.7.0
- [Commits](fsspec/filesystem_spec@2026.4.0...2026.7.0)

Updates `idna` from 3.13 to 3.19
- [Release notes](https://github.com/kjd/idna/releases)
- [Changelog](https://github.com/kjd/idna/blob/master/HISTORY.md)
- [Commits](kjd/idna@v3.13...v3.19)

Updates `imageio` from 2.37.3 to 2.37.4
- [Release notes](https://github.com/imageio/imageio/releases)
- [Changelog](https://github.com/imageio/imageio/blob/master/CHANGELOG.md)
- [Commits](imageio/imageio@v2.37.3...v2.37.4)

Updates `ipykernel` from 7.2.0 to 7.3.0
- [Release notes](https://github.com/ipython/ipykernel/releases)
- [Changelog](https://github.com/ipython/ipykernel/blob/main/CHANGELOG.md)
- [Commits](ipython/ipykernel@v7.2.0...v7.3.0)

Updates `ipython` from 9.13.0 to 9.17.1
- [Release notes](https://github.com/ipython/ipython/releases)
- [Commits](ipython/ipython@9.13.0...9.17.1)

Updates `ipywidgets` from 8.1.8 to 8.1.9
- [Release notes](https://github.com/jupyter-widgets/ipywidgets/releases)
- [Commits](jupyter-widgets/ipywidgets@8.1.8...8.1.9)

Updates `joblib` from 1.5.3 to 1.6.0
- [Release notes](https://github.com/joblib/joblib/releases)
- [Changelog](https://github.com/joblib/joblib/blob/main/CHANGES.rst)
- [Commits](joblib/joblib@1.5.3...1.6.0)

Updates `json5` from 0.14.0 to 0.15.0
- [Commits](dpranke/pyjson5@v0.14.0...v0.15.0)

Updates `jupyter-client` from 8.8.0 to 8.10.0
- [Release notes](https://github.com/jupyter/jupyter_client/releases)
- [Changelog](https://github.com/jupyter/jupyter_client/blob/main/CHANGELOG.md)
- [Commits](jupyter/jupyter_client@v8.8.0...v8.10.0)

Updates `jupyter-server` from 2.18.2 to 2.21.0
- [Release notes](https://github.com/jupyter-server/jupyter_server/releases)
- [Changelog](https://github.com/jupyter-server/jupyter_server/blob/main/CHANGELOG.md)
- [Commits](jupyter-server/jupyter_server@v2.18.2...v2.21.0)

Updates `jupyterlab` from 4.5.7 to 4.6.3
- [Release notes](https://github.com/jupyterlab/jupyterlab/releases)
- [Changelog](https://github.com/jupyterlab/jupyterlab/blob/main/RELEASE.md)
- [Commits](https://github.com/jupyterlab/jupyterlab/compare/@jupyterlab/lsp@4.5.7...@jupyterlab/lsp@4.6.3)

Updates `jupyterlab-widgets` from 3.0.16 to 3.0.17
- [Release notes](https://github.com/jupyter-widgets/ipywidgets/releases)
- [Commits](https://github.com/jupyter-widgets/ipywidgets/commits)

Updates `kiwisolver` from 1.5.0 to 1.5.1
- [Release notes](https://github.com/nucleic/kiwi/releases)
- [Changelog](https://github.com/nucleic/kiwi/blob/main/releasenotes.rst)
- [Commits](nucleic/kiwi@1.5.0...1.5.1)

Updates `llvmlite` from 0.47.0 to 0.49.0
- [Release notes](https://github.com/numba/llvmlite/releases)
- [Commits](numba/llvmlite@v0.47.0...v0.49.0)

Updates `mistune` from 3.2.1 to 3.3.4
- [Release notes](https://github.com/lepture/mistune/releases)
- [Changelog](https://github.com/lepture/mistune/blob/main/docs/changes.rst)
- [Commits](lepture/mistune@v3.2.1...v3.3.4)

Updates `mpmath` from 1.3.0 to 1.4.1
- [Release notes](https://github.com/mpmath/mpmath/releases)
- [Changelog](https://github.com/mpmath/mpmath/blob/master/CHANGES)
- [Commits](mpmath/mpmath@1.3.0...1.4.1)

Updates `msgpack` from 1.1.2 to 1.2.2
- [Release notes](https://github.com/msgpack/msgpack-python/releases)
- [Changelog](https://github.com/msgpack/msgpack-python/blob/main/CHANGELOG.md)
- [Commits](msgpack/msgpack-python@v1.1.2...v1.2.2)

Updates `nbclient` from 0.10.4 to 0.11.0
- [Release notes](https://github.com/jupyter/nbclient/releases)
- [Changelog](https://github.com/jupyter/nbclient/blob/main/CHANGELOG.md)
- [Commits](jupyter/nbclient@v0.10.4...v0.11.0)

Updates `nbformat` from 5.10.4 to 5.11.1
- [Release notes](https://github.com/jupyter/nbformat/releases)
- [Changelog](https://github.com/jupyter/nbformat/blob/main/CHANGELOG.md)
- [Commits](jupyter/nbformat@v5.10.4...v5.11.1)

Updates `notebook` from 7.5.6 to 7.6.2
- [Release notes](https://github.com/jupyter/notebook/releases)
- [Changelog](https://github.com/jupyter/notebook/blob/@jupyter-notebook/tree@7.6.2/CHANGELOG.md)
- [Commits](https://github.com/jupyter/notebook/compare/@jupyter-notebook/tree@7.5.6...@jupyter-notebook/tree@7.6.2)

Updates `numba` from 0.65.1 to 0.67.0
- [Release notes](https://github.com/numba/numba/releases)
- [Commits](numba/numba@0.65.1...0.67.0)

Updates `packaging` from 26.2 to 26.3
- [Release notes](https://github.com/pypa/packaging/releases)
- [Changelog](https://github.com/pypa/packaging/blob/main/CHANGELOG.rst)
- [Commits](pypa/packaging@26.2...26.3)

Updates `platformdirs` from 4.9.6 to 4.11.8
- [Release notes](https://github.com/tox-dev/platformdirs/releases)
- [Changelog](https://github.com/tox-dev/platformdirs/blob/main/docs/changelog.rst)
- [Commits](tox-dev/platformdirs@4.9.6...4.11.8)

Updates `prometheus-client` from 0.25.0 to 0.26.0
- [Release notes](https://github.com/prometheus/client_python/releases)
- [Commits](prometheus/client_python@v0.25.0...v0.26.0)

Updates `prompt-toolkit` from 3.0.52 to 3.0.53
- [Release notes](https://github.com/prompt-toolkit/python-prompt-toolkit/releases)
- [Changelog](https://github.com/prompt-toolkit/python-prompt-toolkit/blob/main/CHANGELOG)
- [Commits](prompt-toolkit/python-prompt-toolkit@3.0.52...3.0.53)

Updates `protobuf` from 7.34.1 to 7.36.1
- [Release notes](https://github.com/protocolbuffers/protobuf/releases)
- [Commits](https://github.com/protocolbuffers/protobuf/commits)

Updates `pure-eval` from 0.2.3 to 0.2.4
- [Commits](alexmojaki/pure_eval@v0.2.3...v0.2.4)

Updates `pybboxes` from 0.1.6 to 0.2.0
- [Release notes](https://github.com/devrimcavusoglu/pybboxes/releases)
- [Commits](devrimcavusoglu/pybboxes@0.1.6...0.2.0)

Updates `pygments` from 2.20.0 to 2.21.0
- [Release notes](https://github.com/pygments/pygments/releases)
- [Changelog](https://github.com/pygments/pygments/blob/master/CHANGES)
- [Commits](pygments/pygments@2.20.0...2.21.0)

Updates `python-json-logger` from 4.1.0 to 4.2.0
- [Release notes](https://github.com/nhairs/python-json-logger/releases)
- [Changelog](https://github.com/nhairs/python-json-logger/blob/main/docs/changelog.md)
- [Commits](nhairs/python-json-logger@v4.1.0...v4.2.0)

Updates `pywavelets` from 1.9.0 to 1.10.0
- [Release notes](https://github.com/PyWavelets/pywt/releases)
- [Commits](PyWavelets/pywt@v1.9.0...v1.10.0)

Updates `pyzmq` from 27.1.0 to 27.2.0
- [Release notes](https://github.com/zeromq/pyzmq/releases)
- [Commits](zeromq/pyzmq@v27.1.0...v27.2.0)

Updates `ray` from 2.56.0 to 2.58.0
- [Release notes](https://github.com/ray-project/ray/releases)
- [Commits](ray-project/ray@ray-2.56.0...ray-2.58.0)

Updates `regex` from 2026.4.4 to 2026.9.10
- [Changelog](https://github.com/mrabarnett/mrab-regex/blob/hg/changelog.txt)
- [Commits](mrabarnett/mrab-regex@2026.4.4...2026.9.10)

Updates `requests` from 2.33.1 to 2.34.2
- [Release notes](https://github.com/psf/requests/releases)
- [Changelog](https://github.com/psf/requests/blob/main/HISTORY.md)
- [Commits](psf/requests@v2.33.1...v2.34.2)

Updates `safetensors` from 0.7.0 to 0.8.0
- [Release notes](https://github.com/huggingface/safetensors/releases)
- [Changelog](https://github.com/safetensors/safetensors/blob/main/RELEASE.md)
- [Commits](safetensors/safetensors@v0.7.0...v0.8.0)

Updates `scipy` from 1.17.1 to 1.18.1
- [Release notes](https://github.com/scipy/scipy/releases)
- [Commits](scipy/scipy@v1.17.1...v1.18.1)

Updates `soupsieve` from 2.8.3 to 2.9.2
- [Release notes](https://github.com/facelessuser/soupsieve/releases)
- [Commits](facelessuser/soupsieve@2.8.3...2.9.2)

Updates `tifffile` from 2026.5.2 to 2026.9.9
- [Release notes](https://github.com/cgohlke/tifffile/releases)
- [Changelog](https://github.com/cgohlke/tifffile/blob/master/CHANGES.rst)
- [Commits](cgohlke/tifffile@v2026.5.2...v2026.9.9)

Updates `tinycss2` from 1.4.0 to 1.5.1
- [Release notes](https://github.com/Kozea/tinycss2/releases)
- [Changelog](https://github.com/Kozea/tinycss2/blob/main/docs/changelog.rst)
- [Commits](Kozea/tinycss2@v1.4.0...v1.5.1)

Updates `tqdm` from 4.67.3 to 4.70.0
- [Release notes](https://github.com/tqdm/tqdm/releases)
- [Commits](tqdm/tqdm@v4.67.3...v4.70.0)

Updates `traitlets` from 5.15.0 to 5.16.1
- [Release notes](https://github.com/ipython/traitlets/releases)
- [Changelog](https://github.com/ipython/traitlets/blob/main/CHANGELOG.md)
- [Commits](ipython/traitlets@v5.15.0...v5.16.1)

Updates `typing-extensions` from 4.15.0 to 4.16.0
- [Release notes](https://github.com/python/typing_extensions/releases)
- [Changelog](https://github.com/python/typing_extensions/blob/main/CHANGELOG.md)
- [Commits](python/typing_extensions@4.15.0...4.16.0)

Updates `tzdata` from 2026.2 to 2026.3
- [Release notes](https://github.com/python/tzdata/releases)
- [Changelog](https://github.com/python/tzdata/blob/master/NEWS.md)
- [Commits](python/tzdata@2026.2...2026.3)

Updates `wcwidth` from 0.7.0 to 0.8.3
- [Release notes](https://github.com/jquast/wcwidth/releases)
- [Commits](jquast/wcwidth@0.7.0...0.8.3)

Updates `webencodings` from 0.5.1 to 0.6.1
- [Release notes](https://github.com/CourtBouillon/webencodings/releases)
- [Changelog](https://github.com/CourtBouillon/webencodings/blob/main/docs/changelog.rst)
- [Commits](CourtBouillon/webencodings@v0.5.1...v0.6.1)

Updates `websocket-client` from 1.9.0 to 1.9.2
- [Release notes](https://github.com/websocket-client/websocket-client/releases)
- [Changelog](https://github.com/websocket-client/websocket-client/blob/master/ChangeLog)
- [Commits](websocket-client/websocket-client@v1.9.0...v1.9.2)

Updates `widgetsnbextension` from 4.0.15 to 4.0.16

---
updated-dependencies:
- dependency-name: click
  dependency-version: 8.5.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-runtime
- dependency-name: hdbscan
  dependency-version: 0.8.44
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: python-runtime
- dependency-name: matplotlib
  dependency-version: 3.11.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-runtime
- dependency-name: numpy
  dependency-version: 2.5.3
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-runtime
- dependency-name: opencv-contrib-python-headless
  dependency-version: 4.14.0.94
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-runtime
- dependency-name: opencv-python-headless
  dependency-version: 4.14.0.94
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-runtime
- dependency-name: sahi
  dependency-version: 0.12.6
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-runtime
- dependency-name: scikit-learn
  dependency-version: 1.9.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-runtime
- dependency-name: scikit-image
  dependency-version: 0.26.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-runtime
- dependency-name: modin
  dependency-version: 0.37.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-runtime
- dependency-name: anyio
  dependency-version: 4.15.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-runtime
- dependency-name: asttokens
  dependency-version: 3.0.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: python-runtime
- dependency-name: beautifulsoup4
  dependency-version: 4.15.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-runtime
- dependency-name: bleach
  dependency-version: 6.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-runtime
- dependency-name: certifi
  dependency-version: 2026.7.22
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-runtime
- dependency-name: cffi
  dependency-version: 2.1.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-runtime
- dependency-name: charset-normalizer
  dependency-version: 3.5.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-runtime
- dependency-name: dask
  dependency-version: 2026.8.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-runtime
- dependency-name: debugpy
  dependency-version: 1.8.21
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: python-runtime
- dependency-name: decorator
  dependency-version: 5.3.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-runtime
- dependency-name: distributed
  dependency-version: 2026.8.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-runtime
- dependency-name: fastjsonschema
  dependency-version: 2.22.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-runtime
- dependency-name: filelock
  dependency-version: 3.32.6
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-runtime
- dependency-name: fonttools
  dependency-version: 4.65.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-runtime
- dependency-name: fsspec
  dependency-version: 2026.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-runtime
- dependency-name: idna
  dependency-version: '3.19'
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-runtime
- dependency-name: imageio
  dependency-version: 2.37.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: python-runtime
- dependency-name: ipykernel
  dependency-version: 7.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-runtime
- dependency-name: ipython
  dependency-version: 9.17.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-runtime
- dependency-name: ipywidgets
  dependency-version: 8.1.9
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: python-runtime
- dependency-name: joblib
  dependency-version: 1.6.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-runtime
- dependency-name: json5
  dependency-version: 0.15.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-runtime
- dependency-name: jupyter-client
  dependency-version: 8.10.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-runtime
- dependency-name: jupyter-server
  dependency-version: 2.21.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-runtime
- dependency-name: jupyterlab
  dependency-version: 4.6.3
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-runtime
- dependency-name: jupyterlab-widgets
  dependency-version: 3.0.17
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: python-runtime
- dependency-name: kiwisolver
  dependency-version: 1.5.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: python-runtime
- dependency-name: llvmlite
  dependency-version: 0.49.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-runtime
- dependency-name: mistune
  dependency-version: 3.3.4
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-runtime
- dependency-name: mpmath
  dependency-version: 1.4.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-runtime
- dependency-name: msgpack
  dependency-version: 1.2.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-runtime
- dependency-name: nbclient
  dependency-version: 0.11.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-runtime
- dependency-name: nbformat
  dependency-version: 5.11.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-runtime
- dependency-name: notebook
  dependency-version: 7.6.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-runtime
- dependency-name: numba
  dependency-version: 0.67.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-runtime
- dependency-name: packaging
  dependency-version: '26.3'
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-runtime
- dependency-name: platformdirs
  dependency-version: 4.11.8
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-runtime
- dependency-name: prometheus-client
  dependency-version: 0.26.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-runtime
- dependency-name: prompt-toolkit
  dependency-version: 3.0.53
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: python-runtime
- dependency-name: protobuf
  dependency-version: 7.36.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-runtime
- dependency-name: pure-eval
  dependency-version: 0.2.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: python-runtime
- dependency-name: pybboxes
  dependency-version: 0.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-runtime
- dependency-name: pygments
  dependency-version: 2.21.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-runtime
- dependency-name: python-json-logger
  dependency-version: 4.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-runtime
- dependency-name: pywavelets
  dependency-version: 1.10.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-runtime
- dependency-name: pyzmq
  dependency-version: 27.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-runtime
- dependency-name: ray
  dependency-version: 2.58.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-runtime
- dependency-name: regex
  dependency-version: 2026.9.10
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-runtime
- dependency-name: requests
  dependency-version: 2.34.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-runtime
- dependency-name: safetensors
  dependency-version: 0.8.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-runtime
- dependency-name: scipy
  dependency-version: 1.18.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-runtime
- dependency-name: soupsieve
  dependency-version: 2.9.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-runtime
- dependency-name: tifffile
  dependency-version: 2026.9.9
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-runtime
- dependency-name: tinycss2
  dependency-version: 1.5.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-runtime
- dependency-name: tqdm
  dependency-version: 4.70.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-runtime
- dependency-name: traitlets
  dependency-version: 5.16.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-runtime
- dependency-name: typing-extensions
  dependency-version: 4.16.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-runtime
- dependency-name: tzdata
  dependency-version: '2026.3'
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-runtime
- dependency-name: wcwidth
  dependency-version: 0.8.3
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-runtime
- dependency-name: webencodings
  dependency-version: 0.6.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-runtime
- dependency-name: websocket-client
  dependency-version: 1.9.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: python-runtime
- dependency-name: widgetsnbextension
  dependency-version: 4.0.16
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: python-runtime
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file python Pull requests that update python code labels Sep 14, 2026
@dependabot @github

dependabot Bot commented on behalf of github Sep 21, 2026

Copy link
Copy Markdown
Contributor Author

Looks like these dependencies are updatable in another way, so this is no longer needed.

@dependabot dependabot Bot closed this Sep 21, 2026
@dependabot
dependabot Bot deleted the dependabot/pip/python-runtime-49590a997d branch September 21, 2026 02:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file python Pull requests that update python code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants