Revisions of python-trio
Matej Cepl (mcepl)
committed
(revision 26)
- Fix rpmlint error python-tests-in-package.
buildservice-autocommit
accepted
request 1005914
from
Dirk Mueller (dirkmueller)
(revision 25)
baserev update by copy to link target
Dirk Mueller (dirkmueller)
committed
(revision 24)
- update to 0.21.0: * Trio now supports Python 3.11. * Remove support for Python 3.6.
buildservice-autocommit
accepted
request 965627
from
Dirk Mueller (dirkmueller)
(revision 23)
baserev update by copy to link target
Dirk Mueller (dirkmueller)
accepted
request 965606
from
Benjamin Greiner (bnavigator)
(revision 22)
- Update to version 0.20.0 * You can now conveniently spawn a child process in a background task and interact it with on the fly using process = await nursery.start(run_process, ...). See run_process for more details. We recommend most users switch to this new API. Also note that: - trio.open_process has been deprecated in favor of trio.lowlevel.open_process, - The aclose method on Process has been deprecated along with async with process_obj. (#1104) * Now context variables set with contextvars are preserved when running functions in a worker thread with trio.to_thread.run_sync, or when running functions from the worker thread in the parent Trio thread with trio.from_thread.run, and trio.from_thread.run_sync. This is done by automatically copying the contextvars context. trio.lowlevel.spawn_system_task now also receives an optional context argument. (#2160) * Trio now avoids creating cyclic garbage when a MultiError is generated and filtered, including invisibly within the cancellation system. This means errors raised through nurseries and cancel scopes should result in less GC latency. (#2063) * Trio now deterministically cleans up file descriptors that were opened before subprocess creation fails. Previously, they would remain open until the next run of the garbage collector. (#2193) * Add compatibility with OpenSSL 3.0 on newer Python and PyPy versions by working around SSLEOFError not being raised properly. (#2203) * Fix a bug that could cause Process.wait to hang on Linux
Matej Cepl (mcepl)
accepted
request 940110
from
Benjamin Greiner (bnavigator)
(revision 21)
- Update to version 0.19.0 * Trio now supports Python 3.10. (#1921) * Use slots for `~.lowlevel.Task` which should make them slightly smaller and faster. (#1927) * Make `~.Event` more lightweight by using less objects (about 2 rather than 5, including a nested ParkingLot and attribute dicts) and simpler structures (set rather than OrderedDict). This may benefit applications that create a large number of event instances, such as with the "replace event object on every set()" idiom. (#1948) * The event loop now holds on to references of coroutine frames for only the minimum necessary period of time. (#1864) * The `~.lowlevel.TrioToken` class can now be used as a target of a weak reference. (#1924) - Release 0.18.0 * Add synchronous .close() methods and context manager (with x) support for .MemorySendChannel and .MemoryReceiveChannel. (#1797) * Previously, on Windows, Trio programs using thousands of sockets at the same time could trigger extreme slowdowns in the Windows kernel. Now, Trio works around this issue, so you should be able to use as many sockets as you want. (#1280) * `trio.from_thread.run` no longer crashes the Trio run if it is executed after the system nursery has been closed but before the run has finished. Calls made at this time will now raise trio.RunFinishedError. This fixes a regression introduced in Trio 0.17.0. The window in question is only one scheduler tick long in most cases, but may be longer if async generators need to be cleaned up. (#1738) * Fix a crash in pypy-3.7 (#1765)
buildservice-autocommit
accepted
request 861750
from
Markéta Machová (mcalabkova)
(revision 20)
baserev update by copy to link target
Markéta Machová (mcalabkova)
accepted
request 861746
from
Markéta Machová (mcalabkova)
(revision 19)
- Skip test incompatible with new pytest 6.2
buildservice-autocommit
accepted
request 841142
from
Tomáš Chvátal (scarabeus_iv)
(revision 18)
baserev update by copy to link target
Tomáš Chvátal (scarabeus_iv)
committed
(revision 17)
Tomáš Chvátal (scarabeus_iv)
accepted
request 841063
from
John Vandenberg (jayvdb)
(revision 16)
- Remove hashbang and tests in runtime package - Disable test test_close_at_bad_time_for_send_all due to failure on PPC - Update to v0.17.0
buildservice-autocommit
accepted
request 822413
from
Tomáš Chvátal (scarabeus_iv)
(revision 15)
baserev update by copy to link target
Tomáš Chvátal (scarabeus_iv)
accepted
request 822403
from
Markéta Machová (mcalabkova)
(revision 14)
- Update to 0.16.0 * If you want to use Trio, but are stuck with some other event loop like Qt or PyGame, then good news: now you can have both. * To speed up `trio.to_thread.run_sync`, Trio now caches and re-uses worker threads. * Tasks spawned with `nursery.start() <trio.Nursery.start>` aren't treated as direct children of their nursery until they call ``task_status.started()``. * Some bugfixes and deprecations
buildservice-autocommit
accepted
request 812800
from
Tomáš Chvátal (scarabeus_iv)
(revision 13)
baserev update by copy to link target
Tomáš Chvátal (scarabeus_iv)
committed
(revision 12)
- Update to 0.15.1: * Added a helpful error message if an async function is passed to trio.from_thread.run_sync or a sync function to trio.from_thread.run. (#1244) * Previously, when trio.run_process was cancelled, it always killed the subprocess immediately. Now, on Unix, it first gives the process a chance to clean up by sending SIGTERM, and only escalates to SIGKILL if the process is still running after 5 seconds. But if you prefer the old behavior, or want to adjust the timeout, then don't worry: you can now pass a custom deliver_cancel= argument to define your own process killing policy. (#1104) * It turns out that creating a subprocess can block the parent process for a surprisingly long time. So trio.open_process now uses a worker thread to avoid blocking the event loop. (#1109) * On Linux kernels v5.3 or newer, trio.Process.wait now uses the pidfd API to track child processes. This shouldn't have any user-visible change, but it makes working with subprocesses faster and use less memory. (#1241) * The trio.Process.returncode attribute is now automatically updated as needed, instead of only when you call ~trio.Process.poll or ~trio.Process.wait. Also, repr(process_object) now always contains up-to-date information about the process status. (#1315)
buildservice-autocommit
accepted
request 763378
from
Ondřej Súkup (mimi_vx)
(revision 11)
baserev update by copy to link target
Ondřej Súkup (mimi_vx)
committed
(revision 10)
- update to 0.13.0 * Use slots for memory channel state and statistics which should make memory channels slightly smaller and faster. * OpenSSL has a bug in its handling of TLS 1.3 session tickets that can cause deadlocks or data loss in some rare edge cases. These edge cases most frequently happen during tests. * Trio now uses signal.set_wakeup_fd on all platforms. * Trio no longer crashes when an async function is implemented in C or Cython and then passed directly to trio.run or nursery.start_soon. * When a Trio task makes improper use of a non-Trio async library, Trio nowi causes an exception to be raised within the task at the point of the error, rather than abandoning the task and raising an error in its parent. This improves debuggability and resolves the TrioInternalError that would sometimes result from the old strategy. (#552) * In 0.12.0 we deprecated trio.run_sync_in_worker_thread in favor of trio.to_thread.run_sync. But, the deprecation message listed the wrong name for the replacement. * Fix regression introduced with cancellation changes in 0.12.0, where a trio.CancelScope which isn't cancelled could catch a propagating trio.Cancelled exception if shielding were changed while the cancellation was propagating. * Fix a crash that could happen when using MockClock with autojump enabled and a non-zero rate. * If you nest >1000 cancel scopes within each other, Trio now handles that gracefully instead of crashing with a RecursionError. * Fixed the hash behavior of trio.Path to match pathlib.Path. Previously trio.Path's hash was inherited from object instead of from pathlib.PurePath.
buildservice-autocommit
accepted
request 721100
from
Tomáš Chvátal (scarabeus_iv)
(revision 9)
baserev update by copy to link target
Tomáš Chvátal (scarabeus_iv)
accepted
request 721060
from
Petr Gajdos (pgajdos)
(revision 8)
- version update to 0.12.1 Features * If you have a `~trio.abc.ReceiveStream` object, you can now use ``async for data in stream: ...`` instead of calling `~trio.abc.ReceiveStream.receive_some`. Each iteration gives an arbitrary sized chunk of bytes. And the best part is, the loop automatically exits when you reach EOF, so you don't have to check for it yourself anymore. Relatedly, you no longer need to pick a magic buffer size value before calling `~trio.abc.ReceiveStream.receive_some`; you can ``await stream.receive_some()`` with no arguments, and the stream will automatically pick a reasonable size for you. (`#959 <https://github.com/python-trio/trio/issues/959>`__) * Threading interfaces have been reworked: ``run_sync_in_worker_thread`` is now `trio.to_thread.run_sync`, and instead of ``BlockingTrioPortal``, use `trio.from_thread.run` and `trio.from_thread.run_sync`. What's neat about this is that these cooperate, so if you're in a thread created by `to_thread.run_sync`, it remembers which Trio created it, and you can call ``trio.from_thread.*`` directly without having to pass around a ``BlockingTrioPortal`` object everywhere. (`#810 <https://github.com/python-trio/trio/issues/810>`__) * We cleaned up the distinction between the "abstract channel interface" and the "memory channel" concrete implementation. `trio.abc.SendChannel` and `trio.abc.ReceiveChannel` have been slimmed down, `trio.MemorySendChannel` and `trio.MemoryReceiveChannel` are now public types that can be used in type hints, and there's a new `trio.abc.Channel` interface for future bidirectional channels. (`#719 <https://github.com/python-trio/trio/issues/719>`__) * Add :func:`trio.run_process` as a high-level helper for running a process and waiting for it to finish, like the standard :func:`subprocess.run` does. (`#822 <https://github.com/python-trio/trio/issues/822>`__) * On Linux, when wrapping a bare file descriptor in a Trio socket object, Trio now auto-detects the correct ``family``, ``type``, and ``protocol``.
buildservice-autocommit
accepted
request 707069
from
Tomáš Chvátal (scarabeus_iv)
(revision 7)
baserev update by copy to link target
Displaying revisions 21 - 40 of 46