-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix(deps): update dependency trio to ^0.28.0 #101
base: main
Are you sure you want to change the base?
Conversation
⚠ Artifact update problemRenovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is. ♻ Renovate will retry this branch, including artifacts, only when one of the following happens:
The artifact failure details are included below: File name: poetry.lock
|
🦙 MegaLinter status: ✅ SUCCESS
See detailed report in MegaLinter reports |
e7d5168
to
89c4b41
Compare
89c4b41
to
5de74ff
Compare
5de74ff
to
6307e30
Compare
|
6307e30
to
143c038
Compare
143c038
to
0e39a69
Compare
This PR contains the following updates:
^0.22.2
->^0.28.0
Release Notes
python-trio/trio (trio)
v0.28.0
Compare Source
Full Changelog: python-trio/trio@v0.27.0...v0.28.0
Bugfixes
:func:
inspect.iscoroutinefunction
and the like now give correct answers whencalled on KI-protected functionhttps://github.com/python-trio/trio/issues/26702670)
Rework KeyboardInterrupt protection to track code objects, rather than frames,
as protected or not. The new implementation no longer needs to access
frame.f_locals
dictionaries, so it won't artificially extend the lifetime oflocal variables. Since KeyboardInterrupt protection is now imposed statically
(when a protected function is defined) rather than each time the function runs,
its previously-noticeable performance overhead should now be near zero.
The lack of a call-time wrapper has some other benefits as well:
:func:
inspect.iscoroutinefunction
and the like now give correct answers whencalled on KI-protected functions.
Calling a synchronous KI-protected function no longer pushes an additional stack
frame, so tracebacks are clearer.
A synchronous KI-protected function invoked from C code (such as a weakref
finalizer) is now guaranteed to start executing; previously there would be a brief
window in which KeyboardInterrupt could be raised before the protection was
established.
One minor drawback of the new approach is that multiple instances of the same
closure share a single KeyboardInterrupt protection state (because they share a
single code object). That means that if you apply
trio.lowlevel.enable_ki_protection
to some of themand not others, you won't get the protection semantics you asked for. See the
documentation of
trio.lowlevel.enable_ki_protection
for more details and a workarounhttps://github.com/python-trio/trio/issues/31083108)
Rework foreign async generator finalization to track async generator
ids rather than mutating
ag_frame.f_locals
. This fixes an issuewith the previous implementation: locals' lifetimes will no longer be
extended by materialization in the
ag_frame.f_locals
dictionary thatthe previous finalization dispatcher logic needed to access to do its worhttps://github.com/python-trio/trio/issues/31123112)
Ensure that Pyright recognizes our underscore prefixed attributes for attrs classes. (https://github.com/python-trio/trio/issues/3114)
Fix
trio.testing.RaisesGroup
's typing. (https://github.com/python-trio/trio/issues/3141)Improved documentation
trio.sleep_forever
is guaranteed to raise an exception now. (https://github.com/python-trio/trio/issues/3113)Removals without deprecations
Miscellaneous internal changes
trio.socket.SocketType
's methods. (https://github.com/python-trio/trio/issues/3094)Any
usage. (https://github.com/python-trio/trio/issues/3121)v0.27.0
Compare Source
Full Changelog: python-trio/trio@v0.26.2...v0.27.0
Breaking changes
trio.move_on_after
andtrio.fail_after
previously set the deadline relative to initialization time, instead of more intuitively upon entering the context manager. This might change timeouts if a program relied on this behavior. If you want to restore previous behavior you should instead usetrio.move_on_at(trio.current_time() + ...)
.flake8-async has a new rule to catch this, in case you're supporting older trio versions. See
ASYNC122
. (https://github.com/python-trio/trio/issues/2512)Features
CancelScope.relative_deadline
andCancelScope.is_relative
added, as well as arelative_deadline
parameter to__init__
. This allows initializing scopes ahead of time, but where the specified relative deadline doesn't count down until the scope is entered. (https://github.com/python-trio/trio/issues/2512)trio.Lock
andtrio.StrictFIFOLock
will now raisetrio.BrokenResourceError
whentrio.Lock.acquire
would previously stall due to the owner of the lock exiting without releasing the lock. (https://github.com/python-trio/trio/issues/3035)trio.move_on_at
,trio.move_on_after
,trio.fail_at
andtrio.fail_after
now accept shield as a keyword argument. If specified, it provides an initial value for the~trio.CancelScope.shield
attribute of thetrio.CancelScope
object created by the context manager. (https://github.com/python-trio/trio/issues/3052)trio.lowlevel.add_parking_lot_breaker
andtrio.lowlevel.remove_parking_lot_breaker
to allow creating custom lock/semaphore implementations that will break their underlying parking lot if a task exits unexpectedly.trio.lowlevel.ParkingLot.break_lot
is also added, to allow breaking a parking lot intentionally. (https://github.com/python-trio/trio/issues/3081)Bugfixes
os.PathLike
object. (https://github.com/python-trio/trio/issues/3041)trio.lowlevel.open_process
's documentation to allow bytes. (https://github.com/python-trio/trio/issues/3076)trio.sleep_forever
to beNoReturn
. (https://github.com/python-trio/trio/issues/3095)Improved documentation
statistics()
andaclose
methods. (https://github.com/python-trio/trio/issues/3101)v0.26.2
Compare Source
Full Changelog: python-trio/trio@v0.26.1...v0.26.2
Bugfixes
hash
usage and fix test configuration issue that prevented it from being caught. (https://github.com/python-trio/trio/issues/3053)v0.26.1
Compare Source
Full Changelog: python-trio/trio@v0.26.0...v0.26.1
Bugfixes
attrs
usage off ofhash
, which is now deprecated. (https://github.com/python-trio/trio/issues/3053)Miscellaneous internal changes
v0.26.0
Compare Source
Full Changelog: python-trio/trio@v0.25.1...v0.26.0
Features
Added an interactive interpreter
python -m trio
.This makes it easier to try things and experiment with trio in the a Python repl.
Use the
await
keyword without needing to calltrio.run()
See interactive debugging for further detail. (https://github.com/python-trio/trio/issues/2972)
trio.testing.RaisesGroup
can now catch an unwrapped exception withunwrapped=True
. This means that the behaviour ofexcept*
can be fully replicated in combination withflatten_subgroups=True
(formerlystrict=False
). (https://github.com/python-trio/trio/issues/2989)Bugfixes
trio.testing.RaisesGroup(..., strict=False)
would check the number of exceptions in the raisedExceptionGroup
before flattening subgroups, leading to incorrectly failed matches.It now properly supports end (
$
) regex markers in thematch
message, by no longer including " (x sub-exceptions)" in the string it matches against. (https://github.com/python-trio/trio/issues/2989)Deprecations and removals
strict
parameter fromtrio.testing.RaisesGroup
, previous functionality ofstrict=False
is now inflatten_subgroups=True
. (https://github.com/python-trio/trio/issues/2989)v0.25.1
Compare Source
Full Changelog: python-trio/trio@v0.25.0...v0.25.1
Bugfixes
v0.25.0
Compare Source
Full Changelog: python-trio/trio@v0.24.0...v0.25.0
Breaking changes
The
strict_exception_groups
parameter now defaults toTrue
intrio.run
andtrio.lowlevel.start_guest_run
.trio.open_nursery
still defaults to the same value as was specified intrio.run
/trio.lowlevel.start_guest_run
, but if you didn't specify it there then all subsequent calls totrio.open_nursery
will change.This is unfortunately very tricky to change with a deprecation period, as raising a
DeprecationWarning
wheneverstrict_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
orStopIteration
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 anExceptionGroup
. It previously could do this in very rare circumstances, but withstrict_exception_groups
set toTrue
it will now do so whenever exceptions occur indeliver_cancel
or with problems communicating with the subprocess.strict_exception_groups=True
there are cases now where anExceptionGroup
is no longer added.trio.TrioInternalError
.__cause__
might be wrapped in one or moreExceptionGroups <ExceptionGroup>
(https://github.com/python-trio/trio/issues/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 astrio.testing.wait_all_tasks_blocked
. (https://github.com/python-trio/trio/issues/2937)Path
is now a subclass ofpathlib.PurePath
, allowing it to interoperate with other standardpathlib
types.Instantiating
Path
now returns a concrete platform-specific subclass, one ofPosixPath
orWindowsPath
, matching the behavior ofpathlib.Path
. (https://github.com/python-trio/trio/issues/2959)Bugfixes
Miscellaneous internal changes
v0.24.0
Compare Source
Full Changelog: python-trio/trio@v0.23.2...v0.24.0
Features
New helper classes:
testing.RaisesGroup
andtesting.Matcher
.In preparation for changing the default of
strict_exception_groups
toTrue
, we're introducing a set of helper classes that can be used in place ofpytest.raises
in tests, to check for an expectedExceptionGroup
.These are provisional, and only planned to be supplied until there's a good solution in
pytest
. See https://github.com/pytest-dev/pytest/issues/11538 (https://github.com/python-trio/trio/issues/2785)Deprecations and removals
MultiError
has been fully removed, and all relevant trio functions now raise ExceptionGroups instead. This should not affect end users that have transitioned to usingexcept*
or catching ExceptionGroup/BaseExceptionGroup. (https://github.com/python-trio/trio/issues/2891)v0.23.2
Compare Source
Full Changelog: python-trio/trio@v0.23.1...v0.23.2
Features
nursery.start_soon()
,trio.run()
,trio.to_thread.run_sync()
, and other similar functions accepting(func, *args)
. This means type checkers will be able to verify types are used correctly.nursery.start()
is not fully typed yet however. (https://github.com/python-trio/trio/issues/2881)Bugfixes
open_memory_channel
as generic. (https://github.com/python-trio/trio/issues/2873)Miscellaneous internal changes
pyproject.toml
. (https://github.com/python-trio/trio/issues/2860)v0.23.1
Compare Source
Full Changelog: python-trio/trio@v0.23.0...v0.23.1
Bugfixes
v0.23.0
Compare Source
Full Changelog: python-trio/trio@v0.22.2...v0.23.0
Headline features
Features
Cancelled
exception, even though it wasn't cancelled. Most users probably never noticed either way, but injecting aCancelled
here is not really useful, and in some rare cases caused confusion or problems, so Trio no longer does that. (#1457)trio.to_thread.run_sync
,trio.from_thread.run
andtrio.from_thread.run_sync
now reuse the task and cancellation status of the host task; this means that context variables and cancel scopes naturally propagate 'through' threads spawned by Trio. You can also usetrio.from_thread.check_cancelled
to efficiently check for cancellation without reentering the Trio thread. (#2392)trio.lowlevel.start_guest_run
now does a bit more setup of the guest run before it returns to its caller, so that the caller can immediately make calls totrio.current_time
,trio.lowlevel.spawn_system_task
,trio.lowlevel.current_trio_token
, etc. (#2696)Bugfixes
trio.TaskStatus.started
,trio.Nursery.start
will no longer wrap the exception in an undocumentedExceptionGroup
. Previously,trio.Nursery.start
would incorrectly raise anExceptionGroup
containing it when usingtrio.run(..., strict_exception_groups=True)
. (#2611)Deprecations and removals
trio.to_thread.run_sync
that was previously calledcancellable
is now namedabandon_on_cancel
. It still does the same thing -- allow the thread to be abandoned if the call totrio.to_thread.run_sync
is cancelled -- but since we now have other ways to propagate a cancellation without abandoning the thread, "cancellable" has become somewhat of a misnomer. The oldcancellable
name is now deprecated. (#2841)math.inf
for thebacklog
argument inopen_tcp_listeners
, making its docstring correct in the fact that onlyTypeError
is raised if invalid arguments are passed. (#2842)Removals without deprecations
MultiError
traceback handling for IPython. As of version 8.15ExceptionGroup
is handled natively. (#2702)Miscellaneous internal changes
sniffio
using thesniffio.thread_local
interface that is preferred since sniffio v1.3.0. This should be less likely than the previous approach to causesniffio.current_async_library
to return incorrect results due to unintended inheritance of contextvars. (#2700)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.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.