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