The strict_exception_groups parameter now defaults to True in trio.run and trio.lowlevel.start_guest_run. trio.open_nursery still defaults to the same value as was specified in trio.run/trio.lowlevel.start_guest_run, but if you didn't specify it there then all subsequent calls to trio.open_nursery will change.
This is unfortunately very tricky to change with a deprecation period, as raising a DeprecationWarning whenever strict_exception_groups is not specified would raise a lot of unnecessary warnings.
Notable side effects of changing code to run with strict_exception_groups==True
If an iterator raises StopAsyncIteration or StopIteration inside a nursery, then python will not recognize wrapped instances of those for stopping iteration.
trio.run_process is now documented that it can raise an ExceptionGroup. It previously could do this in very rare circumstances, but with strict_exception_groups set to True it will now do so whenever exceptions occur in deliver_cancel or with problems communicating with the subprocess.
Errors in opening the process is now done outside the internal nursery, so if code previously ran with strict_exception_groups=True there are cases now where an ExceptionGroup is no longer added.
trio.TrioInternalError.__cause__ might be wrapped in one or more ExceptionGroups <ExceptionGroup> (python-trio/trio#2786)
Features
Add trio.testing.wait_all_threads_completed, which blocks until no threads are running tasks. This is intended to be used in the same way as trio.testing.wait_all_tasks_blocked. (python-trio/trio#2937)
Path is now a subclass of pathlib.PurePath, allowing it to interoperate with other standard
pathlib types.
Instantiating Path now returns a concrete platform-specific subclass, one of PosixPath or
WindowsPath, matching the behavior of pathlib.Path. (python-trio/trio#2959)
Bugfixes
The pthread functions are now correctly found on systems using vanilla versions of musl libc. (python-trio/trio#2939)
You can trigger a rebase of this PR 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 this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Note
Automatic rebases have been disabled on this pull request as it has been open for over 30 days.
Bumps trio from 0.24.0 to 0.25.0.
Release notes
Sourced from trio's releases.
Commits
0b8d3e2
Bump version to 0.25.0e3fd384
[pre-commit.ci] pre-commit autoupdate ruff-pre-commit: v0.3.0 → v0.3.2f890f8f
Path
refactor (#2959)379d99b
Add pre-commit autoupdate to autodeps (#2970)b541b8b
bump pyright, introducing warnings for tons of missing docstrings (#2910)9dcf733
fix: updated the google docstring url (#2967)48f8293
Bump dependencies from commit 13ee1b (#2966)13ee1b0
Remove incorrectstr
possibility from HostnameResolver.getaddrinfo (#2964)accaae4
use the regular readme for the long description (#2866)78c55aa
[pre-commit.ci] pre-commit autoupdate (#2962)You can trigger a rebase of this PR 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