Skip to content

Commit a28490e

Browse files
committed
Fix circular import on MacOS
1 parent 6dd3808 commit a28490e

File tree

3 files changed

+11
-8
lines changed

3 files changed

+11
-8
lines changed

src/trio/_core/_generated_io_kqueue.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
if TYPE_CHECKING:
1212
import select
1313

14-
from .. import _channel
14+
from .._channel import MemoryReceiveChannel
1515
from .._file_io import _HasFileNo
1616
from ._traps import Abort, RaiseCancelT
1717
import sys
@@ -43,7 +43,7 @@ def current_kqueue() -> select.kqueue:
4343

4444
def monitor_kevent(
4545
ident: int, filter: int
46-
) -> ContextManager[_channel.MemoryReceiveChannel[select.kevent]]:
46+
) -> ContextManager[MemoryReceiveChannel[select.kevent]]:
4747
"""TODO: these are implemented, but are currently more of a sketch than
4848
anything real. See `#26
4949
<https://github.com/python-trio/trio/issues/26>`__.

src/trio/_core/_io_kqueue.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,14 @@
1010
import attr
1111
import outcome
1212

13-
from .. import _channel, _core
13+
from .. import _core
1414
from ._run import _public
1515
from ._wakeup_socketpair import WakeupSocketpair
1616

1717
if TYPE_CHECKING:
1818
from typing_extensions import TypeAlias
1919

20+
from .._channel import MemoryReceiveChannel, MemorySendChannel
2021
from .._core import Abort, RaiseCancelT, Task
2122
from .._file_io import _HasFileNo
2223

@@ -36,7 +37,7 @@ class _KqueueStatistics:
3637
class KqueueIOManager:
3738
_kqueue: select.kqueue = attr.ib(factory=select.kqueue)
3839
_registered: dict[
39-
tuple[int, int], Task | _channel.MemorySendChannel[select.kevent]
40+
tuple[int, int], Task | MemorySendChannel[select.kevent]
4041
] = attr.ib(factory=dict)
4142
_force_wakeup: WakeupSocketpair = attr.ib(factory=WakeupSocketpair)
4243
_force_wakeup_fd: int | None = attr.ib(default=None)
@@ -119,17 +120,19 @@ def current_kqueue(self) -> select.kqueue:
119120
@_public
120121
def monitor_kevent(
121122
self, ident: int, filter: int
122-
) -> Iterator[_channel.MemoryReceiveChannel[select.kevent]]:
123+
) -> Iterator[MemoryReceiveChannel[select.kevent]]:
123124
"""TODO: these are implemented, but are currently more of a sketch than
124125
anything real. See `#26
125126
<https://github.com/python-trio/trio/issues/26>`__.
126127
"""
128+
from .._channel import open_memory_channel
129+
127130
key = (ident, filter)
128131
if key in self._registered:
129132
raise _core.BusyResourceError(
130133
"attempt to register multiple listeners for same ident/filter pair"
131134
)
132-
send, recv = _channel.open_memory_channel[select.kevent](math.inf)
135+
send, recv = open_memory_channel[select.kevent](math.inf)
133136
self._registered[key] = send
134137
try:
135138
yield recv

src/trio/_tools/gen_exports.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -382,9 +382,9 @@ def main() -> None: # pragma: no cover
382382
if TYPE_CHECKING:
383383
import select
384384
385-
from .. import _core, _channel
386-
from ._traps import Abort, RaiseCancelT
385+
from .._channel import MemoryReceiveChannel
387386
from .._file_io import _HasFileNo
387+
from ._traps import Abort, RaiseCancelT
388388
"""
389389

390390
IMPORTS_WINDOWS = """\

0 commit comments

Comments
 (0)