xoscar 0.3.1__cp39-cp39-macosx_11_0_arm64.whl

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.

Potentially problematic release.


This version of xoscar might be problematic. Click here for more details.

Files changed (80) hide show
  1. xoscar/__init__.py +60 -0
  2. xoscar/_utils.cpython-39-darwin.so +0 -0
  3. xoscar/_utils.pxd +36 -0
  4. xoscar/_utils.pyx +241 -0
  5. xoscar/_version.py +693 -0
  6. xoscar/aio/__init__.py +25 -0
  7. xoscar/aio/_threads.py +35 -0
  8. xoscar/aio/base.py +86 -0
  9. xoscar/aio/file.py +59 -0
  10. xoscar/aio/lru.py +228 -0
  11. xoscar/aio/parallelism.py +39 -0
  12. xoscar/api.py +493 -0
  13. xoscar/backend.py +67 -0
  14. xoscar/backends/__init__.py +14 -0
  15. xoscar/backends/allocate_strategy.py +160 -0
  16. xoscar/backends/communication/__init__.py +30 -0
  17. xoscar/backends/communication/base.py +315 -0
  18. xoscar/backends/communication/core.py +69 -0
  19. xoscar/backends/communication/dummy.py +242 -0
  20. xoscar/backends/communication/errors.py +20 -0
  21. xoscar/backends/communication/socket.py +375 -0
  22. xoscar/backends/communication/ucx.py +520 -0
  23. xoscar/backends/communication/utils.py +97 -0
  24. xoscar/backends/config.py +145 -0
  25. xoscar/backends/context.py +404 -0
  26. xoscar/backends/core.py +193 -0
  27. xoscar/backends/indigen/__init__.py +16 -0
  28. xoscar/backends/indigen/backend.py +51 -0
  29. xoscar/backends/indigen/driver.py +26 -0
  30. xoscar/backends/indigen/pool.py +469 -0
  31. xoscar/backends/message.cpython-39-darwin.so +0 -0
  32. xoscar/backends/message.pyx +591 -0
  33. xoscar/backends/pool.py +1593 -0
  34. xoscar/backends/router.py +207 -0
  35. xoscar/backends/test/__init__.py +16 -0
  36. xoscar/backends/test/backend.py +38 -0
  37. xoscar/backends/test/pool.py +208 -0
  38. xoscar/batch.py +256 -0
  39. xoscar/collective/__init__.py +27 -0
  40. xoscar/collective/common.py +102 -0
  41. xoscar/collective/core.py +737 -0
  42. xoscar/collective/process_group.py +687 -0
  43. xoscar/collective/utils.py +41 -0
  44. xoscar/collective/xoscar_pygloo.cpython-39-darwin.so +0 -0
  45. xoscar/constants.py +21 -0
  46. xoscar/context.cpython-39-darwin.so +0 -0
  47. xoscar/context.pxd +21 -0
  48. xoscar/context.pyx +368 -0
  49. xoscar/core.cpython-39-darwin.so +0 -0
  50. xoscar/core.pxd +50 -0
  51. xoscar/core.pyx +658 -0
  52. xoscar/debug.py +188 -0
  53. xoscar/driver.py +42 -0
  54. xoscar/errors.py +63 -0
  55. xoscar/libcpp.pxd +31 -0
  56. xoscar/metrics/__init__.py +21 -0
  57. xoscar/metrics/api.py +288 -0
  58. xoscar/metrics/backends/__init__.py +13 -0
  59. xoscar/metrics/backends/console/__init__.py +13 -0
  60. xoscar/metrics/backends/console/console_metric.py +82 -0
  61. xoscar/metrics/backends/metric.py +149 -0
  62. xoscar/metrics/backends/prometheus/__init__.py +13 -0
  63. xoscar/metrics/backends/prometheus/prometheus_metric.py +70 -0
  64. xoscar/nvutils.py +717 -0
  65. xoscar/profiling.py +260 -0
  66. xoscar/serialization/__init__.py +20 -0
  67. xoscar/serialization/aio.py +138 -0
  68. xoscar/serialization/core.cpython-39-darwin.so +0 -0
  69. xoscar/serialization/core.pxd +28 -0
  70. xoscar/serialization/core.pyx +954 -0
  71. xoscar/serialization/cuda.py +111 -0
  72. xoscar/serialization/exception.py +48 -0
  73. xoscar/serialization/numpy.py +82 -0
  74. xoscar/serialization/pyfury.py +37 -0
  75. xoscar/serialization/scipy.py +72 -0
  76. xoscar/utils.py +502 -0
  77. xoscar-0.3.1.dist-info/METADATA +225 -0
  78. xoscar-0.3.1.dist-info/RECORD +80 -0
  79. xoscar-0.3.1.dist-info/WHEEL +5 -0
  80. xoscar-0.3.1.dist-info/top_level.txt +2 -0
@@ -0,0 +1,225 @@
1
+ Metadata-Version: 2.1
2
+ Name: xoscar
3
+ Version: 0.3.1
4
+ Summary: Python actor framework for heterogeneous computing.
5
+ Home-page: http://github.com/xorbitsai/xoscar
6
+ Author: Qin Xuye
7
+ Author-email: qinxuye@xprobe.io
8
+ Maintainer: Qin Xuye
9
+ Maintainer-email: qinxuye@xprobe.io
10
+ License: Apache License 2.0
11
+ Classifier: Operating System :: OS Independent
12
+ Classifier: Programming Language :: Python
13
+ Classifier: Programming Language :: Python :: 3
14
+ Classifier: Programming Language :: Python :: 3.8
15
+ Classifier: Programming Language :: Python :: 3.9
16
+ Classifier: Programming Language :: Python :: 3.10
17
+ Classifier: Programming Language :: Python :: 3.11
18
+ Classifier: Programming Language :: Python :: Implementation :: CPython
19
+ Classifier: Topic :: Software Development :: Libraries
20
+ Description-Content-Type: text/markdown
21
+ Requires-Dist: numpy <2.0.0,>=1.14.0
22
+ Requires-Dist: pandas >=1.0.0
23
+ Requires-Dist: cloudpickle >=1.5.0
24
+ Requires-Dist: psutil >=5.9.0
25
+ Requires-Dist: tblib >=1.7.0
26
+ Requires-Dist: packaging
27
+ Requires-Dist: pickle5 ; python_version < "3.8"
28
+ Requires-Dist: uvloop >=0.14.0 ; sys_platform != "win32"
29
+ Requires-Dist: scipy >=1.0.0 ; sys_platform != "win32" or python_version >= "3.10"
30
+ Requires-Dist: scipy <=1.9.1,>=1.0.0 ; sys_platform == "win32" and python_version < "3.10"
31
+ Provides-Extra: dev
32
+ Requires-Dist: cython >=0.29 ; extra == 'dev'
33
+ Requires-Dist: pytest >=3.5.0 ; extra == 'dev'
34
+ Requires-Dist: pytest-cov >=2.5.0 ; extra == 'dev'
35
+ Requires-Dist: pytest-timeout >=1.2.0 ; extra == 'dev'
36
+ Requires-Dist: pytest-forked >=1.0 ; extra == 'dev'
37
+ Requires-Dist: pytest-asyncio >=0.14.0 ; extra == 'dev'
38
+ Requires-Dist: ipython >=6.5.0 ; extra == 'dev'
39
+ Requires-Dist: sphinx <5.0.0,>=3.0.0 ; extra == 'dev'
40
+ Requires-Dist: pydata-sphinx-theme >=0.3.0 ; extra == 'dev'
41
+ Requires-Dist: sphinx-intl >=0.9.9 ; extra == 'dev'
42
+ Requires-Dist: flake8 >=3.8.0 ; extra == 'dev'
43
+ Requires-Dist: black ; extra == 'dev'
44
+ Requires-Dist: mock >=4.0.0 ; (python_version < "3.8") and extra == 'dev'
45
+ Provides-Extra: doc
46
+ Requires-Dist: ipython >=6.5.0 ; extra == 'doc'
47
+ Requires-Dist: sphinx <5.0.0,>=3.0.0 ; extra == 'doc'
48
+ Requires-Dist: pydata-sphinx-theme >=0.3.0 ; extra == 'doc'
49
+ Requires-Dist: sphinx-intl >=0.9.9 ; extra == 'doc'
50
+ Provides-Extra: extra
51
+ Requires-Dist: pyarrow >=5.0.0 ; extra == 'extra'
52
+ Provides-Extra: kubernetes
53
+ Requires-Dist: kubernetes >=10.0.0 ; extra == 'kubernetes'
54
+ Provides-Extra: ray
55
+ Requires-Dist: xoscar-ray >=0.0.1 ; extra == 'ray'
56
+
57
+ <div align="center">
58
+ <img width="77%" alt="" src="https://raw.githubusercontent.com/xprobe-inc/xoscar/main/doc/source/_static/Xoscar.svg"><br>
59
+ </div>
60
+
61
+ # Python actor framework for heterogeneous computing.
62
+ [![PyPI Latest Release](https://img.shields.io/pypi/v/xoscar.svg?style=for-the-badge)](https://pypi.org/project/xoscar/)
63
+ [![Coverage](https://img.shields.io/codecov/c/github/xorbitsai/xoscar?style=for-the-badge)](https://codecov.io/gh/xorbitsai/xoscar)
64
+ [![Build Status](https://img.shields.io/github/actions/workflow/status/xorbitsai/xoscar/python.yaml?branch=main&style=for-the-badge&label=GITHUB%20ACTIONS&logo=github)](https://actions-badge.atrox.dev/xorbitsai/xoscar/goto?ref=main)
65
+ [![License](https://img.shields.io/pypi/l/xoscar.svg?style=for-the-badge)](https://github.com/xorbitsai/xoscar/blob/main/LICENSE)
66
+
67
+ ## What is actor
68
+ Writing parallel and distributed programs is often challenging and requires a lot of time to deal with concurrency
69
+ issues. Actor model provides a high-level, scalable and robust abstraction for building distributed applications.
70
+ It provides several benefits:
71
+ - Scalability: Actors easily scale across nodes. The asynchronous, non-blocking nature of actors allows them to handle huge volumes of concurrent tasks efficiently.
72
+ - Concurrency: The actor model abstracts over concurrency, allowing developers to avoid raw threads and locks.
73
+ - Modularity: An actor system decomposes naturally into a collection of actors that can be understood independently. Actor logic is encapsulated within the actor itself.
74
+
75
+ ## Why Xoscar
76
+ Xoscar implements the actor model in Python and provides user-friendly APIs that offer significant benefits for building
77
+ applications on heterogeneous hardware:
78
+ - **Abstraction over low-level communication details**: Xoscar handles all communication between actors transparently,
79
+ whether on CPUs, GPUs, or across nodes. Developers focus on application logic rather than managing hardware resources
80
+ and optimizing data transfer.
81
+ - **Flexible actor models**: Xoscar supports both stateful and stateless actors. Stateful actors ensure thread safety for
82
+ concurrent systems while stateless actors can handle massive volumes of concurrent messages. Developers choose the
83
+ appropriate actor model for their needs.
84
+ - **Batch method**: Xoscar provides a batch interface to significantly improve call efficiency when an actor interface is
85
+ invoked a large number of times.
86
+ - **Advanced debugging support**: Xoscar can detect potential issues like deadlocks, long-running calls, and performance
87
+ bottlenecks that would otherwise be nearly impossible to troubleshoot in a heterogeneous environment.
88
+ - **Automated recovery**: If an actor fails for any reason, Xoscar will automatically restart it if you want. It can monitor
89
+ actors and restart them upon failure, enabling fault-tolerant systems.
90
+
91
+ ## Overview
92
+ ![architecture.png](doc/source/_static/architecture.png)
93
+ Xoscar allows you to create multiple actor pools on each worker node, typically binding an actor pool to a CPU core or
94
+ a GPU card. Xoscar provides allocation policies so that whenever an actor is created, it will be instantiated in the
95
+ appropriate pool based on the specified policy.
96
+
97
+ When actors communicate, Xoscar will choose the optimal communication mechanism based on which pools the actors
98
+ belong to. This allows Xoscar to optimize communication in heterogeneous environments with multiple processing
99
+ units and accelerators.
100
+
101
+ ## Where to get it
102
+
103
+ ### PyPI
104
+ Binary installers for the latest released version are available at the [Python
105
+ Package Index (PyPI)](https://pypi.org/project/xoscar).
106
+
107
+ ```shell
108
+ # PyPI
109
+ pip install xoscar
110
+ ```
111
+
112
+ ### Build from source
113
+ The source code is currently hosted on GitHub at: https://github.com/xorbitsai/xoscar .
114
+
115
+ Building from source requires that you have cmake and gcc installed on your system.
116
+
117
+ - cmake >= 3.11
118
+ - gcc >= 8
119
+
120
+ ```shell
121
+ # If you have never cloned xoscar before
122
+ git clone --recursive https://github.com/xorbitsai/xoscar.git
123
+ cd xoscar/python
124
+ pip install -e .
125
+
126
+ # If you have already cloned xoscar before
127
+ cd xoscar
128
+ git submodule init
129
+ git submodule update
130
+ cd python && pip install -e .
131
+ ```
132
+
133
+ ## APIs
134
+ Here are basic APIs for Xoscar.
135
+ #### Define an actor
136
+ ```python
137
+ import xoscar as xo
138
+
139
+ # stateful actor, for stateless actor, inherit from xo.StatelessActor
140
+ class MyActor(xo.Actor):
141
+ def __init__(self, *args, **kwargs):
142
+ pass
143
+
144
+ async def __post_create__(self):
145
+ # called after created
146
+ pass
147
+
148
+ async def __pre_destroy__(self):
149
+ # called before destroy
150
+ pass
151
+
152
+ def method_a(self, arg_1, arg_2, **kw_1): # user-defined function
153
+ pass
154
+
155
+ async def method_b(self, arg_1, arg_2, **kw_1): # user-defined async function
156
+ pass
157
+ ```
158
+
159
+ #### Create an actor
160
+ ```python
161
+ import xoscar as xo
162
+
163
+ actor_ref = await xo.create_actor(
164
+ MyActor, 1, 2, a=1, b=2,
165
+ address='<ip>:<port>', uid='UniqueActorName')
166
+ ```
167
+
168
+ #### Get an actor reference
169
+ ```python
170
+ import xoscar as xo
171
+
172
+ actor_ref = await xo.actor_ref(address, actor_id)
173
+ ```
174
+
175
+ #### Invoke a method
176
+ ```python
177
+ # send
178
+ await actor_ref.method_a.send(1, 2, a=1, b=2)
179
+ # equivalent to actor_ref.method_a.send
180
+ await actor_ref.method_a(1, 2, a=1, b=2)
181
+ # tell, it sends a message asynchronously and does not wait for a response.
182
+ await actor_ref.method_a.tell(1, 2, a=1, b=2)
183
+ ```
184
+ ### Batch method
185
+ Xoscar provides a set of APIs to write batch methods. You can simply add a `@extensible` decorator to your actor method
186
+ and create a batch version. All calls wrapped in a batch will be sent together, reducing possible RPC cost.
187
+ #### Define a batch method
188
+ ```python
189
+ import xoscar as xo
190
+
191
+ class ExampleActor(xo.Actor):
192
+ @xo.extensible
193
+ async def batch_method(self, a, b=None):
194
+ pass
195
+ ```
196
+ Xoscar also supports creating a batch version of the method:
197
+ ```python
198
+ class ExampleActor(xo.Actor):
199
+ @xo.extensible
200
+ async def batch_method(self, a, b=None):
201
+ raise NotImplementedError # this will redirect all requests to the batch version
202
+
203
+ @batch_method.batch
204
+ async def batch_method(self, args_list, kwargs_list):
205
+ results = []
206
+ for args, kwargs in zip(args_list, kwargs_list):
207
+ a, b = self.batch_method.bind(*args, **kwargs)
208
+ # process the request
209
+ results.append(result)
210
+ return results # return a list of results
211
+ ```
212
+ In a batch method, users can define how to more efficiently process a batch of requests.
213
+
214
+ #### Invoke a batch method
215
+ Calling batch methods is easy. You can use `<method_name>.delay` to make a batched call and use `<method_name>.batch` to send them:
216
+ ```python
217
+ ref = await xo.actor_ref(uid='ExampleActor', address='127.0.0.1:13425')
218
+ results = await ref.batch_method.batch(
219
+ ref.batch_method.delay(10, b=20),
220
+ ref.batch_method.delay(20),
221
+ )
222
+ ```
223
+
224
+ ## License
225
+ [Apache 2](LICENSE)
@@ -0,0 +1,80 @@
1
+ xoscar-0.3.1.dist-info/RECORD,,
2
+ xoscar-0.3.1.dist-info/WHEEL,sha256=t3aNIuHimB-eyeerOmc50nLML0b4_R6yjydcdcJkGHg,108
3
+ xoscar-0.3.1.dist-info/top_level.txt,sha256=vYlqqY4Nys8Thm1hePIuUv8eQePdULVWMmt7lXtX_ZA,21
4
+ xoscar-0.3.1.dist-info/METADATA,sha256=E5RR5bNLUe_gBjm_Px5K6GstgVGNK9WZ79y-2vg2iuw,9246
5
+ xoscar/_utils.pyx,sha256=UR1FtYXAYKIdEWR9HulEpMbSOrkQWi6xGz63d4IQmG0,7059
6
+ xoscar/backend.py,sha256=is436OPkZfSpQXaoqTRVta5eoye_pp45RFgCstAk2hU,1850
7
+ xoscar/core.pxd,sha256=4lBq8J0kjcXcsGuvN7Kv4xcL5liHwTTFWlqyK7XAEnw,1280
8
+ xoscar/_version.py,sha256=ClSPrUjgGRGHIkVMQV9XQnkQ-n0akJMnq_rh819nqFE,23719
9
+ xoscar/context.pxd,sha256=qKa0OyDPZtVymftSh447m-RzFZgmz8rGqQBa7qlauvc,725
10
+ xoscar/batch.py,sha256=DpArS0L3WYJ_HVPG-6hSYEwoAFY1mY2-mlC4Jp5M_Dw,7872
11
+ xoscar/nvutils.py,sha256=qmW4mKLU0WB2yCs198ccQOgLL02zB7Fsa-AotO3NOmg,20412
12
+ xoscar/constants.py,sha256=Yn59lRIOvE1VFwyuZB5G2-gxYIyhIZ1rVovbdFAR2NM,759
13
+ xoscar/__init__.py,sha256=0zX8kKaio3ZIrlzB79WybcravMJw1OxPWjDspTgJFyQ,1608
14
+ xoscar/api.py,sha256=3hztPoOxg8A_mlhWyWgVP7FMXG0PATA1TP4Rbaj7A-g,13327
15
+ xoscar/core.cpython-39-darwin.so,sha256=JYnPzLwzatD6FslXx8ypWehNo-tMaHlV0b1n1NzX_M0,424808
16
+ xoscar/utils.py,sha256=TYp6wC8xx2AjKcoKt6Xk0bwhFeccBJKCK50YQE1XOV4,16076
17
+ xoscar/debug.py,sha256=9Z8SgE2WaKYQcyDo-5-DxEJQ533v7kWjrvCd28pSx3E,5069
18
+ xoscar/libcpp.pxd,sha256=DJqBxLFOKL4iRr9Kale5UH3rbvPRD1x5bTSOPHFpz9I,1147
19
+ xoscar/context.pyx,sha256=8CdgPnWcE9eOp3N600WgDQ03MCi8P73eUOGcfV7Zksg,10942
20
+ xoscar/errors.py,sha256=wBlQOKsXf0Fc4skN39tDie0YZT-VIAuLNRgoDl2pZcA,1241
21
+ xoscar/_utils.cpython-39-darwin.so,sha256=s3968Za3blzgm9LJ0bkx02J7aSIlY-2DM4LSfHbHchY,167800
22
+ xoscar/core.pyx,sha256=Aqc2i8Fetsd5wRAPF4kL0ddnBZn3E2HRNCvup79BbQc,21730
23
+ xoscar/driver.py,sha256=498fowtJr6b3FE8FIOA_Tc1Vwx88nfZw7p0FxrML0h4,1372
24
+ xoscar/profiling.py,sha256=BC5OF0HzSaXv8V7w-y-B8r5gV5DgxHFoTEIF6jCMioQ,8015
25
+ xoscar/_utils.pxd,sha256=5KYAL3jfPdejsHnrGGT2s--ZUX5SXznQWpHVSno429k,1157
26
+ xoscar/context.cpython-39-darwin.so,sha256=NREwwrdKdxmdMtNfawjpRuhZW5AAlGaz2_TukZlRcC0,210000
27
+ xoscar/metrics/__init__.py,sha256=9Badi7rxYikGm2dQiNCrj9GgMRBxwuR3JaEKcFZmfak,705
28
+ xoscar/metrics/api.py,sha256=BBlMIFvVAGVfrtpeJ1YlH9Tqhy9OzGavwvGyeHcQ0Tk,8856
29
+ xoscar/metrics/backends/__init__.py,sha256=h_JgzSqV5lP6vQ6XX_17kE4IY4BRnvKta_7VLQAL1ms,581
30
+ xoscar/metrics/backends/metric.py,sha256=aPhyc8JgH22L3rcHP8IjsmgrhSODjg6B5TZVnre97y8,4446
31
+ xoscar/metrics/backends/prometheus/__init__.py,sha256=h_JgzSqV5lP6vQ6XX_17kE4IY4BRnvKta_7VLQAL1ms,581
32
+ xoscar/metrics/backends/prometheus/prometheus_metric.py,sha256=MxoMvVrg0pOkKpkjJ0PcAuEaaEJR2FZljmPrLjQ1-oc,2050
33
+ xoscar/metrics/backends/console/console_metric.py,sha256=y5CCtH33j3AqI5_Uhwi4mgOcAhyhb4cWv_YvR6fxcbQ,2082
34
+ xoscar/metrics/backends/console/__init__.py,sha256=h_JgzSqV5lP6vQ6XX_17kE4IY4BRnvKta_7VLQAL1ms,581
35
+ xoscar/collective/xoscar_pygloo.cpython-39-darwin.so,sha256=FbEYBphLXJggUcCyI_PHXpBhVC7cKsA7n_Xab7gy6wI,1159136
36
+ xoscar/collective/__init__.py,sha256=XsClIkO_3Jd8GDifYuAbZCmJLAo9ZqGvnjUn9iuogmU,774
37
+ xoscar/collective/core.py,sha256=WfMJZloiRiqsLlIMhU4Pa47eo0jE-hoXdbTBwZPM6TM,23498
38
+ xoscar/collective/common.py,sha256=INAnISbfnRicbbbDHTqbSr9ITb89ZphH5BUkSpEdXXU,3561
39
+ xoscar/collective/utils.py,sha256=3S4qF4JEnAUD3RiWVBUj-ZptL83CBSwGYyVZyIasAsE,1178
40
+ xoscar/collective/process_group.py,sha256=zy7LcIFnEcmrcxuECI89v0bQlUbSqQMkVyBw468WBnk,22599
41
+ xoscar/serialization/exception.py,sha256=Jy8Lsk0z-VJyEUaWeuZIwkmxqaoB-nLKMa1D15Cl4js,1634
42
+ xoscar/serialization/pyfury.py,sha256=sifOnVMYoS82PzZEkzkfxesmMHei23k5UAUUKUyoOYQ,1163
43
+ xoscar/serialization/core.pxd,sha256=k4RoJgX5E5LGs4jdCQ7vvcn26MabXbrWoWhkO49X6YI,985
44
+ xoscar/serialization/__init__.py,sha256=5Y_C3cYbQJIZ09LRjeCf-jrkLma7mfN8I5bznHrdsbg,846
45
+ xoscar/serialization/numpy.py,sha256=5Kem87CvpJmzUMp3QHk4WeHU30FoQWTJJP2SwIcaQG0,2919
46
+ xoscar/serialization/core.cpython-39-darwin.so,sha256=mOeQHBphfMpssEB7L1oLUi99hJz79uyPcSCd5jnwS7U,379096
47
+ xoscar/serialization/cuda.py,sha256=iFUEnN4SiquBIhyieyOrfw3TnKnW-tU_vYgqOxO_DrA,3758
48
+ xoscar/serialization/scipy.py,sha256=yOEi0NB8cqQ6e2UnCZ1w006RsB7T725tIL-DM_hNcsU,2482
49
+ xoscar/serialization/aio.py,sha256=S9e3rHMBwqqKmJtDz7KzYAqWc8w9bttA0Dj83IBfEU0,4577
50
+ xoscar/serialization/core.pyx,sha256=E3xIKmdI2gn99JduR3yuU_YTm-lOyG0Tkc7fZVBWCho,30131
51
+ xoscar/backends/message.cpython-39-darwin.so,sha256=RFVgRSZ-3prNg0riI7JGo4eSzUQQA3jlX0HfKWEJOUQ,344688
52
+ xoscar/backends/config.py,sha256=EG26f0GwX_f4dAhwTW77RBjiK9h8R_3JrD-rBF1bAq8,4984
53
+ xoscar/backends/allocate_strategy.py,sha256=tC1Nbq2tJohahUwd-zoRYHEDX65wyuX8tmeY45uWj_w,4845
54
+ xoscar/backends/__init__.py,sha256=VHEBQcUWM5bj027W8EUf9PiJUAP7JoMrRw3Tsvy5ySw,643
55
+ xoscar/backends/core.py,sha256=aHb3mMZ9vJe6pxg0P8kSOKvjXF1IaqgOgyhKVhHpNLM,7432
56
+ xoscar/backends/context.py,sha256=Vr_PibRxYCDQ_gYK7r-BOlw9TXw8VQbFsVTH7K7mHPk,15470
57
+ xoscar/backends/router.py,sha256=mhSvM5KVfV882jricVcpyxAqHEvhS4zL6ivczC6fOTE,7746
58
+ xoscar/backends/message.pyx,sha256=_rXcsWPcWu77Z_38rvjDBdQojpY5xJoaHQrt57_LVyo,17612
59
+ xoscar/backends/pool.py,sha256=bvS1r31O01E8jTdoWOhSqcFymksNqO2nX3Fkqary8Ro,59149
60
+ xoscar/backends/indigen/backend.py,sha256=znl_fZzWGEtLH8hZ9j9Kkf0fva25jEem2_KO7I1RVvc,1612
61
+ xoscar/backends/indigen/__init__.py,sha256=tKHP5ClzedBRBpZsLRVErR3EUNbbDm4CY4u0rCFJr44,685
62
+ xoscar/backends/indigen/driver.py,sha256=VGzkacYKykegW5qhCuhx01gdgBZEKJjNIyfNCnA6Nm8,952
63
+ xoscar/backends/indigen/pool.py,sha256=3C1N2sbq02maUjl7jDhRkyYAoYmZD8hZBct6wxblq_Y,16709
64
+ xoscar/backends/test/backend.py,sha256=nv9WFhH5Bbq4Q1HB9yfpciZBaeHT4IQAtzugBWESrUY,1263
65
+ xoscar/backends/test/__init__.py,sha256=j2ZfD6prD9WjUxRUDC7Eq5Z7N7TkL6fFr59oNyc_vY4,682
66
+ xoscar/backends/test/pool.py,sha256=TW4X6J-92Pti66103poQBNDBznX6CBD3RLOc_zixjTo,7257
67
+ xoscar/backends/communication/ucx.py,sha256=eidp4l-YAzFMCYaeUcvpK4ecapg-92fXFKO-t_bBkTU,19267
68
+ xoscar/backends/communication/__init__.py,sha256=tB05BlK63iWQnfJgRzKt4mFKRtmWUki5hUGSZQwAotc,1050
69
+ xoscar/backends/communication/core.py,sha256=sJeE3foRIqVPXldzYpFKHDSsabfAIFBU4JuXY4OyklY,2130
70
+ xoscar/backends/communication/utils.py,sha256=AmovE-hmWLXNCPwHafYuaRjOk8m42BUyT3XBqfXQRVI,3664
71
+ xoscar/backends/communication/errors.py,sha256=V3CdBe2xX9Rwv32f2dH2Msc84yaUhlyerZ42-739o1Q,723
72
+ xoscar/backends/communication/socket.py,sha256=VBPiesyjX8c3ECWn8kv8qGwK3xCBqh_CHPrNDapYH6w,11819
73
+ xoscar/backends/communication/dummy.py,sha256=gaKPNiN4x2aGZV3IGaaa8eaweBVjRh8B19jU1B5t2yw,7798
74
+ xoscar/backends/communication/base.py,sha256=0P4Tr35GSWpRp394e9jVWUUoKKa-gIk177eYPw1BnSU,7421
75
+ xoscar/aio/__init__.py,sha256=4Rv9V_wDIKlg7VcJeo1GVlvobwskYb1jYXef-0GQOaY,809
76
+ xoscar/aio/_threads.py,sha256=WE9_NZY3K9n5bAzXRbj1Bc4dxS-1m1erMfZsUu-ULU4,1313
77
+ xoscar/aio/file.py,sha256=PBtkLp-Q7XtYl-zk00s18TtgIrkNr60J3Itf66ctO1o,1486
78
+ xoscar/aio/lru.py,sha256=rpXCqSLtPV5xnWtd6uDwQQFGgIPEgvmWEQDkPNUx9cM,6311
79
+ xoscar/aio/parallelism.py,sha256=VSsjk8wP-Bw7tLeUsTyLVNgp91thjxEfE3pCrw_vF5Q,1293
80
+ xoscar/aio/base.py,sha256=9j0f1piwfE5R5GIvV212vSD03ixdaeSzSSsO2kxJZVE,2249
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: bdist_wheel (0.43.0)
3
+ Root-Is-Purelib: false
4
+ Tag: cp39-cp39-macosx_11_0_arm64
5
+
@@ -0,0 +1,2 @@
1
+ xoscar
2
+ xoscar_pygloo