xoscar 0.6.2__cp312-cp312-macosx_11_0_arm64.whl → 0.7.0__cp312-cp312-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.

@@ -16,12 +16,11 @@
16
16
  from __future__ import annotations
17
17
 
18
18
  import asyncio
19
- import multiprocessing
20
19
  from typing import Any, Optional
21
20
 
22
21
  from ..communication import DummyServer, gen_local_address
23
22
  from ..config import ActorPoolConfig
24
- from ..indigen.pool import MainActorPool, SubActorPool, SubpoolStatus
23
+ from ..indigen.pool import MainActorPool, SubActorPool
25
24
  from ..message import ControlMessage, ControlMessageType, new_message_id
26
25
  from ..pool import ActorPoolType
27
26
 
@@ -50,33 +49,25 @@ class TestMainActorPool(MainActorPool):
50
49
  cls,
51
50
  actor_pool_config: ActorPoolConfig,
52
51
  process_index: int,
53
- start_method: str | None = None,
52
+ start_python: str | None = None,
54
53
  ):
55
- status_queue: multiprocessing.Queue = multiprocessing.Queue()
56
- return (
57
- asyncio.create_task(
58
- cls._create_sub_pool(actor_pool_config, process_index, status_queue, 0)
59
- ),
60
- status_queue,
61
- )
54
+ return await cls._create_sub_pool_test(actor_pool_config, process_index, 0)
62
55
 
63
56
  @classmethod
64
57
  async def wait_sub_pools_ready(cls, create_pool_tasks: list[asyncio.Task]):
65
58
  addresses = []
66
59
  tasks = []
67
60
  for t in create_pool_tasks:
68
- pool_task, queue = await t
61
+ pool_task, external_addresses = await t
69
62
  tasks.append(pool_task)
70
- status = await asyncio.to_thread(queue.get)
71
- addresses.append(status.external_addresses)
63
+ addresses.append(external_addresses)
72
64
  return tasks, addresses
73
65
 
74
66
  @classmethod
75
- async def _create_sub_pool(
67
+ async def _create_sub_pool_test(
76
68
  cls,
77
69
  actor_config: ActorPoolConfig,
78
70
  process_index: int,
79
- status_queue: multiprocessing.Queue,
80
71
  main_pool_pid: int,
81
72
  ):
82
73
  pool: TestSubActorPool = await TestSubActorPool.create(
@@ -87,11 +78,9 @@ class TestMainActorPool(MainActorPool):
87
78
  }
88
79
  )
89
80
  await pool.start()
90
- status_queue.put(
91
- SubpoolStatus(status=0, external_addresses=[pool.external_address])
92
- )
93
81
  actor_config.reset_pool_external_address(process_index, [pool.external_address])
94
- await pool.join()
82
+ cur_pool_config = actor_config.get_pool_config(process_index)
83
+ return None, cur_pool_config["external_address"]
95
84
 
96
85
  def _sync_pool_config(self, actor_pool_config: ActorPoolConfig):
97
86
  # test pool does not create routers, thus can skip this step
@@ -107,7 +96,7 @@ class TestMainActorPool(MainActorPool):
107
96
  suspend_sigint: bool | None = None,
108
97
  use_uvloop: bool | None = None,
109
98
  logging_conf: dict | None = None,
110
- start_method: str | None = None,
99
+ start_python: str | None = None,
111
100
  kwargs: dict | None = None,
112
101
  ):
113
102
  external_address = (
@@ -162,12 +151,12 @@ class TestMainActorPool(MainActorPool):
162
151
  return addresses[0][0]
163
152
 
164
153
  async def kill_sub_pool(
165
- self, process: multiprocessing.Process, force: bool = False
154
+ self, process: asyncio.subprocess.Process, force: bool = False
166
155
  ):
167
- process.cancel() # type: ignore
156
+ pass
168
157
 
169
- async def is_sub_pool_alive(self, process: multiprocessing.Process):
170
- return not process.cancelled() # type: ignore
158
+ async def is_sub_pool_alive(self, process: asyncio.subprocess.Process):
159
+ return True
171
160
 
172
161
 
173
162
  class TestSubActorPool(SubActorPool):
Binary file
Binary file
xoscar/utils.py CHANGED
@@ -89,7 +89,7 @@ def wrap_exception(
89
89
  ) -> BaseException:
90
90
  """Generate an exception wraps the cause exception."""
91
91
 
92
- def __init__(self):
92
+ def __init__(self, *args, **kwargs):
93
93
  pass
94
94
 
95
95
  def __getattr__(self, item):
xoscar/virtualenv/core.py CHANGED
@@ -39,6 +39,10 @@ class VirtualEnvManager(ABC):
39
39
  def cancel_install(self):
40
40
  pass
41
41
 
42
+ @abstractmethod
43
+ def get_python_path(self) -> str | None:
44
+ pass
45
+
42
46
  @abstractmethod
43
47
  def get_lib_path(self) -> str:
44
48
  pass
xoscar/virtualenv/uv.py CHANGED
@@ -33,7 +33,7 @@ class UVVirtualEnvManager(VirtualEnvManager):
33
33
  return shutil.which("uv") is not None
34
34
 
35
35
  def create_env(self, python_path: Path | None = None) -> None:
36
- cmd = ["uv", "venv", str(self.env_path)]
36
+ cmd = ["uv", "venv", str(self.env_path), "--system-site-packages"]
37
37
  if python_path:
38
38
  cmd += ["--python", str(python_path)]
39
39
  subprocess.run(cmd, check=True)
@@ -51,12 +51,19 @@ class UVVirtualEnvManager(VirtualEnvManager):
51
51
  # Handle known pip-related kwargs
52
52
  if "index_url" in kwargs and kwargs["index_url"]:
53
53
  cmd += ["-i", kwargs["index_url"]]
54
- if "extra_index_url" in kwargs and kwargs["extra_index_url"]:
55
- cmd += ["--extra-index-url", kwargs["extra_index_url"]]
56
- if "find_links" in kwargs and kwargs["find_links"]:
57
- cmd += ["-f", kwargs["find_links"]]
58
- if "trusted_host" in kwargs and kwargs["trusted_host"]:
59
- cmd += ["--trusted-host", kwargs["trusted_host"]]
54
+ param_and_option = [
55
+ ("extra_index_url", "--extra-index-url"),
56
+ ("find_links", "-f"),
57
+ ("trusted_host", "--trusted-host"),
58
+ ]
59
+ for param, option in param_and_option:
60
+ if param in kwargs and kwargs[param]:
61
+ param_value = kwargs[param]
62
+ if isinstance(param_value, list):
63
+ for it in param_value:
64
+ cmd += [option, it]
65
+ else:
66
+ cmd += [option, param_value]
60
67
 
61
68
  self._install_process = process = subprocess.Popen(cmd)
62
69
  returncode = process.wait()
@@ -71,6 +78,11 @@ class UVVirtualEnvManager(VirtualEnvManager):
71
78
  self._install_process.terminate()
72
79
  self._install_process.wait()
73
80
 
81
+ def get_python_path(self) -> str | None:
82
+ if self.env_path.exists():
83
+ return str(self.env_path.joinpath("bin/python"))
84
+ return None
85
+
74
86
  def get_lib_path(self) -> str:
75
87
  return sysconfig.get_path("purelib", vars={"base": str(self.env_path)})
76
88
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: xoscar
3
- Version: 0.6.2
3
+ Version: 0.7.0
4
4
  Summary: Python actor framework for heterogeneous computing.
5
5
  Home-page: http://github.com/xorbitsai/xoscar
6
6
  Author: Qin Xuye
@@ -27,6 +27,7 @@ Requires-Dist: psutil>=5.9.0
27
27
  Requires-Dist: tblib>=1.7.0
28
28
  Requires-Dist: uvloop>=0.14.0; sys_platform != "win32"
29
29
  Requires-Dist: packaging
30
+ Requires-Dist: click
30
31
  Provides-Extra: dev
31
32
  Requires-Dist: cython>=0.29; extra == "dev"
32
33
  Requires-Dist: pytest>=3.5.0; extra == "dev"
@@ -41,6 +42,7 @@ Requires-Dist: sphinx-intl>=0.9.9; extra == "dev"
41
42
  Requires-Dist: flake8>=3.8.0; extra == "dev"
42
43
  Requires-Dist: black; extra == "dev"
43
44
  Requires-Dist: uv; extra == "dev"
45
+ Requires-Dist: click; extra == "dev"
44
46
  Provides-Extra: doc
45
47
  Requires-Dist: ipython>=6.5.0; extra == "doc"
46
48
  Requires-Dist: sphinx; extra == "doc"
@@ -1,8 +1,8 @@
1
- xoscar-0.6.2.dist-info/RECORD,,
2
- xoscar-0.6.2.dist-info/WHEEL,sha256=s3SCZeN-G9VuOPYdbIQ149WhzOgcaPLKGJFMWgov7lM,109
3
- xoscar-0.6.2.dist-info/top_level.txt,sha256=vYlqqY4Nys8Thm1hePIuUv8eQePdULVWMmt7lXtX_ZA,21
4
- xoscar-0.6.2.dist-info/METADATA,sha256=wovBXhCiwv2yIjh04jbMYRBrA9ZQpBtml6gVCW7YSTs,9131
5
- xoscar/_utils.pyx,sha256=6iqO4eTwEI-n9i39n_TKz7MWqbytMRnVNubdJ5egL6o,7279
1
+ xoscar-0.7.0.dist-info/RECORD,,
2
+ xoscar-0.7.0.dist-info/WHEEL,sha256=mP9bWt4ASeNWfyg7GBBbGbsOVFgblaN5WklJcvrSjIE,136
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
6
  xoscar/backend.py,sha256=is436OPkZfSpQXaoqTRVta5eoye_pp45RFgCstAk2hU,1850
7
7
  xoscar/core.pxd,sha256=I_C2ka7XryyGnnAVXUVm8xfS1gtIrCs6X-9rswgOcUU,1317
8
8
  xoscar/_version.py,sha256=ClSPrUjgGRGHIkVMQV9XQnkQ-n0akJMnq_rh819nqFE,23719
@@ -10,16 +10,16 @@ xoscar/context.pxd,sha256=qKa0OyDPZtVymftSh447m-RzFZgmz8rGqQBa7qlauvc,725
10
10
  xoscar/batch.py,sha256=DpArS0L3WYJ_HVPG-6hSYEwoAFY1mY2-mlC4Jp5M_Dw,7872
11
11
  xoscar/nvutils.py,sha256=qmW4mKLU0WB2yCs198ccQOgLL02zB7Fsa-AotO3NOmg,20412
12
12
  xoscar/constants.py,sha256=QHHSREw6uWBBjQDCFqlNfTvBZgniJPGy42KSIsR8Fqw,787
13
- xoscar/core.cpython-312-darwin.so,sha256=8N74L3IQXMBbLIyXynQTHuZmI_OdinZnk9cyhPXAQug,441432
13
+ xoscar/core.cpython-312-darwin.so,sha256=MDJECUHeZ4ZFvCZgqrw-rXiAs6atTCXNHlX5AG118pE,412760
14
14
  xoscar/__init__.py,sha256=0zX8kKaio3ZIrlzB79WybcravMJw1OxPWjDspTgJFyQ,1608
15
- xoscar/context.cpython-312-darwin.so,sha256=0uT3Hh6uOxHzLt2AdQ5inuNk8nxbroDEsc4T8PwoZdU,210096
15
+ xoscar/context.cpython-312-darwin.so,sha256=wtU-EtvRY2cRP5wXBmTflUkUPoLE2f4Pwx1Z1H09DcI,213632
16
16
  xoscar/api.py,sha256=3hztPoOxg8A_mlhWyWgVP7FMXG0PATA1TP4Rbaj7A-g,13327
17
- xoscar/utils.py,sha256=jUw6OICZUPBbmS1b3GE4vLctJf6fCKXrYtLtBuK-Oqc,16483
17
+ xoscar/utils.py,sha256=MaKiW4Vphwhh8c0yoqN8G8hbJr1zXgpf49EdvmGc1ZU,16500
18
18
  xoscar/debug.py,sha256=9Z8SgE2WaKYQcyDo-5-DxEJQ533v7kWjrvCd28pSx3E,5069
19
19
  xoscar/libcpp.pxd,sha256=DJqBxLFOKL4iRr9Kale5UH3rbvPRD1x5bTSOPHFpz9I,1147
20
20
  xoscar/context.pyx,sha256=8CdgPnWcE9eOp3N600WgDQ03MCi8P73eUOGcfV7Zksg,10942
21
21
  xoscar/errors.py,sha256=wBlQOKsXf0Fc4skN39tDie0YZT-VIAuLNRgoDl2pZcA,1241
22
- xoscar/_utils.cpython-312-darwin.so,sha256=JOe8mI5185T479F2ZvhaxcP3zUzPRSUtVADrjzO4kTY,167168
22
+ xoscar/_utils.cpython-312-darwin.so,sha256=Wv2WqJUY3r-VOHuNFK9wSdWte4xYmatg1PfSx6vE4Dg,169968
23
23
  xoscar/core.pyx,sha256=phN-yYV0A0QI8WFi2jCu0nc4CnShTepfDi0V7ZrLYPY,22092
24
24
  xoscar/driver.py,sha256=498fowtJr6b3FE8FIOA_Tc1Vwx88nfZw7p0FxrML0h4,1372
25
25
  xoscar/profiling.py,sha256=BC5OF0HzSaXv8V7w-y-B8r5gV5DgxHFoTEIF6jCMioQ,8015
@@ -36,14 +36,14 @@ xoscar/collective/__init__.py,sha256=XsClIkO_3Jd8GDifYuAbZCmJLAo9ZqGvnjUn9iuogmU
36
36
  xoscar/collective/core.py,sha256=NVR-7Iaq3aDPCN6fgXcq9Ew6uFEszRwxYqmUG9FLcws,23502
37
37
  xoscar/collective/common.py,sha256=INAnISbfnRicbbbDHTqbSr9ITb89ZphH5BUkSpEdXXU,3561
38
38
  xoscar/collective/utils.py,sha256=3S4qF4JEnAUD3RiWVBUj-ZptL83CBSwGYyVZyIasAsE,1178
39
- xoscar/collective/xoscar_pygloo.cpython-312-darwin.so,sha256=d-oqsqX2RNyyqeoZXzIEaiFg1acSOfYKAj7cDkfSsE8,1144480
39
+ xoscar/collective/xoscar_pygloo.cpython-312-darwin.so,sha256=oYhGhupZc8TQeRz_DPNxnNIo_QLuZIN6oc6MmgG-Nbg,1144400
40
40
  xoscar/collective/process_group.py,sha256=zy7LcIFnEcmrcxuECI89v0bQlUbSqQMkVyBw468WBnk,22599
41
41
  xoscar/collective/xoscar_pygloo.pyi,sha256=uM_jcyca3dpCZVQIdgj-KzMoXm-niL7mDu6HGS7kh1E,7377
42
42
  xoscar/serialization/exception.py,sha256=Jy8Lsk0z-VJyEUaWeuZIwkmxqaoB-nLKMa1D15Cl4js,1634
43
43
  xoscar/serialization/pyfury.py,sha256=sifOnVMYoS82PzZEkzkfxesmMHei23k5UAUUKUyoOYQ,1163
44
44
  xoscar/serialization/core.pxd,sha256=k4RoJgX5E5LGs4jdCQ7vvcn26MabXbrWoWhkO49X6YI,985
45
45
  xoscar/serialization/core.pyi,sha256=-pQARSj91rt3iU4ftWGFH6jYwsSKYCT_Ya7EJsaGEjg,1874
46
- xoscar/serialization/core.cpython-312-darwin.so,sha256=PDuDgUJYGXTZAg1EkXmZHzJYPhXeckQCbxfRVdCoctA,378616
46
+ xoscar/serialization/core.cpython-312-darwin.so,sha256=er1e7g9ViK_zDyZoTB2dZlI4SNK1bERYEkAilXM-l_Q,365944
47
47
  xoscar/serialization/__init__.py,sha256=v76XC2OQLp-Yk4_U3_IVguEylMeyRw1UrkU_DPDMh0U,856
48
48
  xoscar/serialization/numpy.py,sha256=5Kem87CvpJmzUMp3QHk4WeHU30FoQWTJJP2SwIcaQG0,2919
49
49
  xoscar/serialization/cuda.py,sha256=iFUEnN4SiquBIhyieyOrfw3TnKnW-tU_vYgqOxO_DrA,3758
@@ -58,16 +58,19 @@ xoscar/backends/__init__.py,sha256=VHEBQcUWM5bj027W8EUf9PiJUAP7JoMrRw3Tsvy5ySw,6
58
58
  xoscar/backends/core.py,sha256=EH-fHlV9x3bnruEHaUtGYO7osKLfLJ4AQHtuzA_mr2g,10857
59
59
  xoscar/backends/context.py,sha256=XfDPG2eDhAhE6hWBEkEsHTnyyOYN9R3houlMjAL7BFw,16329
60
60
  xoscar/backends/router.py,sha256=MVl5naz-FYf-Wla7XRn3kRxOpWV0SjKDsKNluifVA8M,10532
61
- xoscar/backends/message.cpython-312-darwin.so,sha256=Fuwl6iCpzldAR33hXOgwRCks786j5RfnmNi6cOFcshI,381056
61
+ xoscar/backends/message.cpython-312-darwin.so,sha256=w7UVQwvr6qRXsiHl7pPjvC1oBb021m5EDEhwmwahJEg,351584
62
62
  xoscar/backends/message.pyx,sha256=krGVtZ1YDaZX8yWhaNHwZiudQooLvcGlw6x3Sq7jxjE,19685
63
- xoscar/backends/pool.py,sha256=OezOhvvXAV3TpODhLHmJVgqCfowb3aA_fWZKPodm8bE,61003
63
+ xoscar/backends/pool.py,sha256=nrh8qobaukkjUOOOTR9t90i-wbXlgma3TNRjvwkwmcg,60528
64
64
  xoscar/backends/indigen/backend.py,sha256=znl_fZzWGEtLH8hZ9j9Kkf0fva25jEem2_KO7I1RVvc,1612
65
+ xoscar/backends/indigen/shared_memory.py,sha256=wqbckbgnd0qNm5KzlP_hklF3F_n8fKnCehSox5uMwNs,19082
65
66
  xoscar/backends/indigen/__init__.py,sha256=tKHP5ClzedBRBpZsLRVErR3EUNbbDm4CY4u0rCFJr44,685
67
+ xoscar/backends/indigen/fate_sharing.py,sha256=3QUHwq5Cjk9oCKFUISvkqHaoxWZIaXcq8JNOetdBl-A,8655
66
68
  xoscar/backends/indigen/driver.py,sha256=VGzkacYKykegW5qhCuhx01gdgBZEKJjNIyfNCnA6Nm8,952
67
- xoscar/backends/indigen/pool.py,sha256=eeT29MDwou7UQrfY9B9Z7iY6TI7DlWvrZxg0euz96eA,18287
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
68
71
  xoscar/backends/test/backend.py,sha256=nv9WFhH5Bbq4Q1HB9yfpciZBaeHT4IQAtzugBWESrUY,1263
69
72
  xoscar/backends/test/__init__.py,sha256=j2ZfD6prD9WjUxRUDC7Eq5Z7N7TkL6fFr59oNyc_vY4,682
70
- xoscar/backends/test/pool.py,sha256=TW4X6J-92Pti66103poQBNDBznX6CBD3RLOc_zixjTo,7257
73
+ xoscar/backends/test/pool.py,sha256=1MrdNnQZkeBJMYrn3NGUe1VpvsUM_HlTm3l7SSynzpo,6882
71
74
  xoscar/backends/communication/ucx.py,sha256=_Dp9Ld2MWIa1txSGMnmfYwJDT0esxS-GOd2FQ4BdHiM,19960
72
75
  xoscar/backends/communication/__init__.py,sha256=oFIg83Ga93-AhrG52TE85Z2LgpGZu1RCgQu1RWi62zQ,1063
73
76
  xoscar/backends/communication/core.py,sha256=sJeE3foRIqVPXldzYpFKHDSsabfAIFBU4JuXY4OyklY,2130
@@ -82,5 +85,5 @@ xoscar/aio/lru.py,sha256=rpXCqSLtPV5xnWtd6uDwQQFGgIPEgvmWEQDkPNUx9cM,6311
82
85
  xoscar/aio/parallelism.py,sha256=VSsjk8wP-Bw7tLeUsTyLVNgp91thjxEfE3pCrw_vF5Q,1293
83
86
  xoscar/aio/base.py,sha256=9j0f1piwfE5R5GIvV212vSD03ixdaeSzSSsO2kxJZVE,2249
84
87
  xoscar/virtualenv/__init__.py,sha256=65t9_X1DvbanNjFy366SiiWZrRTpa9SXWMXPmqayE-4,1117
85
- xoscar/virtualenv/core.py,sha256=YMN6yHoNeEc8ecbJMbZkKeWKUABK1mUZ_OYOjcbRqWs,1263
86
- xoscar/virtualenv/uv.py,sha256=l9w5JxETbW2wN8vfZR7k7aKTz4cWV4MvH06MoogBOVc,2842
88
+ xoscar/virtualenv/core.py,sha256=Ld5bSkKp8ywekGuUq61uyms5I8Hm1WdbkbLxmCw-ML0,1342
89
+ xoscar/virtualenv/uv.py,sha256=rVurn1PKlvR22Bm_F1uouIb1eMkB_wr-_29dBvMl7bo,3182
@@ -1,5 +1,6 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (79.0.0)
2
+ Generator: setuptools (80.4.0)
3
3
  Root-Is-Purelib: false
4
4
  Tag: cp312-cp312-macosx_11_0_arm64
5
+ Generator: delocate 0.13.0
5
6