3
3
import array
4
4
import math
5
5
import socket
6
+ import sys
6
7
from collections .abc import AsyncIterator , Iterable
7
8
from concurrent .futures import Future
8
9
from dataclasses import dataclass
61
62
from ..abc import IPSockAddrType , UDPPacketType , UNIXDatagramPacketType
62
63
from ..abc ._eventloop import AsyncBackend
63
64
65
+ if sys .version_info < (3 , 11 ):
66
+ from exceptiongroup import BaseExceptionGroup
67
+
64
68
if TYPE_CHECKING :
65
69
from trio_typing import TaskStatus
66
70
@@ -134,7 +138,9 @@ def shield(self, value: bool) -> None:
134
138
class TaskGroup (abc .TaskGroup ):
135
139
def __init__ (self ) -> None :
136
140
self ._active = False
137
- self ._nursery_manager = trio .open_nursery (strict_exception_groups = True )
141
+ self ._nursery_manager = trio .open_nursery (
142
+ strict_exception_groups = True # type: ignore[call-arg]
143
+ )
138
144
self .cancel_scope = None # type: ignore[assignment]
139
145
140
146
async def __aenter__ (self ) -> TaskGroup :
@@ -154,7 +160,7 @@ async def __aexit__(
154
160
except BaseExceptionGroup as excgrp :
155
161
matched , unmatched = excgrp .split (trio .Cancelled )
156
162
if not unmatched :
157
- raise trio .Cancelled ._create () from None
163
+ raise trio .Cancelled ._create () from None # type: ignore[attr-defined]
158
164
elif unmatched :
159
165
raise unmatched from None
160
166
else :
@@ -727,7 +733,9 @@ def __init__(self, **options: Any) -> None:
727
733
728
734
async def _trio_main (self ) -> None :
729
735
self ._stop_event = trio .Event ()
730
- async with trio .open_nursery (strict_exception_groups =
592F
span>True ) as self ._nursery :
736
+ async with trio .open_nursery (
737
+ strict_exception_groups = True # type: ignore[call-arg]
738
+ ) as self ._nursery :
731
739
await self ._stop_event .wait ()
732
740
733
741
async def _call_func (
0 commit comments