diff --git a/python-trio.changes b/python-trio.changes index 9304511..6d23abd 100644 --- a/python-trio.changes +++ b/python-trio.changes @@ -1,3 +1,79 @@ +------------------------------------------------------------------- +Mon Aug 5 12:56:53 UTC 2019 - pgajdos@suse.com + +- 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 `__) + * 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 `__) + * 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 `__) + * 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 `__) + * On Linux, when wrapping a bare file descriptor in a Trio socket object, + Trio now auto-detects the correct ``family``, ``type``, and ``protocol``. + This is useful, for example, when implementing `systemd socket activation + `__. (`#251 `__) + * Trio sockets have a new method `~trio.socket.SocketType.is_readable` that allows + you to check whether a socket is readable. This is useful for HTTP/1.1 clients. (`#760 `__) + * We no longer use runtime code generation to dispatch core functions + like `current_time`. Static analysis tools like mypy and pylint should + now be able to recognize and analyze all of Trio's top-level functions + (though some class attributes are still dynamic... we're working on it). (`#805 `__) + * Add `trio.hazmat.FdStream` for wrapping a Unix file descriptor as a `~trio.abc.Stream`. (`#829 `__) + * Trio now gives a reasonable traceback and error message in most cases + when its invariants surrounding cancel scope nesting have been + violated. (One common source of such violations is an async generator + that yields within a cancel scope.) The previous behavior was an + inscrutable chain of TrioInternalErrors. (`#882 `__) + * MultiError now defines its ``exceptions`` attribute in ``__init__()`` + to better support linters and code autocompletion. (`#1066 `__) + * Use ``__slots__`` in more places internally, which should make Trio slightly faster. (`#984 `__) + * In v0.12.0, we accidentally moved ``BlockingTrioPortal`` from ``trio`` + to ``trio.hazmat``. It's now been restored to its proper position. + (It's still deprecated though, and will issue a warning if you use it.) (`#1167 `__) + Bugfixes + * Destructor methods (``__del__``) are now protected against ``KeyboardInterrupt``. (`#676 `__) + * The :class:`trio.Path` methods :meth:`~trio.Path.glob` and + :meth:`~trio.Path.rglob` now return iterables of :class:`trio.Path` + (not :class:`pathlib.Path`). (`#917 `__) + * Inspecting the :attr:`~trio.CancelScope.cancel_called` attribute of a + not-yet-exited cancel scope whose deadline is in the past now always + returns ``True``, like you might expect. (Previously it would return + ``False`` for not-yet-entered cancel scopes, and for active cancel + scopes until the first checkpoint after their deadline expiry.) (`#958 `__) + * The :class:`trio.Path` classmethods, :meth:`~trio.Path.home` and + :meth:`~trio.Path.cwd`, are now async functions. Previously, a bug + in the forwarding logic meant :meth:`~trio.Path.cwd` was synchronous + and :meth:`~trio.Path.home` didn't work at all. (`#960 `__) + * An exception encapsulated within a :class:`MultiError` doesn't need to be + hashable anymore. + +------------------------------------------------------------------- +Mon Aug 5 12:45:29 UTC 2019 - pgajdos@suse.com + +- version update to 0.12.1 + * no upstream change log found + ------------------------------------------------------------------- Sun Jun 2 12:40:48 UTC 2019 - Jan Engelhardt diff --git a/python-trio.spec b/python-trio.spec index 755672a..f2f0e93 100644 --- a/python-trio.spec +++ b/python-trio.spec @@ -19,13 +19,14 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} %define skip_python2 1 Name: python-trio -Version: 0.11.0 +Version: 0.12.1 Release: 0 Summary: An async/await-native I/O library License: MIT OR Apache-2.0 Group: Development/Languages/Python URL: https://github.com/python-trio/trio Source: https://github.com/python-trio/trio/archive/v%{version}.tar.gz#/trio-%{version}.tar.gz +BuildRequires: %{python_module astor >= 0.8} BuildRequires: %{python_module async_generator >= 1.9} BuildRequires: %{python_module attrs >= 18.2.0} BuildRequires: %{python_module idna} @@ -33,6 +34,7 @@ BuildRequires: %{python_module outcome} BuildRequires: %{python_module pyOpenSSL} BuildRequires: %{python_module pytest} BuildRequires: %{python_module setuptools} +BuildRequires: %{python_module yapf >= 0.27.0} # for protocol specifications BuildRequires: %{python_module sniffio} BuildRequires: %{python_module sortedcontainers} @@ -79,8 +81,7 @@ has an obsessive focus on usability and correctness. # test_static_tool_sees_all_symbols uses jedi/pylint for static analysis, # pointless for us. # test_SSLStream_generic deadlocks in OBS -# test_renegotiation_simple, test_renegotiation_randomized - breaks with tls1.3 -%pytest -k 'not (test_static_tool_sees_all_symbols or test_SSLStream_generic or test_renegotiation_simple or test_renegotiation_randomized)' +%pytest -k 'not (test_static_tool_sees_all_symbols or test_SSLStream_generic)' %files %{python_files} %doc README.rst diff --git a/trio-0.11.0.tar.gz b/trio-0.11.0.tar.gz deleted file mode 100644 index fbdaef2..0000000 --- a/trio-0.11.0.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:bc6795f03343d914ccb45566d07a8aa8b46950f02b4bc6be3517966660b9c2d1 -size 406905 diff --git a/trio-0.12.1.tar.gz b/trio-0.12.1.tar.gz new file mode 100644 index 0000000..c3c3978 --- /dev/null +++ b/trio-0.12.1.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:10751104d776a00bd826d565257d7def59dc8c639cbf8f443a20da824d25e674 +size 429427