@ajksunkang-aios/kgraph-linux-x64 0.1.2 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (196) hide show
  1. package/bin/kgraph-launcher +15 -3
  2. package/lib/kgraph/scripts/build-bundle.sh +17 -4
  3. package/lib/site-packages/outcome/__init__.py +20 -0
  4. package/lib/site-packages/outcome/_impl.py +239 -0
  5. package/lib/site-packages/outcome/_util.py +33 -0
  6. package/lib/site-packages/outcome/_version.py +7 -0
  7. package/lib/site-packages/outcome/py.typed +0 -0
  8. package/lib/site-packages/outcome-1.3.0.post0.dist-info/INSTALLER +1 -0
  9. package/lib/site-packages/outcome-1.3.0.post0.dist-info/LICENSE +3 -0
  10. package/lib/site-packages/outcome-1.3.0.post0.dist-info/LICENSE.APACHE2 +202 -0
  11. package/lib/site-packages/outcome-1.3.0.post0.dist-info/LICENSE.MIT +20 -0
  12. package/lib/site-packages/outcome-1.3.0.post0.dist-info/METADATA +63 -0
  13. package/lib/site-packages/outcome-1.3.0.post0.dist-info/RECORD +13 -0
  14. package/lib/site-packages/outcome-1.3.0.post0.dist-info/WHEEL +6 -0
  15. package/lib/site-packages/outcome-1.3.0.post0.dist-info/top_level.txt +1 -0
  16. package/lib/site-packages/sniffio/__init__.py +17 -0
  17. package/lib/site-packages/sniffio/_impl.py +95 -0
  18. package/lib/site-packages/sniffio/_tests/__init__.py +0 -0
  19. package/lib/site-packages/sniffio/_tests/test_sniffio.py +84 -0
  20. package/lib/site-packages/sniffio/_version.py +3 -0
  21. package/lib/site-packages/sniffio/py.typed +0 -0
  22. package/lib/site-packages/sniffio-1.3.1.dist-info/INSTALLER +1 -0
  23. package/lib/site-packages/sniffio-1.3.1.dist-info/LICENSE +3 -0
  24. package/lib/site-packages/sniffio-1.3.1.dist-info/LICENSE.APACHE2 +202 -0
  25. package/lib/site-packages/sniffio-1.3.1.dist-info/LICENSE.MIT +20 -0
  26. package/lib/site-packages/sniffio-1.3.1.dist-info/METADATA +104 -0
  27. package/lib/site-packages/sniffio-1.3.1.dist-info/RECORD +14 -0
  28. package/lib/site-packages/sniffio-1.3.1.dist-info/WHEEL +5 -0
  29. package/lib/site-packages/sniffio-1.3.1.dist-info/top_level.txt +1 -0
  30. package/lib/site-packages/sortedcontainers/__init__.py +74 -0
  31. package/lib/site-packages/sortedcontainers/sorteddict.py +812 -0
  32. package/lib/site-packages/sortedcontainers/sortedlist.py +2646 -0
  33. package/lib/site-packages/sortedcontainers/sortedset.py +733 -0
  34. package/lib/site-packages/sortedcontainers-2.4.0.dist-info/INSTALLER +1 -0
  35. package/lib/site-packages/sortedcontainers-2.4.0.dist-info/LICENSE +13 -0
  36. package/lib/site-packages/sortedcontainers-2.4.0.dist-info/METADATA +264 -0
  37. package/lib/site-packages/sortedcontainers-2.4.0.dist-info/RECORD +10 -0
  38. package/lib/site-packages/sortedcontainers-2.4.0.dist-info/WHEEL +6 -0
  39. package/lib/site-packages/sortedcontainers-2.4.0.dist-info/top_level.txt +1 -0
  40. package/lib/site-packages/trio/__init__.py +133 -0
  41. package/lib/site-packages/trio/__main__.py +3 -0
  42. package/lib/site-packages/trio/_abc.py +714 -0
  43. package/lib/site-packages/trio/_channel.py +610 -0
  44. package/lib/site-packages/trio/_core/__init__.py +94 -0
  45. package/lib/site-packages/trio/_core/_asyncgens.py +243 -0
  46. package/lib/site-packages/trio/_core/_concat_tb.py +26 -0
  47. package/lib/site-packages/trio/_core/_entry_queue.py +223 -0
  48. package/lib/site-packages/trio/_core/_exceptions.py +169 -0
  49. package/lib/site-packages/trio/_core/_generated_instrumentation.py +50 -0
  50. package/lib/site-packages/trio/_core/_generated_io_epoll.py +98 -0
  51. package/lib/site-packages/trio/_core/_generated_io_kqueue.py +153 -0
  52. package/lib/site-packages/trio/_core/_generated_io_windows.py +204 -0
  53. package/lib/site-packages/trio/_core/_generated_run.py +269 -0
  54. package/lib/site-packages/trio/_core/_generated_windows_ffi.py +10 -0
  55. package/lib/site-packages/trio/_core/_instrumentation.py +117 -0
  56. package/lib/site-packages/trio/_core/_io_common.py +31 -0
  57. package/lib/site-packages/trio/_core/_io_epoll.py +385 -0
  58. package/lib/site-packages/trio/_core/_io_kqueue.py +292 -0
  59. package/lib/site-packages/trio/_core/_io_windows.py +1036 -0
  60. package/lib/site-packages/trio/_core/_ki.py +271 -0
  61. package/lib/site-packages/trio/_core/_local.py +104 -0
  62. package/lib/site-packages/trio/_core/_mock_clock.py +165 -0
  63. package/lib/site-packages/trio/_core/_parking_lot.py +317 -0
  64. package/lib/site-packages/trio/_core/_run.py +3148 -0
  65. package/lib/site-packages/trio/_core/_run_context.py +15 -0
  66. package/lib/site-packages/trio/_core/_tests/__init__.py +0 -0
  67. package/lib/site-packages/trio/_core/_tests/test_asyncgen.py +339 -0
  68. package/lib/site-packages/trio/_core/_tests/test_cancelled.py +222 -0
  69. package/lib/site-packages/trio/_core/_tests/test_exceptiongroup_gc.py +103 -0
  70. package/lib/site-packages/trio/_core/_tests/test_guest_mode.py +755 -0
  71. package/lib/site-packages/trio/_core/_tests/test_instrumentation.py +315 -0
  72. package/lib/site-packages/trio/_core/_tests/test_io.py +522 -0
  73. package/lib/site-packages/trio/_core/_tests/test_ki.py +703 -0
  74. package/lib/site-packages/trio/_core/_tests/test_local.py +118 -0
  75. package/lib/site-packages/trio/_core/_tests/test_mock_clock.py +193 -0
  76. package/lib/site-packages/trio/_core/_tests/test_parking_lot.py +389 -0
  77. package/lib/site-packages/trio/_core/_tests/test_run.py +3024 -0
  78. package/lib/site-packages/trio/_core/_tests/test_thread_cache.py +227 -0
  79. package/lib/site-packages/trio/_core/_tests/test_tutil.py +13 -0
  80. package/lib/site-packages/trio/_core/_tests/test_unbounded_queue.py +154 -0
  81. package/lib/site-packages/trio/_core/_tests/test_windows.py +305 -0
  82. package/lib/site-packages/trio/_core/_tests/tutil.py +117 -0
  83. package/lib/site-packages/trio/_core/_tests/type_tests/nursery_start.py +79 -0
  84. package/lib/site-packages/trio/_core/_tests/type_tests/run.py +51 -0
  85. package/lib/site-packages/trio/_core/_thread_cache.py +317 -0
  86. package/lib/site-packages/trio/_core/_traps.py +318 -0
  87. package/lib/site-packages/trio/_core/_unbounded_queue.py +163 -0
  88. package/lib/site-packages/trio/_core/_wakeup_socketpair.py +75 -0
  89. package/lib/site-packages/trio/_core/_windows_cffi.py +313 -0
  90. package/lib/site-packages/trio/_deprecate.py +171 -0
  91. package/lib/site-packages/trio/_dtls.py +1380 -0
  92. package/lib/site-packages/trio/_file_io.py +513 -0
  93. package/lib/site-packages/trio/_highlevel_generic.py +125 -0
  94. package/lib/site-packages/trio/_highlevel_open_tcp_listeners.py +251 -0
  95. package/lib/site-packages/trio/_highlevel_open_tcp_stream.py +397 -0
  96. package/lib/site-packages/trio/_highlevel_open_unix_stream.py +65 -0
  97. package/lib/site-packages/trio/_highlevel_serve_listeners.py +148 -0
  98. package/lib/site-packages/trio/_highlevel_socket.py +423 -0
  99. package/lib/site-packages/trio/_highlevel_ssl_helpers.py +180 -0
  100. package/lib/site-packages/trio/_path.py +289 -0
  101. package/lib/site-packages/trio/_repl.py +159 -0
  102. package/lib/site-packages/trio/_signals.py +185 -0
  103. package/lib/site-packages/trio/_socket.py +1326 -0
  104. package/lib/site-packages/trio/_ssl.py +964 -0
  105. package/lib/site-packages/trio/_subprocess.py +1178 -0
  106. package/lib/site-packages/trio/_subprocess_platform/__init__.py +123 -0
  107. package/lib/site-packages/trio/_subprocess_platform/kqueue.py +48 -0
  108. package/lib/site-packages/trio/_subprocess_platform/waitid.py +113 -0
  109. package/lib/site-packages/trio/_subprocess_platform/windows.py +11 -0
  110. package/lib/site-packages/trio/_sync.py +908 -0
  111. package/lib/site-packages/trio/_tests/__init__.py +0 -0
  112. package/lib/site-packages/trio/_tests/astrill-codesigning-cert.cer +0 -0
  113. package/lib/site-packages/trio/_tests/check_type_completeness.py +247 -0
  114. package/lib/site-packages/trio/_tests/module_with_deprecations.py +22 -0
  115. package/lib/site-packages/trio/_tests/pytest_plugin.py +54 -0
  116. package/lib/site-packages/trio/_tests/test_abc.py +72 -0
  117. package/lib/site-packages/trio/_tests/test_channel.py +750 -0
  118. package/lib/site-packages/trio/_tests/test_contextvars.py +56 -0
  119. package/lib/site-packages/trio/_tests/test_deprecate.py +277 -0
  120. package/lib/site-packages/trio/_tests/test_deprecate_strict_exception_groups_false.py +64 -0
  121. package/lib/site-packages/trio/_tests/test_dtls.py +950 -0
  122. package/lib/site-packages/trio/_tests/test_exports.py +626 -0
  123. package/lib/site-packages/trio/_tests/test_fakenet.py +317 -0
  124. package/lib/site-packages/trio/_tests/test_file_io.py +269 -0
  125. package/lib/site-packages/trio/_tests/test_highlevel_generic.py +98 -0
  126. package/lib/site-packages/trio/_tests/test_highlevel_open_tcp_listeners.py +419 -0
  127. package/lib/site-packages/trio/_tests/test_highlevel_open_tcp_stream.py +693 -0
  128. package/lib/site-packages/trio/_tests/test_highlevel_open_unix_stream.py +86 -0
  129. package/lib/site-packages/trio/_tests/test_highlevel_serve_listeners.py +186 -0
  130. package/lib/site-packages/trio/_tests/test_highlevel_socket.py +336 -0
  131. package/lib/site-packages/trio/_tests/test_highlevel_ssl_helpers.py +169 -0
  132. package/lib/site-packages/trio/_tests/test_path.py +279 -0
  133. package/lib/site-packages/trio/_tests/test_repl.py +428 -0
  134. package/lib/site-packages/trio/_tests/test_scheduler_determinism.py +47 -0
  135. package/lib/site-packages/trio/_tests/test_signals.py +186 -0
  136. package/lib/site-packages/trio/_tests/test_socket.py +1253 -0
  137. package/lib/site-packages/trio/_tests/test_ssl.py +1371 -0
  138. package/lib/site-packages/trio/_tests/test_subprocess.py +767 -0
  139. package/lib/site-packages/trio/_tests/test_sync.py +735 -0
  140. package/lib/site-packages/trio/_tests/test_testing.py +682 -0
  141. package/lib/site-packages/trio/_tests/test_testing_raisesgroup.py +1128 -0
  142. package/lib/site-packages/trio/_tests/test_threads.py +1173 -0
  143. package/lib/site-packages/trio/_tests/test_timeouts.py +281 -0
  144. package/lib/site-packages/trio/_tests/test_tracing.py +88 -0
  145. package/lib/site-packages/trio/_tests/test_trio.py +8 -0
  146. package/lib/site-packages/trio/_tests/test_unix_pipes.py +288 -0
  147. package/lib/site-packages/trio/_tests/test_util.py +349 -0
  148. package/lib/site-packages/trio/_tests/test_wait_for_object.py +225 -0
  149. package/lib/site-packages/trio/_tests/test_windows_pipes.py +112 -0
  150. package/lib/site-packages/trio/_tests/tools/__init__.py +0 -0
  151. package/lib/site-packages/trio/_tests/tools/test_gen_exports.py +179 -0
  152. package/lib/site-packages/trio/_tests/tools/test_mypy_annotate.py +140 -0
  153. package/lib/site-packages/trio/_tests/tools/test_sync_requirements.py +80 -0
  154. package/lib/site-packages/trio/_tests/type_tests/check_wraps.py +9 -0
  155. package/lib/site-packages/trio/_tests/type_tests/open_memory_channel.py +4 -0
  156. package/lib/site-packages/trio/_tests/type_tests/path.py +140 -0
  157. package/lib/site-packages/trio/_tests/type_tests/subprocesses.py +23 -0
  158. package/lib/site-packages/trio/_tests/type_tests/task_status.py +29 -0
  159. package/lib/site-packages/trio/_threads.py +610 -0
  160. package/lib/site-packages/trio/_timeouts.py +197 -0
  161. package/lib/site-packages/trio/_tools/__init__.py +0 -0
  162. package/lib/site-packages/trio/_tools/gen_exports.py +401 -0
  163. package/lib/site-packages/trio/_tools/mypy_annotate.py +126 -0
  164. package/lib/site-packages/trio/_tools/sync_requirements.py +98 -0
  165. package/lib/site-packages/trio/_tools/windows_ffi_build.py +220 -0
  166. package/lib/site-packages/trio/_unix_pipes.py +197 -0
  167. package/lib/site-packages/trio/_util.py +385 -0
  168. package/lib/site-packages/trio/_version.py +3 -0
  169. package/lib/site-packages/trio/_wait_for_object.py +67 -0
  170. package/lib/site-packages/trio/_windows_pipes.py +144 -0
  171. package/lib/site-packages/trio/abc.py +23 -0
  172. package/lib/site-packages/trio/from_thread.py +13 -0
  173. package/lib/site-packages/trio/lowlevel.py +95 -0
  174. package/lib/site-packages/trio/py.typed +0 -0
  175. package/lib/site-packages/trio/socket.py +602 -0
  176. package/lib/site-packages/trio/testing/__init__.py +58 -0
  177. package/lib/site-packages/trio/testing/_check_streams.py +570 -0
  178. package/lib/site-packages/trio/testing/_checkpoints.py +69 -0
  179. package/lib/site-packages/trio/testing/_fake_net.py +584 -0
  180. package/lib/site-packages/trio/testing/_memory_streams.py +633 -0
  181. package/lib/site-packages/trio/testing/_network.py +36 -0
  182. package/lib/site-packages/trio/testing/_raises_group.py +1015 -0
  183. package/lib/site-packages/trio/testing/_sequencer.py +87 -0
  184. package/lib/site-packages/trio/testing/_trio_test.py +50 -0
  185. package/lib/site-packages/trio/to_thread.py +4 -0
  186. package/lib/site-packages/trio-0.33.0.dist-info/INSTALLER +1 -0
  187. package/lib/site-packages/trio-0.33.0.dist-info/METADATA +186 -0
  188. package/lib/site-packages/trio-0.33.0.dist-info/RECORD +156 -0
  189. package/lib/site-packages/trio-0.33.0.dist-info/REQUESTED +0 -0
  190. package/lib/site-packages/trio-0.33.0.dist-info/WHEEL +5 -0
  191. package/lib/site-packages/trio-0.33.0.dist-info/entry_points.txt +2 -0
  192. package/lib/site-packages/trio-0.33.0.dist-info/licenses/LICENSE +3 -0
  193. package/lib/site-packages/trio-0.33.0.dist-info/licenses/LICENSE.APACHE2 +202 -0
  194. package/lib/site-packages/trio-0.33.0.dist-info/licenses/LICENSE.MIT +22 -0
  195. package/lib/site-packages/trio-0.33.0.dist-info/top_level.txt +1 -0
  196. package/package.json +1 -1
@@ -0,0 +1,87 @@
1
+ from __future__ import annotations
2
+
3
+ from collections import defaultdict
4
+ from contextlib import asynccontextmanager
5
+ from typing import TYPE_CHECKING
6
+
7
+ import attrs
8
+
9
+ from .. import Event, _core, _util
10
+
11
+ if TYPE_CHECKING:
12
+ from collections.abc import AsyncIterator
13
+
14
+
15
+ @_util.final
16
+ @attrs.define(eq=False, slots=False)
17
+ class Sequencer:
18
+ """A convenience class for forcing code in different tasks to run in an
19
+ explicit linear order.
20
+
21
+ Instances of this class implement a ``__call__`` method which returns an
22
+ async context manager. The idea is that you pass a sequence number to
23
+ ``__call__`` to say where this block of code should go in the linear
24
+ sequence. Block 0 starts immediately, and then block N doesn't start until
25
+ block N-1 has finished.
26
+
27
+ Example:
28
+ An extremely elaborate way to print the numbers 0-5, in order::
29
+
30
+ async def worker1(seq):
31
+ async with seq(0):
32
+ print(0)
33
+ async with seq(4):
34
+ print(4)
35
+
36
+ async def worker2(seq):
37
+ async with seq(2):
38
+ print(2)
39
+ async with seq(5):
40
+ print(5)
41
+
42
+ async def worker3(seq):
43
+ async with seq(1):
44
+ print(1)
45
+ async with seq(3):
46
+ print(3)
47
+
48
+ async def main():
49
+ seq = trio.testing.Sequencer()
50
+ async with trio.open_nursery() as nursery:
51
+ nursery.start_soon(worker1, seq)
52
+ nursery.start_soon(worker2, seq)
53
+ nursery.start_soon(worker3, seq)
54
+
55
+ """
56
+
57
+ _sequence_points: defaultdict[int, Event] = attrs.field(
58
+ factory=lambda: defaultdict(Event),
59
+ init=False,
60
+ )
61
+ _claimed: set[int] = attrs.field(factory=set, init=False)
62
+ _broken: bool = attrs.field(default=False, init=False)
63
+
64
+ @asynccontextmanager
65
+ async def __call__(self, position: int) -> AsyncIterator[None]:
66
+ if position in self._claimed:
67
+ raise RuntimeError(f"Attempted to reuse sequence point {position}")
68
+ if self._broken:
69
+ raise RuntimeError("sequence broken!")
70
+ self._claimed.add(position)
71
+ if position != 0:
72
+ try:
73
+ await self._sequence_points[position].wait()
74
+ except _core.Cancelled:
75
+ self._broken = True
76
+ for event in self._sequence_points.values():
77
+ event.set()
78
+ raise RuntimeError(
79
+ "Sequencer wait cancelled -- sequence broken",
80
+ ) from None
81
+ else:
82
+ if self._broken:
83
+ raise RuntimeError("sequence broken!")
84
+ try:
85
+ yield
86
+ finally:
87
+ self._sequence_points[position + 1].set()
@@ -0,0 +1,50 @@
1
+ from __future__ import annotations
2
+
3
+ from functools import partial, wraps
4
+ from typing import TYPE_CHECKING, TypeVar
5
+
6
+ from .. import _core
7
+ from ..abc import Clock, Instrument
8
+
9
+ if TYPE_CHECKING:
10
+ from collections.abc import Awaitable, Callable
11
+
12
+ from typing_extensions import ParamSpec
13
+
14
+ ArgsT = ParamSpec("ArgsT")
15
+
16
+
17
+ RetT = TypeVar("RetT")
18
+
19
+
20
+ def trio_test(fn: Callable[ArgsT, Awaitable[RetT]]) -> Callable[ArgsT, RetT]:
21
+ """Converts an async test function to be synchronous, running via Trio.
22
+
23
+ Usage::
24
+
25
+ @trio_test
26
+ async def test_whatever():
27
+ await ...
28
+
29
+ If a pytest fixture is passed in that subclasses the :class:`~trio.abc.Clock` or
30
+ :class:`~trio.abc.Instrument` ABCs, then those are passed to :meth:`trio.run()`.
31
+ """
32
+
33
+ @wraps(fn)
34
+ def wrapper(*args: ArgsT.args, **kwargs: ArgsT.kwargs) -> RetT:
35
+ __tracebackhide__ = True
36
+ clocks = [c for c in kwargs.values() if isinstance(c, Clock)]
37
+ if not clocks:
38
+ clock = None
39
+ elif len(clocks) == 1:
40
+ clock = clocks[0]
41
+ else:
42
+ raise ValueError("too many clocks spoil the broth!")
43
+ instruments = [i for i in kwargs.values() if isinstance(i, Instrument)]
44
+ return _core.run(
45
+ partial(fn, *args, **kwargs),
46
+ clock=clock,
47
+ instruments=instruments,
48
+ )
49
+
50
+ return wrapper
@@ -0,0 +1,4 @@
1
+ from ._threads import current_default_thread_limiter, to_thread_run_sync as run_sync
2
+
3
+ # need to use __all__ for pyright --verifytypes to see re-exports when renaming them
4
+ __all__ = ["current_default_thread_limiter", "run_sync"]
@@ -0,0 +1,186 @@
1
+ Metadata-Version: 2.4
2
+ Name: trio
3
+ Version: 0.33.0
4
+ Summary: A friendly Python library for async concurrency and I/O
5
+ Author-email: "Nathaniel J. Smith" <njs@pobox.com>
6
+ License-Expression: MIT OR Apache-2.0
7
+ Project-URL: Homepage, https://github.com/python-trio/trio
8
+ Project-URL: Documentation, https://trio.readthedocs.io/
9
+ Project-URL: Changelog, https://trio.readthedocs.io/en/latest/history.html
10
+ Keywords: async,io,networking,trio
11
+ Classifier: Development Status :: 4 - Beta
12
+ Classifier: Framework :: Trio
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: Operating System :: POSIX :: Linux
15
+ Classifier: Operating System :: MacOS :: MacOS X
16
+ Classifier: Operating System :: POSIX :: BSD
17
+ Classifier: Operating System :: Microsoft :: Windows
18
+ Classifier: Programming Language :: Python :: Implementation :: CPython
19
+ Classifier: Programming Language :: Python :: Implementation :: PyPy
20
+ Classifier: Programming Language :: Python :: 3 :: Only
21
+ Classifier: Programming Language :: Python :: 3.10
22
+ Classifier: Programming Language :: Python :: 3.11
23
+ Classifier: Programming Language :: Python :: 3.12
24
+ Classifier: Programming Language :: Python :: 3.13
25
+ Classifier: Programming Language :: Python :: 3.14
26
+ Classifier: Topic :: System :: Networking
27
+ Classifier: Typing :: Typed
28
+ Requires-Python: >=3.10
29
+ Description-Content-Type: text/x-rst
30
+ License-File: LICENSE
31
+ License-File: LICENSE.APACHE2
32
+ License-File: LICENSE.MIT
33
+ Requires-Dist: attrs>=23.2.0
34
+ Requires-Dist: sortedcontainers
35
+ Requires-Dist: idna
36
+ Requires-Dist: outcome
37
+ Requires-Dist: sniffio>=1.3.0
38
+ Requires-Dist: cffi>=1.14; os_name == "nt" and implementation_name != "pypy"
39
+ Requires-Dist: exceptiongroup; python_version < "3.11"
40
+ Dynamic: license-file
41
+
42
+ .. image:: https://img.shields.io/badge/chat-join%20now-blue.svg
43
+ :target: https://gitter.im/python-trio/general
44
+ :alt: Join chatroom
45
+
46
+ .. image:: https://img.shields.io/badge/forum-join%20now-blue.svg
47
+ :target: https://trio.discourse.group
48
+ :alt: Join forum
49
+
50
+ .. image:: https://img.shields.io/badge/docs-read%20now-blue.svg
51
+ :target: https://trio.readthedocs.io
52
+ :alt: Documentation
53
+
54
+ .. image:: https://img.shields.io/pypi/v/trio.svg
55
+ :target: https://pypi.org/project/trio
56
+ :alt: Latest PyPi version
57
+
58
+ .. image:: https://img.shields.io/conda/vn/conda-forge/trio.svg
59
+ :target: https://anaconda.org/conda-forge/trio
60
+ :alt: Latest conda-forge version
61
+
62
+ .. image:: https://codecov.io/gh/python-trio/trio/branch/main/graph/badge.svg
63
+ :target: https://codecov.io/gh/python-trio/trio
64
+ :alt: Test coverage
65
+
66
+ Trio – a friendly Python library for async concurrency and I/O
67
+ ==============================================================
68
+
69
+ .. image:: https://raw.githubusercontent.com/python-trio/trio/9b0bec646a31e0d0f67b8b6ecc6939726faf3e17/logo/logo-with-background.svg
70
+ :width: 200px
71
+ :align: right
72
+
73
+ The Trio project aims to produce a production-quality,
74
+ `permissively licensed
75
+ <https://github.com/python-trio/trio/blob/main/LICENSE>`__,
76
+ async/await-native I/O library for Python. Like all async libraries,
77
+ its main purpose is to help you write programs that do **multiple
78
+ things at the same time** with **parallelized I/O**. A web spider that
79
+ wants to fetch lots of pages in parallel, a web server that needs to
80
+ juggle lots of downloads and websocket connections simultaneously, a
81
+ process supervisor monitoring multiple subprocesses... that sort of
82
+ thing. Compared to other libraries, Trio attempts to distinguish
83
+ itself with an obsessive focus on **usability** and
84
+ **correctness**. Concurrency is complicated; we try to make it *easy*
85
+ to get things *right*.
86
+
87
+ Trio was built from the ground up to take advantage of the `latest
88
+ Python features <https://www.python.org/dev/peps/pep-0492/>`__, and
89
+ draws inspiration from `many sources
90
+ <https://github.com/python-trio/trio/wiki/Reading-list>`__, in
91
+ particular Dave Beazley's `Curio <https://curio.readthedocs.io/>`__.
92
+ The resulting design is radically simpler than older competitors like
93
+ `asyncio <https://docs.python.org/3/library/asyncio.html>`__ and
94
+ `Twisted <https://twistedmatrix.com/>`__, yet just as capable. Trio is
95
+ the Python I/O library I always wanted; I find it makes building
96
+ I/O-oriented programs easier, less error-prone, and just plain more
97
+ fun. `Perhaps you'll find the same
98
+ <https://github.com/python-trio/trio/wiki/Testimonials>`__.
99
+
100
+ Trio is a mature and well-tested project: the overall design is solid,
101
+ and the existing features are fully documented and widely used in
102
+ production. While we occasionally make minor interface adjustments,
103
+ breaking changes are rare. We encourage you to use Trio with confidence,
104
+ but if you rely on long-term API stability, consider `subscribing to
105
+ issue #1 <https://github.com/python-trio/trio/issues/1>`__ for advance
106
+ notice of any compatibility updates.
107
+
108
+
109
+ Where to next?
110
+ --------------
111
+
112
+ **I want to try it out!** Awesome! We have a `friendly tutorial
113
+ <https://trio.readthedocs.io/en/stable/tutorial.html>`__ to get you
114
+ started; no prior experience with async coding is required.
115
+
116
+ **Ugh, I don't want to read all that – show me some code!** If you're
117
+ impatient, then here's a `simple concurrency example
118
+ <https://trio.readthedocs.io/en/stable/tutorial.html#tutorial-example-tasks-intro>`__,
119
+ an `echo client
120
+ <https://trio.readthedocs.io/en/stable/tutorial.html#tutorial-echo-client-example>`__,
121
+ and an `echo server
122
+ <https://trio.readthedocs.io/en/stable/tutorial.html#tutorial-echo-server-example>`__.
123
+
124
+ **How does Trio make programs easier to read and reason about than
125
+ competing approaches?** Trio is based on a new way of thinking that we
126
+ call "structured concurrency". The best theoretical introduction is
127
+ the article `Notes on structured concurrency, or: Go statement
128
+ considered harmful
129
+ <https://vorpus.org/blog/notes-on-structured-concurrency-or-go-statement-considered-harmful/>`__.
130
+ Or, `check out this talk at PyCon 2018
131
+ <https://www.youtube.com/watch?v=oLkfnc_UMcE>`__ to see a
132
+ demonstration of implementing the "Happy Eyeballs" algorithm in an
133
+ older library versus Trio.
134
+
135
+ **Cool, but will it work on my system?** Probably! As long as you have
136
+ some kind of Python 3.10-or-better (CPython or `currently maintained versions of
137
+ PyPy3 <https://doc.pypy.org/en/latest/faq.html#which-python-versions-does-pypy-implement>`__
138
+ are both fine), and are using Linux, macOS, Windows, or FreeBSD, then Trio
139
+ will work. Other environments might work too, but those
140
+ are the ones we test on. And all of our dependencies are pure Python,
141
+ except for CFFI on Windows, which has wheels available, so
142
+ installation should be easy (no C compiler needed).
143
+
144
+ **I tried it, but it's not working.** Sorry to hear that! You can try
145
+ asking for help in our `chat room
146
+ <https://gitter.im/python-trio/general>`__ or `forum
147
+ <https://trio.discourse.group>`__, `filing a bug
148
+ <https://github.com/python-trio/trio/issues/new>`__, or `posting a
149
+ question on StackOverflow
150
+ <https://stackoverflow.com/questions/ask?tags=python+python-trio>`__,
151
+ and we'll do our best to help you out.
152
+
153
+ **Trio is awesome, and I want to help make it more awesome!** You're
154
+ the best! There's tons of work to do – filling in missing
155
+ functionality, building up an ecosystem of Trio-using libraries,
156
+ usability testing (e.g., maybe try teaching yourself or a friend to
157
+ use Trio and make a list of every error message you hit and place
158
+ where you got confused?), improving the docs, ... check out our `guide
159
+ for contributors
160
+ <https://trio.readthedocs.io/en/stable/contributing.html>`__!
161
+
162
+ **I don't have any immediate plans to use it, but I love geeking out
163
+ about I/O library design!** That's a little weird? But let's be
164
+ honest, you'll fit in great around here. We have a `whole sub-forum
165
+ for discussing structured concurrency
166
+ <https://trio.discourse.group/c/structured-concurrency>`__ (developers
167
+ of other systems welcome!). Or check out our `discussion of design
168
+ choices
169
+ <https://trio.readthedocs.io/en/stable/design.html#user-level-api-principles>`__,
170
+ `reading list
171
+ <https://github.com/python-trio/trio/wiki/Reading-list>`__, and
172
+ `issues tagged design-discussion
173
+ <https://github.com/python-trio/trio/labels/design%20discussion>`__.
174
+
175
+ **I want to make sure my company's lawyers won't get angry at me!** No
176
+ worries, Trio is permissively licensed under your choice of MIT or
177
+ Apache 2. See `LICENSE
178
+ <https://github.com/python-trio/trio/blob/main/LICENSE>`__ for details.
179
+
180
+
181
+ Code of conduct
182
+ ---------------
183
+
184
+ Contributors are requested to follow our `code of conduct
185
+ <https://trio.readthedocs.io/en/stable/code-of-conduct.html>`__ in all
186
+ project spaces.
@@ -0,0 +1,156 @@
1
+ trio-0.33.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
2
+ trio-0.33.0.dist-info/METADATA,sha256=2r5_KULcUM9R1oKzrzh7Tlh6UKx5p4eVcaOy77UeEJ0,8498
3
+ trio-0.33.0.dist-info/RECORD,,
4
+ trio-0.33.0.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
+ trio-0.33.0.dist-info/WHEEL,sha256=YCfwYGOYMi5Jhw2fU4yNgwErybb2IX5PEwBKV4ZbdBo,91
6
+ trio-0.33.0.dist-info/entry_points.txt,sha256=wuxwk2BfNjtLCdKM6ypHa2i9iCWoQCzLeckmVTaqNEQ,61
7
+ trio-0.33.0.dist-info/licenses/LICENSE,sha256=QY0CXhKEMR8mkCY-bvpr9RWF5XQYGOzmPlhiSH5QW7k,190
8
+ trio-0.33.0.dist-info/licenses/LICENSE.APACHE2,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
9
+ trio-0.33.0.dist-info/licenses/LICENSE.MIT,sha256=-qMB1y3MAjtDK9d9wIp3PKNEnlwnRAudZutG-4UAtDA,1091
10
+ trio-0.33.0.dist-info/top_level.txt,sha256=_le_BDvZ_wML19n4VV0F5vMuqlucn3S2WDj34dDY_Vo,5
11
+ trio/__init__.py,sha256=i0ESbd6igL--3zTmaefgWESf94suurvQdpFio5ArVqo,4758
12
+ trio/__main__.py,sha256=FTkXoLLuHaIqOgu1yBGldWejlhWiHR12cvYcpxcRohk,44
13
+ trio/_abc.py,sha256=I9fwxsng2nBlpfL2pnTI8myH0-KV-aZiHsVvWydj4po,25681
14
+ trio/_channel.py,sha256=loUf9xnZeKF8iKQLmKV8XOcWqpS_cMnTSUGMpJecSok,23972
15
+ trio/_core/__init__.py,sha256=-Jxijp7k0DMQTP7zB1z6DRO3jKzkjn6DTEgxZEDJqLU,2433
16
+ trio/_core/_asyncgens.py,sha256=AH9MEBrzNBGjKLBzo8Xtfbj1jYvdn_ctP5UCdHIEUeI,10680
17
+ trio/_core/_concat_tb.py,sha256=PmnFAIp1QW0hYz2sASSLIGSSHTVHYGmpAxbenFasp34,877
18
+ trio/_core/_entry_queue.py,sha256=TALKfsPhcm1deUUTSeRA7_IGB6GClPUTUUHpxRbv54Q,9427
19
+ trio/_core/_exceptions.py,sha256=AF12uUqk2fQk4yoGnJDZypYa3dAEEqyjvIw-f53we1I,5785
20
+ trio/_core/_generated_instrumentation.py,sha256=b08Sj1rijhDdWkiChx3ta30uXwd4uMNUUPhFfGKHLY4,1627
21
+ trio/_core/_generated_io_epoll.py,sha256=CI2w1b-fB3JGXTk95EmJbxHMY5tgaU99Q6bUsHSLUlQ,3850
22
+ trio/_core/_generated_io_kqueue.py,sha256=Fiqe2cCB51zl_a3iYUk5oEAPV7dpKdh-b7jEku0q7_o,5545
23
+ trio/_core/_generated_io_windows.py,sha256=cswu0UzckFkRAcFOkXYAv5ekhBzRsdNy0t7N_sgd8Ok,7491
24
+ trio/_core/_generated_run.py,sha256=8SllClkHvKyiiNQzyNnc8bBjMFts7NP8ak0BfNt58w0,10126
25
+ trio/_core/_generated_windows_ffi.py,sha256=A1Oy9laH_8aW8da3Ky_J9hvU3dIttpVsYpSFo0Tmbjw,4586
26
+ trio/_core/_instrumentation.py,sha256=iFiWlEZ9Bvfu9SpSzo5sxQTTCv99ruSAFThNVk9y7Vs,3959
27
+ trio/_core/_io_common.py,sha256=DK3lqNPV5g4VPDoo7VF4fXRITIMFAzJlXBGmrhsA85U,857
28
+ trio/_core/_io_epoll.py,sha256=faZl73OFZtS0QLBltIdxjOygGUIu5qs1RzuY-qtR_Vk,17807
29
+ trio/_core/_io_kqueue.py,sha256=UUV2RGf9AxUN2bpkNWL780BVaRlIBu6CBIYOkGgV8ts,11549
30
+ trio/_core/_io_windows.py,sha256=1t_GWIMwaUMkteUyyQ3nCDdzN1Ym4sEM2C1Bw1bLlNk,43874
31
+ trio/_core/_ki.py,sha256=cZ5YYCJmtPOqvjAiZI_TeiwtpLIp4uD2LP-B_M_VIA4,9070
32
+ trio/_core/_local.py,sha256=HsaEKKwLp1CggjQ7GW6VAt0Bggf66OFbz_pk-3FYPNE,3212
33
+ trio/_core/_mock_clock.py,sha256=iaKJrigkzR7LOjgY7us4xBxOe2O0z-RKhTcBb2hv7D8,6316
34
+ trio/_core/_parking_lot.py,sha256=wRQRU_m9KStEThYetO8PLHBWe88LoRvPkNBNXBZK-Z0,11970
35
+ trio/_core/_run.py,sha256=H_Y7DtkVUEkDjYbxwLgwStLeNj7goZgI4DL1wvyMJgo,129550
36
+ trio/_core/_run_context.py,sha256=yi695nQgXiQopYsPuih9Jt-qefE-cowtMudYzn_1eBU,261
37
+ trio/_core/_tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
38
+ trio/_core/_tests/test_asyncgen.py,sha256=mOi91XiF_bEwjSIlp2RIg8jtJot5ApvWttWFRS9ZisM,11695
39
+ trio/_core/_tests/test_cancelled.py,sha256=lz1DK9r02dneRvYjJet6NsNxjIfhRyiZzKpIl1x-Apo,7604
40
+ trio/_core/_tests/test_exceptiongroup_gc.py,sha256=41QOj0uCpQnv6b5M4uiSPn6E1SGfLgGQZzC6v2U4g4U,2845
41
+ trio/_core/_tests/test_guest_mode.py,sha256=PojughYDWDp3Nf1CbItXoQfXZJOl6NFIDaTl5xzOwHU,25672
42
+ trio/_core/_tests/test_instrumentation.py,sha256=b2QH6jMEJrPF9HkDdl9YRQ-6HzAIH4p0pgM7NkUhj8Y,9681
43
+ trio/_core/_tests/test_io.py,sha256=1w61XBANAYKkCkSgYI_el74C8goH-3zukbCi-_mNft4,17673
44
+ trio/_core/_tests/test_ki.py,sha256=kbEqAHHlcVQDBWJUf8SqArU3rGPXisFbRAu68RGUYbI,21293
45
+ trio/_core/_tests/test_local.py,sha256=pEX7JOWp2tYEbXG1Cot1aRZdDaruYEGm5T5rviZQDcg,2891
46
+ trio/_core/_tests/test_mock_clock.py,sha256=kN79tI8Yle4RDj2I-EOU1bXLkeRLuHfcQicSieoHDYg,5827
47
+ trio/_core/_tests/test_parking_lot.py,sha256=Z4Bl9rPxo0YXaxwbU7Vl-7r0FsQV9jnYRJTGUxNwAy4,12023
48
+ trio/_core/_tests/test_run.py,sha256=PlNEEETAYYp2UsGixpLQilJS47yqvXFAbx28dSN6M4M,104199
49
+ trio/_core/_tests/test_thread_cache.py,sha256=jBqsIOYlEPKB2pYu9asjk4_HyrQgaCE5aTrYlg-AEIM,7001
50
+ trio/_core/_tests/test_tutil.py,sha256=fNjIdaMx5pVYGC8GMU0-YRhiC4ZZFrY-iRKBfaQ9lK0,459
51
+ trio/_core/_tests/test_unbounded_queue.py,sha256=eRHRokbqAtF6k0u7NfsmStZ5Yap_joM_q2x4KrxkYIo,4323
52
+ trio/_core/_tests/test_windows.py,sha256=jt_1QGjymiIjQdMhrwKMJKNiNl2V8UDT2BgGYMn1w30,10628
53
+ trio/_core/_tests/tutil.py,sha256=s94FVhtUa5dqgaUYAKcf5jQqiI5VUzi0ejkyFcCUTNM,4026
54
+ trio/_core/_tests/type_tests/nursery_start.py,sha256=_KPhexP_SBKSujsHiJcxXfhJc4kE7Q_3ze_b1OVLCjU,2094
55
+ trio/_core/_tests/type_tests/run.py,sha256=LsMsXsycxGxwjP5dEf2THe8Kp_Bc03Q2kcEEM_80454,1121
56
+ trio/_core/_thread_cache.py,sha256=SXiGer9EQ8A2j7E_H0gP48Jpr9RBRMKihbkb57mHOa4,11986
57
+ trio/_core/_traps.py,sha256=BkFuP2msZUp-8vyPKBWfnVKqVhyblUoJBVlUPFtdYqk,12585
58
+ trio/_core/_unbounded_queue.py,sha256=24Y9cLGyilwLHgGon1f7lepYBmJmLoKRCi66fPTlQ0A,5026
59
+ trio/_core/_wakeup_socketpair.py,sha256=9nNUfcuDN9DMJ6ie53GrlPzpn565ZVPQe2JSrSymbrY,2882
60
+ trio/_core/_windows_cffi.py,sha256=-F_CwrPz89_Mr-VawRien1k4vGxRC7mV6B2U2f47OTc,8750
61
+ trio/_deprecate.py,sha256=sayAmsyHW8aKtV4D6rECwE617uBnjXyZmWfOH9_TGQM,5489
62
+ trio/_dtls.py,sha256=m0HBCn9BfmupCzbLiwedtxUVeMeAYeLx1tkSG5P_ouk,54107
63
+ trio/_file_io.py,sha256=-lBNuW3oaQ9KpmGwRSlAWmSOIKRzzfxgHuS0VvJPOJ4,15607
64
+ trio/_highlevel_generic.py,sha256=ov4np9pP0u_BUBZgiBgXVESpHS8uEz7GjwP4P46VE-A,4734
65
+ trio/_highlevel_open_tcp_listeners.py,sha256=niSmggrIHHL-UVrw1d3bABcmzsUm2re943THwza3zQM,9994
66
+ trio/_highlevel_open_tcp_stream.py,sha256=bAhGI1jLmPvVwErELN4JmAFZ0DOE1YHVN2tgQhNH8X4,18471
67
+ trio/_highlevel_open_unix_stream.py,sha256=haBGh2KVsfkjsBL3Y6gzqvZBWREnx4N3X2x1WpMGFAU,1625
68
+ trio/_highlevel_serve_listeners.py,sha256=1s19um04defHFGBtMCvERoG1XCsWYXevZLhsQ4UqBWA,5186
69
+ trio/_highlevel_socket.py,sha256=9VubaulXdjzE1MC70-KXY1CfqDd6BdPLmuu4ry2hS4k,16072
70
+ trio/_highlevel_ssl_helpers.py,sha256=m_HzevvF6BVX4RwX_Qq4376c7DxsWoE8wjVu1Rb9jHY,6535
71
+ trio/_path.py,sha256=yOaxeC3nmSKSydqxv37W5TN5xk7HLppMQvVRwjIIgpI,9515
72
+ trio/_repl.py,sha256=YvtFJ5-Y7iVu0vifZnit7gk4MiV-JMD-FBf8uvOACpI,5704
73
+ trio/_signals.py,sha256=wumBIv1MmVLikF7NIxVyDxTZxNXcE2JI5vjREH4Fg18,7187
74
+ trio/_socket.py,sha256=jEzWX4edDr_45aoTzQlFx3lXY36lwfsK-0XjynjdOec,45448
75
+ trio/_ssl.py,sha256=Avrzf_ljwTHLP1z-gCfDoHdMqCjVTTiwSbUH4wNqaec,45837
76
+ trio/_subprocess.py,sha256=RLMpcaD-PgPQDRFVwN_uJejfD8lVvU5M9FItYS9q_ak,53146
77
+ trio/_subprocess_platform/__init__.py,sha256=Mx_W_H-1w3HezjW5olTjFLUK96gWjpMlCOJv_kjB6fs,4699
78
+ trio/_subprocess_platform/kqueue.py,sha256=VsoUFUh-lqXnlNGUymfJ4iL03DyckKwCMGbLcWMGGNg,1847
79
+ trio/_subprocess_platform/waitid.py,sha256=DyaOqrHY4mPml8GUM6F_zHuuRyXJxJjyN5xYr1fHNww,3888
80
+ trio/_subprocess_platform/windows.py,sha256=cHF_0YKclShFtFEEMblam28W4OIqU5X7WoZJbtvVNpI,365
81
+ trio/_sync.py,sha256=YSuT-0Yzpr0ORfp1sCWtR1y5wRjeDz1756513HyM7e4,32260
82
+ trio/_tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
83
+ trio/_tests/astrill-codesigning-cert.cer,sha256=EQOzhCP0NUCvoDUVyYEfEp1DGoaQmFllCkt-86GzwB0,1214
84
+ trio/_tests/check_type_completeness.py,sha256=3MYP3rNBt9xOcob-DIcdPurI22amIeEnu-I7ASEA3k4,9847
85
+ trio/_tests/module_with_deprecations.py,sha256=8g7dHKDu8PmxuRFB46aY0iEa9-w5np3QwuZZhlhg6Mw,447
86
+ trio/_tests/pytest_plugin.py,sha256=D1-5awR9YAXGw9topfLy_cshlgyPpyIM5hWXUn1YzU8,1581
87
+ trio/_tests/test_abc.py,sha256=0thACNs2xJoOiJnTw7J1EbMoeRSA4Bli1bIni-idjoA,2034
88
+ trio/_tests/test_channel.py,sha256=kec8Xn1OX58ol12QCI0YhIlHWO_L4MGDN-BoGFK4gow,23188
89
+ trio/_tests/test_contextvars.py,sha256=EAhqYyjMKQORPmF-zfZ0kOhR118vTFKwN1S6HndLtOk,1534
90
+ trio/_tests/test_deprecate.py,sha256=ta0F5M-FkRrAV344Lypq02e-RlRHXKldJ4ujINJjVCQ,8324
91
+ trio/_tests/test_deprecate_strict_exception_groups_false.py,sha256=8V63YGJkkUUgR9ra9anHwH5w8hI4mSzUSVf7iIcelNw,1874
92
+ trio/_tests/test_dtls.py,sha256=GX5ghoi8Jog7u3Nk02vIVd6dCoLw_0juGhySg7eyg20,36040
93
+ trio/_tests/test_exports.py,sha256=estO-gg6n9BfEPah37ZB92YHNkXVlDw7vcIuJ__yYZs,23088
94
+ trio/_tests/test_fakenet.py,sha256=AQJD3B48K4HxT_CA-5VYqd6jB7WYJcL-Os3LIwP22Uc,9794
95
+ trio/_tests/test_file_io.py,sha256=kyMzUjcTFhxZe0tgqNRaNKFIT4Wqp6k8xmKREztxgRI,7716
96
+ trio/_tests/test_highlevel_generic.py,sha256=QfP1rmVcMDJTk9YwB8-JdwaihJznmrvnfNa3VKD24ig,3036
97
+ trio/_tests/test_highlevel_open_tcp_listeners.py,sha256=N1GqJ-bvipyZjeS7GyeK_7bOfUIH6oHSapDb9v6CX2s,13545
98
+ trio/_tests/test_highlevel_open_tcp_stream.py,sha256=CDNvNaw2ZcE-dPLYrthGccnZY_QNAI3924KfKthQca0,22538
99
+ trio/_tests/test_highlevel_open_unix_stream.py,sha256=Uw1O2MPFPmFLYeuj1tepMQBQCGx2cJPlLFR_R2UdKjA,2445
100
+ trio/_tests/test_highlevel_serve_listeners.py,sha256=KkmSMsLQBv1RIO2RrCQMuSoDpR09y7WozylwoyWBdbc,6102
101
+ trio/_tests/test_highlevel_socket.py,sha256=-tUXBwnRm2nh7YVhi7ikkuIJLmtyl4ReVqw44cMgkkY,11050
102
+ trio/_tests/test_highlevel_ssl_helpers.py,sha256=uMaGLdCe2t9x49xcRddWrW6PFd3r71Wy-IbrdisfTm0,5793
103
+ trio/_tests/test_path.py,sha256=rw5CLI_NUOtZ2Ay8peWuMRBZQZl-Ufoj5v__hJYYb3I,7846
104
+ trio/_tests/test_repl.py,sha256=VI8E2JD4nTDD3o2H7oi3zSEoakt7S_vsF_OFyXCLFQs,13967
105
+ trio/_tests/test_scheduler_determinism.py,sha256=ySfsn09sUJHbfnkJTzptGZB-CS_zaJvZTtEhBQutk9s,1320
106
+ trio/_tests/test_signals.py,sha256=ZMrcoCrTXqVwjz92PUv8e12ljqPOcFnTS1KSkfoSZI0,7472
107
+ trio/_tests/test_socket.py,sha256=O7DZ6-Vt3jvtfA6GhDTVDdDWqZXKoL2yQNSSA4hnNqo,44680
108
+ trio/_tests/test_ssl.py,sha256=_FgnYSPvRas4glIrRh2LfsRAk7SRBPljVlE27YDgHSE,51018
109
+ trio/_tests/test_subprocess.py,sha256=Uo8dQT167VrbEx2RlDA3tYr9Yi8WGmxjKQa_SNh5bNI,26668
110
+ trio/_tests/test_sync.py,sha256=xdjevLmOXsZwHHsQwF_RsFI6FChVTBTP5n1AtULSCFM,21765
111
+ trio/_tests/test_testing.py,sha256=t-abL90dbd504sLaTJKU_IQKaJRgHGa7rJ9wC4AjOCI,20772
112
+ trio/_tests/test_testing_raisesgroup.py,sha256=Cg8xTDe2UXcljg0f0M2-dBsey6EKutCGG_-FkKt5fUw,46719
113
+ trio/_tests/test_threads.py,sha256=Ed6N6tEGSJInT8Thb_T6WuM3-kZsGXf0E1sX5Rw88sI,40459
114
+ trio/_tests/test_timeouts.py,sha256=P21krmWhJsks_UAtgnIVlu6jaIWVaCmJ0fw3ejNvdCQ,8643
115
+ trio/_tests/test_tracing.py,sha256=x4WEO99vMKuBa-qF6YK3nyRXi-IMv4M_nwyZ0tQh9nM,2410
116
+ trio/_tests/test_trio.py,sha256=iGi-6pXnwgr3H0FZkzJtoKme_zWvaxK81ogogqxkdlI,205
117
+ trio/_tests/test_unix_pipes.py,sha256=50ziF-Erf7uSEP_7RDG8-2mqdU74GYtdPMFRr1W4QRg,10194
118
+ trio/_tests/test_util.py,sha256=zkTKY1GxfGnGW_jOqVV_myZIclc8ooXJMb6fwclO0Sg,12089
119
+ trio/_tests/test_wait_for_object.py,sha256=6RzX10SeMNZ7D8_9mowbFXdW4DmZ1leVhxmrLytMyhs,8334
120
+ trio/_tests/test_windows_pipes.py,sha256=L5K9Bx17eznFch1yH1G2ckzTmxH_faMtdNwto5Q_9cQ,3346
121
+ trio/_tests/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
122
+ trio/_tests/tools/test_gen_exports.py,sha256=qv0SIL7AzP233Jaj6tQSlejpMXVIfuqBPArTy9MbGG4,4982
123
+ trio/_tests/tools/test_mypy_annotate.py,sha256=K_LsBJpTHSX_9g3dCreeOwrnxh_3FLjAvU-kgqVx_yA,4114
124
+ trio/_tests/tools/test_sync_requirements.py,sha256=Ju_2Z9N8vGRdOv7AxXf4cKS7TY9aZPeAF2Pf4tncbag,2232
125
+ trio/_tests/type_tests/check_wraps.py,sha256=SN5UGLMOLDa3tR75r0i4LenYUZKmjQzDl2VfG4UdTKI,284
126
+ trio/_tests/type_tests/open_memory_channel.py,sha256=Iaiu47Crt9bE3Qk7ecigrdLCgcFdmY60Xx5d8dxhe30,107
127
+ trio/_tests/type_tests/path.py,sha256=6kn-VnV-jH3gkXmizDBvkCCrocH5EmxfSg5DrVSQriA,5832
128
+ trio/_tests/type_tests/subprocesses.py,sha256=Lbi_vDabIcWg8VWaeGNVsbKAk5Wg-ol-AsBglB-sy90,892
129
+ trio/_tests/type_tests/task_status.py,sha256=PoEvAiL-xkXOgNKDRdrNc15OG9X78wl7-_2PY6g59cI,947
130
+ trio/_threads.py,sha256=topaC6KeREcZMHJWetf0fYGYf3bQKBJ3u7arpOpd_DM,24202
131
+ trio/_timeouts.py,sha256=wX0RWZVhh2xU7w67TUcriXQK5VpeXBUJLUqefBLDdTI,6222
132
+ trio/_tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
133
+ trio/_tools/gen_exports.py,sha256=lAF3zKrfN1sT_ldl2nZq0ZHsfypZnmRzOLFCXVBa0Mc,11602
134
+ trio/_tools/mypy_annotate.py,sha256=DMiUvqggfqT8oaC8-nCh-wywxV6BC95H31AxPk0Sess,3998
135
+ trio/_tools/sync_requirements.py,sha256=Jeg4kYnKpJ9OR9Sg-5nwedzBDQFqDChP2yGA4qkCgaw,3175
136
+ trio/_tools/windows_ffi_build.py,sha256=NI8RYm-zy-jqteYArVLO0Y65XeeO0EFooN6VEboKYus,5561
137
+ trio/_unix_pipes.py,sha256=E1jimFyihcFbR3Z5JPiFPYEBvndit8exTVAEN6YTAoI,8236
138
+ trio/_util.py,sha256=Lx5b1nkCLaLm72-ChL4i5oC5Xqn9zlkTd3FZxdnCgyE,13694
139
+ trio/_version.py,sha256=atV0VlmY2sgqgET60dDk9L4DTkeQ8e-en4BMVh76xz8,90
140
+ trio/_wait_for_object.py,sha256=nhmmHHJ7ooA80uVQwNqOkhV0fSYaBzAuKI0g4FUabIw,2081
141
+ trio/_windows_pipes.py,sha256=xtJu6NhbDv9ewoXCTcIfNUuL6kEZUB47wOaFS0sx68Y,4855
142
+ trio/abc.py,sha256=Nx74h6S60QQ1_zl7EQDhRVaHK772odL1o8nPtiSc_8g,907
143
+ trio/from_thread.py,sha256=gtSlGAOkk_pk8Qh4QLNVKgAndWImvMsFjmqVs5tj2B8,442
144
+ trio/lowlevel.py,sha256=nHaULtLZlpv7_QtNQtZlKg9hffI7IB9wR62Oq8zTLig,3583
145
+ trio/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
146
+ trio/socket.py,sha256=szUOWrr3-3gX57IOjbcHK3LmTooziopxxxPtEEZeM_Y,23387
147
+ trio/testing/__init__.py,sha256=0eK5NrYqjl4n2MVBrf4Jc2FQuDx2GydmtylWnMM4RmQ,2077
148
+ trio/testing/_check_streams.py,sha256=6QX53TZce57hgfCHdmbeMVv-cTzjMmJ4kBEzIuWjZ-Q,22805
149
+ trio/testing/_checkpoints.py,sha256=GYJcBMrrGPVq7f1ihrFG0QHH_WgECLoesySJj6bvi-U,2135
150
+ trio/testing/_fake_net.py,sha256=AIOuVk2AlH6GLFcZ18Wm4vlK__vo40z3VbI6A7mFukw,18284
151
+ trio/testing/_memory_streams.py,sha256=fKtiAsvRWMbK1A9nW0U_RCMHFwrRxV5tTpalp1K_BPA,23458
152
+ trio/testing/_network.py,sha256=PNlhXTtJBgqrUnwAS7x5-dZfGUCq8akXvt4xoCudldg,1171
153
+ trio/testing/_raises_group.py,sha256=oADE6cS2VGWepgE5sY7YkYvbB4ZUr1mgkfQTLF92t4c,40782
154
+ trio/testing/_sequencer.py,sha256=S2Hbxoaur6puEk31QP7WKYjPOOC1iRnz3KE2UOhiSRY,2772
155
+ trio/testing/_trio_test.py,sha256=p2nuguloIw610uzvPzWJOO9NtY-MMaxjljaX9EBud9Y,1386
156
+ trio/to_thread.py,sha256=KsbqCvSQK-y-zHYda111seDpqhxyYL14wHQ5_vYJjjs,228
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (82.0.0)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,2 @@
1
+ [hypothesis]
2
+ trio = trio._core._run:_hypothesis_plugin_setup
@@ -0,0 +1,3 @@
1
+ This software is made available under the terms of *either* of the
2
+ licenses found in LICENSE.APACHE2 or LICENSE.MIT. Contributions to
3
+ Trio are made under the terms of *both* these licenses.