Skip to content

Commit 11a7fc6

Browse files
committed
Bump version to 0.27.0
1 parent 2a66a0d commit 11a7fc6

13 files changed

+34
-31
lines changed

docs/source/history.rst

+33
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,39 @@ Release history
55

66
.. towncrier release notes start
77
8+
Trio 0.27.0 (2024-10-17)
9+
------------------------
10+
11+
Breaking changes
12+
~~~~~~~~~~~~~~~~
13+
14+
- :func:`trio.move_on_after` and :func:`trio.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 use ``trio.move_on_at(trio.current_time() + ...)``.
15+
flake8-async has a new rule to catch this, in case you're supporting older trio versions. See :ref:`ASYNC122`. (`#2512 <https://github.com/python-trio/trio/issues/2512>`__)
16+
17+
18+
Features
19+
~~~~~~~~
20+
21+
- :meth:`CancelScope.relative_deadline` and :meth:`CancelScope.is_relative` added, as well as a ``relative_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. (`#2512 <https://github.com/python-trio/trio/issues/2512>`__)
22+
- :class:`trio.Lock` and :class:`trio.StrictFIFOLock` will now raise :exc:`trio.BrokenResourceError` when :meth:`trio.Lock.acquire` would previously stall due to the owner of the lock exiting without releasing the lock. (`#3035 <https://github.com/python-trio/trio/issues/3035>`__)
23+
- `trio.move_on_at`, `trio.move_on_after`, `trio.fail_at` and `trio.fail_after` now accept *shield* as a keyword argument. If specified, it provides an initial value for the `~trio.CancelScope.shield` attribute of the `trio.CancelScope` object created by the context manager. (`#3052 <https://github.com/python-trio/trio/issues/3052>`__)
24+
- Added :func:`trio.lowlevel.add_parking_lot_breaker` and :func:`trio.lowlevel.remove_parking_lot_breaker` to allow creating custom lock/semaphore implementations that will break their underlying parking lot if a task exits unexpectedly. :meth:`trio.lowlevel.ParkingLot.break_lot` is also added, to allow breaking a parking lot intentionally. (`#3081 <https://github.com/python-trio/trio/issues/3081>`__)
25+
26+
27+
Bugfixes
28+
~~~~~~~~
29+
30+
- Allow sockets to bind any ``os.PathLike`` object. (`#3041 <https://github.com/python-trio/trio/issues/3041>`__)
31+
- Update ``trio.lowlevel.open_process``'s documentation to allow bytes. (`#3076 <https://github.com/python-trio/trio/issues/3076>`__)
32+
- Update :func:`trio.sleep_forever` to be `NoReturn`. (`#3095 <https://github.com/python-trio/trio/issues/3095>`__)
33+
34+
35+
Improved documentation
36+
~~~~~~~~~~~~~~~~~~~~~~
37+
38+
- Add docstrings for memory channels' ``statistics()`` and ``aclose`` methods. (`#3101 <https://github.com/python-trio/trio/issues/3101>`__)
39+
40+
841
Trio 0.26.2 (2024-08-08)
942
------------------------
1043

newsfragments/2512.breaking.rst

-2
This file was deleted.

newsfragments/2512.feature.rst

-1
This file was deleted.

newsfragments/3035.feature.rst

-1
This file was deleted.

newsfragments/3041.bugfix.rst

-1
This file was deleted.

newsfragments/3052.feature.rst

-1
This file was deleted.

newsfragments/3076.bugfix.rst

-1
This file was deleted.

newsfragments/3081.feature.rst

-1
This file was deleted.

newsfragments/3095.bugfix.rst

-1
This file was deleted.

newsfragments/3101.doc.rst

-1
This file was deleted.

src/trio/_tests/test_testing_raisesgroup.py

-9
Original file line numberDiff line numberDiff line change
@@ -372,12 +372,3 @@ def test__ExceptionInfo(monkeypatch: pytest.MonkeyPatch) -> None:
372372
assert excinfo.type is ExceptionGroup
373373
assert excinfo.value.exceptions[0].args == ("hello",)
374374
assert isinstance(excinfo.tb, TracebackType)
375-
376-
377-
def test_deprecated_strict() -> None:
378-
"""`strict` has been replaced with `flatten_subgroups`"""
379-
# parameter is not included in overloaded signatures at all
380-
with pytest.deprecated_call():
381-
RaisesGroup(ValueError, strict=False) # type: ignore[call-overload]
382-
with pytest.deprecated_call():
383-
RaisesGroup(ValueError, strict=True) # type: ignore[call-overload]

src/trio/_version.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
# This file is imported from __init__.py and parsed by setuptools
22

3-
__version__ = "0.26.2+dev"
3+
__version__ = "0.27.0"

src/trio/testing/_raises_group.py

-11
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
overload,
1515
)
1616

17-
from trio._deprecate import warn_deprecated
1817
from trio._util import final
1918

2019
if TYPE_CHECKING:
@@ -384,7 +383,6 @@ def __init__(
384383
flatten_subgroups: bool = False,
385384
match: str | Pattern[str] | None = None,
386385
check: Callable[[BaseExceptionGroup[E]], bool] | None = None,
387-
strict: None = None,
388386
):
389387
self.expected_exceptions: tuple[type[E] | Matcher[E] | E, ...] = (
390388
exception,
@@ -396,15 +394,6 @@ def __init__(
396394
self.check = check
397395
self.is_baseexceptiongroup = False
398396

399-
if strict is not None:
400-
warn_deprecated(
401-
"The `strict` parameter",
402-
"0.25.1",
403-
issue=2989,
404-
instead="flatten_subgroups=True (for strict=False}",
405-
)
406-
self.flatten_subgroups = not strict
407-
408397
if allow_unwrapped and other_exceptions:
409398
raise ValueError(
410399
"You cannot specify multiple exceptions with `allow_unwrapped=True.`"

0 commit comments

Comments
 (0)