xoscar 0.7.0__cp312-cp312-macosx_10_13_x86_64.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 (89) hide show
  1. xoscar/__init__.py +60 -0
  2. xoscar/_utils.cpython-312-darwin.so +0 -0
  3. xoscar/_utils.pxd +36 -0
  4. xoscar/_utils.pyx +246 -0
  5. xoscar/_version.py +693 -0
  6. xoscar/aio/__init__.py +16 -0
  7. xoscar/aio/base.py +86 -0
  8. xoscar/aio/file.py +59 -0
  9. xoscar/aio/lru.py +228 -0
  10. xoscar/aio/parallelism.py +39 -0
  11. xoscar/api.py +493 -0
  12. xoscar/backend.py +67 -0
  13. xoscar/backends/__init__.py +14 -0
  14. xoscar/backends/allocate_strategy.py +160 -0
  15. xoscar/backends/communication/__init__.py +30 -0
  16. xoscar/backends/communication/base.py +315 -0
  17. xoscar/backends/communication/core.py +69 -0
  18. xoscar/backends/communication/dummy.py +253 -0
  19. xoscar/backends/communication/errors.py +20 -0
  20. xoscar/backends/communication/socket.py +444 -0
  21. xoscar/backends/communication/ucx.py +538 -0
  22. xoscar/backends/communication/utils.py +97 -0
  23. xoscar/backends/config.py +157 -0
  24. xoscar/backends/context.py +437 -0
  25. xoscar/backends/core.py +304 -0
  26. xoscar/backends/indigen/__init__.py +16 -0
  27. xoscar/backends/indigen/__main__.py +19 -0
  28. xoscar/backends/indigen/backend.py +51 -0
  29. xoscar/backends/indigen/driver.py +26 -0
  30. xoscar/backends/indigen/fate_sharing.py +221 -0
  31. xoscar/backends/indigen/pool.py +450 -0
  32. xoscar/backends/indigen/shared_memory.py +548 -0
  33. xoscar/backends/message.cpython-312-darwin.so +0 -0
  34. xoscar/backends/message.pyi +255 -0
  35. xoscar/backends/message.pyx +646 -0
  36. xoscar/backends/pool.py +1625 -0
  37. xoscar/backends/router.py +285 -0
  38. xoscar/backends/test/__init__.py +16 -0
  39. xoscar/backends/test/backend.py +38 -0
  40. xoscar/backends/test/pool.py +197 -0
  41. xoscar/batch.py +256 -0
  42. xoscar/collective/__init__.py +27 -0
  43. xoscar/collective/common.py +102 -0
  44. xoscar/collective/core.py +737 -0
  45. xoscar/collective/process_group.py +687 -0
  46. xoscar/collective/utils.py +41 -0
  47. xoscar/collective/xoscar_pygloo.cpython-312-darwin.so +0 -0
  48. xoscar/collective/xoscar_pygloo.pyi +239 -0
  49. xoscar/constants.py +23 -0
  50. xoscar/context.cpython-312-darwin.so +0 -0
  51. xoscar/context.pxd +21 -0
  52. xoscar/context.pyx +368 -0
  53. xoscar/core.cpython-312-darwin.so +0 -0
  54. xoscar/core.pxd +51 -0
  55. xoscar/core.pyx +664 -0
  56. xoscar/debug.py +188 -0
  57. xoscar/driver.py +42 -0
  58. xoscar/errors.py +63 -0
  59. xoscar/libcpp.pxd +31 -0
  60. xoscar/metrics/__init__.py +21 -0
  61. xoscar/metrics/api.py +288 -0
  62. xoscar/metrics/backends/__init__.py +13 -0
  63. xoscar/metrics/backends/console/__init__.py +13 -0
  64. xoscar/metrics/backends/console/console_metric.py +82 -0
  65. xoscar/metrics/backends/metric.py +149 -0
  66. xoscar/metrics/backends/prometheus/__init__.py +13 -0
  67. xoscar/metrics/backends/prometheus/prometheus_metric.py +70 -0
  68. xoscar/nvutils.py +717 -0
  69. xoscar/profiling.py +260 -0
  70. xoscar/serialization/__init__.py +20 -0
  71. xoscar/serialization/aio.py +142 -0
  72. xoscar/serialization/core.cpython-312-darwin.so +0 -0
  73. xoscar/serialization/core.pxd +28 -0
  74. xoscar/serialization/core.pyi +57 -0
  75. xoscar/serialization/core.pyx +944 -0
  76. xoscar/serialization/cuda.py +111 -0
  77. xoscar/serialization/exception.py +48 -0
  78. xoscar/serialization/mlx.py +63 -0
  79. xoscar/serialization/numpy.py +82 -0
  80. xoscar/serialization/pyfury.py +37 -0
  81. xoscar/serialization/scipy.py +72 -0
  82. xoscar/utils.py +517 -0
  83. xoscar/virtualenv/__init__.py +34 -0
  84. xoscar/virtualenv/core.py +52 -0
  85. xoscar/virtualenv/uv.py +91 -0
  86. xoscar-0.7.0.dist-info/METADATA +228 -0
  87. xoscar-0.7.0.dist-info/RECORD +89 -0
  88. xoscar-0.7.0.dist-info/WHEEL +6 -0
  89. xoscar-0.7.0.dist-info/top_level.txt +2 -0
@@ -0,0 +1,228 @@
1
+ Metadata-Version: 2.4
2
+ Name: xoscar
3
+ Version: 0.7.0
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.9
15
+ Classifier: Programming Language :: Python :: 3.10
16
+ Classifier: Programming Language :: Python :: 3.11
17
+ Classifier: Programming Language :: Python :: 3.12
18
+ Classifier: Programming Language :: Python :: Implementation :: CPython
19
+ Classifier: Topic :: Software Development :: Libraries
20
+ Description-Content-Type: text/markdown
21
+ Requires-Dist: numpy>=1.14.0
22
+ Requires-Dist: pandas>=1.0.0
23
+ Requires-Dist: scipy>=1.0.0; sys_platform != "win32" or python_version >= "3.10"
24
+ Requires-Dist: scipy<=1.9.1,>=1.0.0; sys_platform == "win32" and python_version < "3.10"
25
+ Requires-Dist: cloudpickle>=1.5.0
26
+ Requires-Dist: psutil>=5.9.0
27
+ Requires-Dist: tblib>=1.7.0
28
+ Requires-Dist: uvloop>=0.14.0; sys_platform != "win32"
29
+ Requires-Dist: packaging
30
+ Requires-Dist: click
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; 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: uv; extra == "dev"
45
+ Requires-Dist: click; extra == "dev"
46
+ Provides-Extra: doc
47
+ Requires-Dist: ipython>=6.5.0; extra == "doc"
48
+ Requires-Dist: sphinx; extra == "doc"
49
+ Requires-Dist: pydata-sphinx-theme>=0.3.0; extra == "doc"
50
+ Requires-Dist: sphinx-intl>=0.9.9; extra == "doc"
51
+ Provides-Extra: extra
52
+ Requires-Dist: pyarrow>=5.0.0; extra == "extra"
53
+ Provides-Extra: kubernetes
54
+ Requires-Dist: kubernetes>=10.0.0; extra == "kubernetes"
55
+ Provides-Extra: ray
56
+ Requires-Dist: xoscar_ray>=0.0.1; extra == "ray"
57
+ Dynamic: description
58
+ Dynamic: description-content-type
59
+
60
+ <div align="center">
61
+ <img width="77%" alt="" src="https://raw.githubusercontent.com/xprobe-inc/xoscar/main/doc/source/_static/Xoscar.svg"><br>
62
+ </div>
63
+
64
+ # Python actor framework for heterogeneous computing.
65
+ [![PyPI Latest Release](https://img.shields.io/pypi/v/xoscar.svg?style=for-the-badge)](https://pypi.org/project/xoscar/)
66
+ [![Coverage](https://img.shields.io/codecov/c/github/xorbitsai/xoscar?style=for-the-badge)](https://codecov.io/gh/xorbitsai/xoscar)
67
+ [![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)
68
+ [![License](https://img.shields.io/pypi/l/xoscar.svg?style=for-the-badge)](https://github.com/xorbitsai/xoscar/blob/main/LICENSE)
69
+
70
+ ## What is actor
71
+ Writing parallel and distributed programs is often challenging and requires a lot of time to deal with concurrency
72
+ issues. Actor model provides a high-level, scalable and robust abstraction for building distributed applications.
73
+ It provides several benefits:
74
+ - Scalability: Actors easily scale across nodes. The asynchronous, non-blocking nature of actors allows them to handle huge volumes of concurrent tasks efficiently.
75
+ - Concurrency: The actor model abstracts over concurrency, allowing developers to avoid raw threads and locks.
76
+ - Modularity: An actor system decomposes naturally into a collection of actors that can be understood independently. Actor logic is encapsulated within the actor itself.
77
+
78
+ ## Why Xoscar
79
+ Xoscar implements the actor model in Python and provides user-friendly APIs that offer significant benefits for building
80
+ applications on heterogeneous hardware:
81
+ - **Abstraction over low-level communication details**: Xoscar handles all communication between actors transparently,
82
+ whether on CPUs, GPUs, or across nodes. Developers focus on application logic rather than managing hardware resources
83
+ and optimizing data transfer.
84
+ - **Flexible actor models**: Xoscar supports both stateful and stateless actors. Stateful actors ensure thread safety for
85
+ concurrent systems while stateless actors can handle massive volumes of concurrent messages. Developers choose the
86
+ appropriate actor model for their needs.
87
+ - **Batch method**: Xoscar provides a batch interface to significantly improve call efficiency when an actor interface is
88
+ invoked a large number of times.
89
+ - **Advanced debugging support**: Xoscar can detect potential issues like deadlocks, long-running calls, and performance
90
+ bottlenecks that would otherwise be nearly impossible to troubleshoot in a heterogeneous environment.
91
+ - **Automated recovery**: If an actor fails for any reason, Xoscar will automatically restart it if you want. It can monitor
92
+ actors and restart them upon failure, enabling fault-tolerant systems.
93
+
94
+ ## Overview
95
+ ![architecture.png](doc/source/_static/architecture.png)
96
+ Xoscar allows you to create multiple actor pools on each worker node, typically binding an actor pool to a CPU core or
97
+ a GPU card. Xoscar provides allocation policies so that whenever an actor is created, it will be instantiated in the
98
+ appropriate pool based on the specified policy.
99
+
100
+ When actors communicate, Xoscar will choose the optimal communication mechanism based on which pools the actors
101
+ belong to. This allows Xoscar to optimize communication in heterogeneous environments with multiple processing
102
+ units and accelerators.
103
+
104
+ ## Where to get it
105
+
106
+ ### PyPI
107
+ Binary installers for the latest released version are available at the [Python
108
+ Package Index (PyPI)](https://pypi.org/project/xoscar).
109
+
110
+ ```shell
111
+ # PyPI
112
+ pip install xoscar
113
+ ```
114
+
115
+ ### Build from source
116
+ The source code is currently hosted on GitHub at: https://github.com/xorbitsai/xoscar .
117
+
118
+ Building from source requires that you have cmake and gcc installed on your system.
119
+
120
+ - cmake >= 3.11
121
+ - gcc >= 8
122
+
123
+ ```shell
124
+ # If you have never cloned xoscar before
125
+ git clone --recursive https://github.com/xorbitsai/xoscar.git
126
+ cd xoscar/python
127
+ pip install -e .
128
+
129
+ # If you have already cloned xoscar before
130
+ cd xoscar
131
+ git submodule init
132
+ git submodule update
133
+ cd python && pip install -e .
134
+ ```
135
+
136
+ ## APIs
137
+ Here are basic APIs for Xoscar.
138
+ #### Define an actor
139
+ ```python
140
+ import xoscar as xo
141
+
142
+ # stateful actor, for stateless actor, inherit from xo.StatelessActor
143
+ class MyActor(xo.Actor):
144
+ def __init__(self, *args, **kwargs):
145
+ pass
146
+
147
+ async def __post_create__(self):
148
+ # called after created
149
+ pass
150
+
151
+ async def __pre_destroy__(self):
152
+ # called before destroy
153
+ pass
154
+
155
+ def method_a(self, arg_1, arg_2, **kw_1): # user-defined function
156
+ pass
157
+
158
+ async def method_b(self, arg_1, arg_2, **kw_1): # user-defined async function
159
+ pass
160
+ ```
161
+
162
+ #### Create an actor
163
+ ```python
164
+ import xoscar as xo
165
+
166
+ actor_ref = await xo.create_actor(
167
+ MyActor, 1, 2, a=1, b=2,
168
+ address='<ip>:<port>', uid='UniqueActorName')
169
+ ```
170
+
171
+ #### Get an actor reference
172
+ ```python
173
+ import xoscar as xo
174
+
175
+ actor_ref = await xo.actor_ref(address, actor_id)
176
+ ```
177
+
178
+ #### Invoke a method
179
+ ```python
180
+ # send
181
+ await actor_ref.method_a.send(1, 2, a=1, b=2)
182
+ # equivalent to actor_ref.method_a.send
183
+ await actor_ref.method_a(1, 2, a=1, b=2)
184
+ # tell, it sends a message asynchronously and does not wait for a response.
185
+ await actor_ref.method_a.tell(1, 2, a=1, b=2)
186
+ ```
187
+ ### Batch method
188
+ Xoscar provides a set of APIs to write batch methods. You can simply add a `@extensible` decorator to your actor method
189
+ and create a batch version. All calls wrapped in a batch will be sent together, reducing possible RPC cost.
190
+ #### Define a batch method
191
+ ```python
192
+ import xoscar as xo
193
+
194
+ class ExampleActor(xo.Actor):
195
+ @xo.extensible
196
+ async def batch_method(self, a, b=None):
197
+ pass
198
+ ```
199
+ Xoscar also supports creating a batch version of the method:
200
+ ```python
201
+ class ExampleActor(xo.Actor):
202
+ @xo.extensible
203
+ async def batch_method(self, a, b=None):
204
+ raise NotImplementedError # this will redirect all requests to the batch version
205
+
206
+ @batch_method.batch
207
+ async def batch_method(self, args_list, kwargs_list):
208
+ results = []
209
+ for args, kwargs in zip(args_list, kwargs_list):
210
+ a, b = self.batch_method.bind(*args, **kwargs)
211
+ # process the request
212
+ results.append(result)
213
+ return results # return a list of results
214
+ ```
215
+ In a batch method, users can define how to more efficiently process a batch of requests.
216
+
217
+ #### Invoke a batch method
218
+ Calling batch methods is easy. You can use `<method_name>.delay` to make a batched call and use `<method_name>.batch` to send them:
219
+ ```python
220
+ ref = await xo.actor_ref(uid='ExampleActor', address='127.0.0.1:13425')
221
+ results = await ref.batch_method.batch(
222
+ ref.batch_method.delay(10, b=20),
223
+ ref.batch_method.delay(20),
224
+ )
225
+ ```
226
+
227
+ ## License
228
+ [Apache 2](LICENSE)
@@ -0,0 +1,89 @@
1
+ xoscar-0.7.0.dist-info/RECORD,,
2
+ xoscar-0.7.0.dist-info/WHEEL,sha256=2PAvjbNyFhSeFp0tKNKUk7_Vsl-1d6Yt1_iCL0FhhQ8,138
3
+ xoscar-0.7.0.dist-info/top_level.txt,sha256=vYlqqY4Nys8Thm1hePIuUv8eQePdULVWMmt7lXtX_ZA,21
4
+ xoscar-0.7.0.dist-info/METADATA,sha256=bQa9_PhPzRMIaJuaM2pH2SkRFFjRsiuwh_flLoFsnMo,9189
5
+ xoscar/_utils.pyx,sha256=frgVQ5xGp92jBKc4PsPmjOlVsXlKeHWtTOAMfHmBaII,7380
6
+ xoscar/backend.py,sha256=is436OPkZfSpQXaoqTRVta5eoye_pp45RFgCstAk2hU,1850
7
+ xoscar/core.pxd,sha256=I_C2ka7XryyGnnAVXUVm8xfS1gtIrCs6X-9rswgOcUU,1317
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=QHHSREw6uWBBjQDCFqlNfTvBZgniJPGy42KSIsR8Fqw,787
13
+ xoscar/core.cpython-312-darwin.so,sha256=SrJfGNWRamP6DcGB2_eKqF3-RLORos6f5jM2-O9JueQ,419256
14
+ xoscar/__init__.py,sha256=0zX8kKaio3ZIrlzB79WybcravMJw1OxPWjDspTgJFyQ,1608
15
+ xoscar/context.cpython-312-darwin.so,sha256=9JldshU2g5sI886aNfNaB1eK5N6c5DEdsggxHQmdesU,200544
16
+ xoscar/api.py,sha256=3hztPoOxg8A_mlhWyWgVP7FMXG0PATA1TP4Rbaj7A-g,13327
17
+ xoscar/utils.py,sha256=MaKiW4Vphwhh8c0yoqN8G8hbJr1zXgpf49EdvmGc1ZU,16500
18
+ xoscar/debug.py,sha256=9Z8SgE2WaKYQcyDo-5-DxEJQ533v7kWjrvCd28pSx3E,5069
19
+ xoscar/libcpp.pxd,sha256=DJqBxLFOKL4iRr9Kale5UH3rbvPRD1x5bTSOPHFpz9I,1147
20
+ xoscar/context.pyx,sha256=8CdgPnWcE9eOp3N600WgDQ03MCi8P73eUOGcfV7Zksg,10942
21
+ xoscar/errors.py,sha256=wBlQOKsXf0Fc4skN39tDie0YZT-VIAuLNRgoDl2pZcA,1241
22
+ xoscar/_utils.cpython-312-darwin.so,sha256=zO_s6sL_9XfXvzO9Y-u5S3-NqrO8Hbfcs3wGO2wqykk,154728
23
+ xoscar/core.pyx,sha256=phN-yYV0A0QI8WFi2jCu0nc4CnShTepfDi0V7ZrLYPY,22092
24
+ xoscar/driver.py,sha256=498fowtJr6b3FE8FIOA_Tc1Vwx88nfZw7p0FxrML0h4,1372
25
+ xoscar/profiling.py,sha256=BC5OF0HzSaXv8V7w-y-B8r5gV5DgxHFoTEIF6jCMioQ,8015
26
+ xoscar/_utils.pxd,sha256=5KYAL3jfPdejsHnrGGT2s--ZUX5SXznQWpHVSno429k,1157
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/__init__.py,sha256=XsClIkO_3Jd8GDifYuAbZCmJLAo9ZqGvnjUn9iuogmU,774
36
+ xoscar/collective/core.py,sha256=NVR-7Iaq3aDPCN6fgXcq9Ew6uFEszRwxYqmUG9FLcws,23502
37
+ xoscar/collective/common.py,sha256=INAnISbfnRicbbbDHTqbSr9ITb89ZphH5BUkSpEdXXU,3561
38
+ xoscar/collective/utils.py,sha256=3S4qF4JEnAUD3RiWVBUj-ZptL83CBSwGYyVZyIasAsE,1178
39
+ xoscar/collective/xoscar_pygloo.cpython-312-darwin.so,sha256=zFCkNFsh71J_1Hhni-m83OSi1RprOECWVszuc-U7jIQ,1280728
40
+ xoscar/collective/process_group.py,sha256=zy7LcIFnEcmrcxuECI89v0bQlUbSqQMkVyBw468WBnk,22599
41
+ xoscar/collective/xoscar_pygloo.pyi,sha256=uM_jcyca3dpCZVQIdgj-KzMoXm-niL7mDu6HGS7kh1E,7377
42
+ xoscar/serialization/exception.py,sha256=Jy8Lsk0z-VJyEUaWeuZIwkmxqaoB-nLKMa1D15Cl4js,1634
43
+ xoscar/serialization/pyfury.py,sha256=sifOnVMYoS82PzZEkzkfxesmMHei23k5UAUUKUyoOYQ,1163
44
+ xoscar/serialization/core.pxd,sha256=k4RoJgX5E5LGs4jdCQ7vvcn26MabXbrWoWhkO49X6YI,985
45
+ xoscar/serialization/core.pyi,sha256=-pQARSj91rt3iU4ftWGFH6jYwsSKYCT_Ya7EJsaGEjg,1874
46
+ xoscar/serialization/core.cpython-312-darwin.so,sha256=vD3TUQaxYLE28uqG0JaK-Hm9S2GCXvNDMy3ihI_PBnc,391032
47
+ xoscar/serialization/__init__.py,sha256=v76XC2OQLp-Yk4_U3_IVguEylMeyRw1UrkU_DPDMh0U,856
48
+ xoscar/serialization/numpy.py,sha256=5Kem87CvpJmzUMp3QHk4WeHU30FoQWTJJP2SwIcaQG0,2919
49
+ xoscar/serialization/cuda.py,sha256=iFUEnN4SiquBIhyieyOrfw3TnKnW-tU_vYgqOxO_DrA,3758
50
+ xoscar/serialization/scipy.py,sha256=yOEi0NB8cqQ6e2UnCZ1w006RsB7T725tIL-DM_hNcsU,2482
51
+ xoscar/serialization/aio.py,sha256=5DySPgDxU43ec7_5Ct44-Oqt7YNSJBfuf8VdQgQlChA,4731
52
+ xoscar/serialization/core.pyx,sha256=bjR-zXGm9qersk7kYPzpjpMIxDl_Auur4BCubRfKmfA,29626
53
+ xoscar/serialization/mlx.py,sha256=N_cvbTUBKc14XWYsPIMz4kDstyRN1DNhb4BVRgnQm8Y,1872
54
+ xoscar/backends/config.py,sha256=4tZMiXAMMS8qQ4SX_LjONLtSQVfZTx3m-IK3EqbkYdk,5375
55
+ xoscar/backends/message.pyi,sha256=DByZdNdZIMJhn1x4aE32deqi3vhU1bxfrTgzlQsaLpQ,6543
56
+ xoscar/backends/allocate_strategy.py,sha256=tC1Nbq2tJohahUwd-zoRYHEDX65wyuX8tmeY45uWj_w,4845
57
+ xoscar/backends/__init__.py,sha256=VHEBQcUWM5bj027W8EUf9PiJUAP7JoMrRw3Tsvy5ySw,643
58
+ xoscar/backends/core.py,sha256=EH-fHlV9x3bnruEHaUtGYO7osKLfLJ4AQHtuzA_mr2g,10857
59
+ xoscar/backends/context.py,sha256=XfDPG2eDhAhE6hWBEkEsHTnyyOYN9R3houlMjAL7BFw,16329
60
+ xoscar/backends/router.py,sha256=MVl5naz-FYf-Wla7XRn3kRxOpWV0SjKDsKNluifVA8M,10532
61
+ xoscar/backends/message.cpython-312-darwin.so,sha256=3A2juqwDdKv-w-BoLZqD-6b-mk9u5hUv9lXli97K09k,375536
62
+ xoscar/backends/message.pyx,sha256=krGVtZ1YDaZX8yWhaNHwZiudQooLvcGlw6x3Sq7jxjE,19685
63
+ xoscar/backends/pool.py,sha256=nrh8qobaukkjUOOOTR9t90i-wbXlgma3TNRjvwkwmcg,60528
64
+ xoscar/backends/indigen/backend.py,sha256=znl_fZzWGEtLH8hZ9j9Kkf0fva25jEem2_KO7I1RVvc,1612
65
+ xoscar/backends/indigen/shared_memory.py,sha256=wqbckbgnd0qNm5KzlP_hklF3F_n8fKnCehSox5uMwNs,19082
66
+ xoscar/backends/indigen/__init__.py,sha256=tKHP5ClzedBRBpZsLRVErR3EUNbbDm4CY4u0rCFJr44,685
67
+ xoscar/backends/indigen/fate_sharing.py,sha256=3QUHwq5Cjk9oCKFUISvkqHaoxWZIaXcq8JNOetdBl-A,8655
68
+ xoscar/backends/indigen/driver.py,sha256=VGzkacYKykegW5qhCuhx01gdgBZEKJjNIyfNCnA6Nm8,952
69
+ xoscar/backends/indigen/pool.py,sha256=7-a_T2D_gG9MhhfkaNj2QGy7FjK06n2xwyD9Tw-rfqc,15732
70
+ xoscar/backends/indigen/__main__.py,sha256=-pfio-Y4Ogbk6lBFksH-gRatp-N6sZ7wuNc-i2YsLJc,510
71
+ xoscar/backends/test/backend.py,sha256=nv9WFhH5Bbq4Q1HB9yfpciZBaeHT4IQAtzugBWESrUY,1263
72
+ xoscar/backends/test/__init__.py,sha256=j2ZfD6prD9WjUxRUDC7Eq5Z7N7TkL6fFr59oNyc_vY4,682
73
+ xoscar/backends/test/pool.py,sha256=1MrdNnQZkeBJMYrn3NGUe1VpvsUM_HlTm3l7SSynzpo,6882
74
+ xoscar/backends/communication/ucx.py,sha256=_Dp9Ld2MWIa1txSGMnmfYwJDT0esxS-GOd2FQ4BdHiM,19960
75
+ xoscar/backends/communication/__init__.py,sha256=oFIg83Ga93-AhrG52TE85Z2LgpGZu1RCgQu1RWi62zQ,1063
76
+ xoscar/backends/communication/core.py,sha256=sJeE3foRIqVPXldzYpFKHDSsabfAIFBU4JuXY4OyklY,2130
77
+ xoscar/backends/communication/utils.py,sha256=AmovE-hmWLXNCPwHafYuaRjOk8m42BUyT3XBqfXQRVI,3664
78
+ xoscar/backends/communication/errors.py,sha256=V3CdBe2xX9Rwv32f2dH2Msc84yaUhlyerZ42-739o1Q,723
79
+ xoscar/backends/communication/socket.py,sha256=6Pf9RJWHuvobjZ1eAU6bUuGY7PzYga3Vyc4PAKF-k2M,14428
80
+ xoscar/backends/communication/dummy.py,sha256=6kLkxjNk4xTQ-IlNZD6cftNCx5UsGOur2jk7ikrNUCg,8157
81
+ xoscar/backends/communication/base.py,sha256=0P4Tr35GSWpRp394e9jVWUUoKKa-gIk177eYPw1BnSU,7421
82
+ xoscar/aio/__init__.py,sha256=kViDKR_kJe59VQViHITKEfBcIgN4ZJblUyd8zl0E3ZI,675
83
+ xoscar/aio/file.py,sha256=PBtkLp-Q7XtYl-zk00s18TtgIrkNr60J3Itf66ctO1o,1486
84
+ xoscar/aio/lru.py,sha256=rpXCqSLtPV5xnWtd6uDwQQFGgIPEgvmWEQDkPNUx9cM,6311
85
+ xoscar/aio/parallelism.py,sha256=VSsjk8wP-Bw7tLeUsTyLVNgp91thjxEfE3pCrw_vF5Q,1293
86
+ xoscar/aio/base.py,sha256=9j0f1piwfE5R5GIvV212vSD03ixdaeSzSSsO2kxJZVE,2249
87
+ xoscar/virtualenv/__init__.py,sha256=65t9_X1DvbanNjFy366SiiWZrRTpa9SXWMXPmqayE-4,1117
88
+ xoscar/virtualenv/core.py,sha256=Ld5bSkKp8ywekGuUq61uyms5I8Hm1WdbkbLxmCw-ML0,1342
89
+ xoscar/virtualenv/uv.py,sha256=rVurn1PKlvR22Bm_F1uouIb1eMkB_wr-_29dBvMl7bo,3182
@@ -0,0 +1,6 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (80.4.0)
3
+ Root-Is-Purelib: false
4
+ Tag: cp312-cp312-macosx_10_13_x86_64
5
+ Generator: delocate 0.13.0
6
+
@@ -0,0 +1,2 @@
1
+ xoscar
2
+ xoscar_pygloo