SciPy 1.13.0 is the culmination of 3 months of hard work. This
out-of-band release aims to support NumPy 2.0.0, and is backwards
compatible to NumPy 1.22.4. The version of OpenBLAS used to build
the PyPI wheels has been increased to 0.3.26.dev.
This release requires Python 3.9+ and NumPy 1.22.4 or greater.
For running on PyPy, PyPy3 6.0+ is required.
Highlights of this release
Support for NumPy 2.0.0.
Interactive examples have been added to the documentation, allowing users
to run the examples locally on embedded Jupyterlite notebooks in their
browser.
Preliminary 1D array support for the COO and DOK sparse formats.
Several scipy.stats functions have gained support for additional
axis, nan_policy, and keepdims arguments. scipy.stats also
has several performance and accuracy improvements.
New features
scipy.integrate improvements
The terminal attribute of scipy.integrate.solve_ivpevents
callables now additionally accepts integer values to specify a number
of occurrences required for termination, rather than the previous restriction
of only accepting a bool value to terminate on the first registered
event.
scipy.io improvements
scipy.io.wavfile.write has improved dtype input validation.
scipy.interpolate improvements
The Modified Akima Interpolation has been added to
interpolate.Akima1DInterpolator, available via the new method
argument.
New method BSpline.insert_knot inserts a knot into a BSpline instance.
This routine is similar to the module-level scipy.interpolate.insert
function, and works with the BSpline objects instead of tck tuples.
Added initial support for function and class reporting in the HTML report.
There are now three index pages which link to each other: files, functions,
and classes. Other reports don't yet have this information, but it will be
added in the future where it makes sense. Feedback gladly accepted!
Finishes issue 780_.
Other HTML report improvements:
There is now a "hide covered" checkbox to filter out 100% files, finishing
issue 1384_.
The index page is always sorted by one of its columns, with clearer
indications of the sorting.
The "previous file" shortcut key didn't work on the index page, but now it
does, fixing issue 1765_.
The debug output showing which configuration files were tried now shows
absolute paths to help diagnose problems where settings aren't taking effect,
and is renamed from "attempted_config_files" to the more logical
"config_files_attempted."
#12069: A deprecation warning is now raised when implementations of one of the following hooks request a deprecated py.path.local parameter instead of the pathlib.Path parameter which replaced it:
pytest_ignore_collect{.interpreted-text role="hook"} - the path parameter - use collection_path instead.
pytest_collect_file{.interpreted-text role="hook"} - the path parameter - use file_path instead.
pytest_pycollect_makemodule{.interpreted-text role="hook"} - the path parameter - use module_path instead.
pytest_report_header{.interpreted-text role="hook"} - the startdir parameter - use start_path instead.
pytest_report_collectionfinish{.interpreted-text role="hook"} - the startdir parameter - use start_path instead.
The replacement parameters are available since pytest 7.0.0.
The old parameters will be removed in pytest 9.0.0.
See legacy-path-hooks-deprecated{.interpreted-text role="ref"} for more details.
Features
#11871: Added support for reading command line arguments from a file using the prefix character @, like e.g.: pytest @tests.txt. The file must have one argument per line.
See Read arguments from file <args-from-file>{.interpreted-text role="ref"} for details.
Improvements
#11523: pytest.importorskip{.interpreted-text role="func"} will now issue a warning if the module could be found, but raised ImportError{.interpreted-text role="class"} instead of ModuleNotFoundError{.interpreted-text role="class"}.
The warning can be suppressed by passing exc_type=ImportError to pytest.importorskip{.interpreted-text role="func"}.
See import-or-skip-import-error{.interpreted-text role="ref"} for details.
#11728: For unittest-based tests, exceptions during class cleanup (as raised by functions registered with TestCase.addClassCleanup <unittest.TestCase.addClassCleanup>{.interpreted-text role="meth"}) are now reported instead of silently failing.
#11777: Text is no longer truncated in the short test summary info section when -vv is given.
#12112: Improved namespace packages detection when consider_namespace_packages{.interpreted-text role="confval"} is enabled, covering more situations (like editable installs).
#9502: Added PYTEST_VERSION{.interpreted-text role="envvar"} environment variable which is defined at the start of the pytest session and undefined afterwards. It contains the value of pytest.__version__, and among other things can be used to easily check if code is running from within a pytest run.
Bug Fixes
#12065: Fixed a regression in pytest 8.0.0 where test classes containing setup_method and tests using @staticmethod or @classmethod would crash with AttributeError: 'NoneType' object has no attribute 'setup_method'.
Now the request.instance <pytest.FixtureRequest.instance>{.interpreted-text role="attr"} attribute of tests using @staticmethod and @classmethod is no longer None, but a fresh instance of the class, like in non-static methods.
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)
- `@dependabot ignore minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)
- `@dependabot ignore ` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore ` will remove all of the ignore conditions of the specified dependency
- `@dependabot unignore ` will remove the ignore condition of the specified dependency and ignore conditions
Bumps the pip-version group with 4 updates: scipy, cmake, coverage and pytest.
Updates
scipy
from 1.12.0 to 1.13.0Release notes
Sourced from scipy's releases.
... (truncated)
Commits
7dcd8c5
REL: 1.13.0 release commit [wheel build]15a69da
Merge pull request #20375 from tylerjereddy/treddy_prep_1_13_0_final4cbb9e8
DOC: PR 20375 revisions2431661
MAINT: PR 20375 revisions [wheel build]b85940a
DOC, REL: set 1.13.0 final unreleased13c30bd
MAINT: spatial: simplify meson.buildabb04b2
MAINT: spatial: use cython_lapack in spatial/_qhull.pyx729ff0f
BUG: interpolate: Fix wrong warning message if degree=-1 in `interpolate.RBFI...8d82b0a
MAINT, BUG: bump OpenBLAS (#20362)0e67a72
MAINT: backport amos license updateUpdates
cmake
from 3.29.0.1 to 3.29.2Release notes
Sourced from cmake's releases.
Commits
5abd818
Update to CMake 3.29.2c9002ba
Add back the dependency on importlib_metadata for python < 3.8557c82a
ci: fix test disabling (#488)2d24366
chore(deps): update pre-commit hooks (#485)612ec91
docs: fix rtd and update release instructions (#484)9415fb7
Update to CMake 3.29.1 (#483)3d70935
chore: integrate types and typecheck (#482)a674047
chore: modernize update script (#481)ad097fd
fix: don't request cmake when building even if not present (#480)0fcabfe
chore(deps): update pre-commit hooks (#476)Updates
coverage
from 7.4.4 to 7.5.0Changelog
Sourced from coverage's changelog.
Commits
5f4e034
docs: sample HTML for 7.5.0ed97cfb
docs: prep for 7.5.041e01d3
build: use macos 13 for 3.8 and 3.9 while GitHub rolls out macos 14583f0c0
test: add a test for skipping covered functionsb115ed3
refactor: keep Analysis private40a052e
docs: document CodeRegion and its plugin methods2ff9933
docs: remove comment that now explains nothing.a6ba1c8
fix: html report pages fully validate74c87a8
fix: previous page shortcut works in index page. #1765e016967
feat: main index page links to other index pagesUpdates
pytest
from 8.1.1 to 8.2.0Release notes
Sourced from pytest's releases.
... (truncated)
Commits
6bd3f31
Tweak changelog for 8.2.09b6219b
Prepare release version 8.2.0835765c
Merge pull request #12130 from bluetech/fixtures-inline7e7503c
unittest: report class cleanup exceptions (#12250)882c4da
fixtures: inlinefail_fixturefunc
2e8fb9f
fixtures: extract a_check_fixturedef
methodacf2971
fixtures: inline_getnextfixturedef
into_get_active_fixturedef
3c77aec
fixtures: move "request" check earlyd217d68
fixtures: inline_compute_fixture_value
530be28
fixtures: use early return in_get_active_fixturedef
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show