|
44 | 44 | P = ParamSpec("P") |
45 | 45 |
|
46 | 46 |
|
47 | | -def _open_memory_channel( |
48 | | - max_buffer_size: int | float, # noqa: PYI041 |
49 | | -) -> tuple[MemorySendChannel[T], MemoryReceiveChannel[T]]: |
50 | | - if max_buffer_size != inf and not isinstance(max_buffer_size, int): |
51 | | - raise TypeError("max_buffer_size must be an integer or math.inf") |
52 | | - if max_buffer_size < 0: |
53 | | - raise ValueError("max_buffer_size must be >= 0") |
54 | | - state: MemoryChannelState[T] = MemoryChannelState(max_buffer_size) |
55 | | - return ( |
56 | | - MemorySendChannel[T]._create(state), |
57 | | - MemoryReceiveChannel[T]._create(state), |
58 | | - ) |
59 | | - |
60 | | - |
61 | 47 | # written as a class so you can say open_memory_channel[int](5) |
62 | 48 | @final |
63 | 49 | class open_memory_channel(tuple["MemorySendChannel[T]", "MemoryReceiveChannel[T]"]): |
@@ -110,14 +96,21 @@ class open_memory_channel(tuple["MemorySendChannel[T]", "MemoryReceiveChannel[T] |
110 | 96 | channel (summing over all clones). |
111 | 97 | * ``tasks_waiting_receive``: The number of tasks blocked in ``receive`` on |
112 | 98 | this channel (summing over all clones). |
113 | | -
|
114 | 99 | """ |
115 | 100 |
|
116 | 101 | def __new__( # type: ignore[misc] # "must return a subtype" |
117 | 102 | cls, |
118 | 103 | max_buffer_size: int | float, # noqa: PYI041 |
119 | 104 | ) -> tuple[MemorySendChannel[T], MemoryReceiveChannel[T]]: |
120 | | - return _open_memory_channel(max_buffer_size) |
| 105 | + if max_buffer_size != inf and not isinstance(max_buffer_size, int): |
| 106 | + raise TypeError("max_buffer_size must be an integer or math.inf") |
| 107 | + if max_buffer_size < 0: |
| 108 | + raise ValueError("max_buffer_size must be >= 0") |
| 109 | + state: MemoryChannelState[T] = MemoryChannelState(max_buffer_size) |
| 110 | + return ( |
| 111 | + MemorySendChannel[T]._create(state), |
| 112 | + MemoryReceiveChannel[T]._create(state), |
| 113 | + ) |
121 | 114 |
|
122 | 115 | def __init__(self, max_buffer_size: int | float) -> None: # noqa: PYI041 |
123 | 116 | ... |
|
0 commit comments