xoscar 0.7.2__tar.gz → 0.7.4__tar.gz

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 (91) hide show
  1. {xoscar-0.7.2 → xoscar-0.7.4}/PKG-INFO +1 -1
  2. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/backends/indigen/pool.py +5 -3
  3. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/virtualenv/uv.py +25 -2
  4. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar.egg-info/PKG-INFO +1 -1
  5. {xoscar-0.7.2 → xoscar-0.7.4}/MANIFEST.in +0 -0
  6. {xoscar-0.7.2 → xoscar-0.7.4}/pyproject.toml +0 -0
  7. {xoscar-0.7.2 → xoscar-0.7.4}/setup.cfg +0 -0
  8. {xoscar-0.7.2 → xoscar-0.7.4}/setup.py +0 -0
  9. {xoscar-0.7.2 → xoscar-0.7.4}/versioneer.py +0 -0
  10. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/__init__.py +0 -0
  11. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/_utils.pxd +0 -0
  12. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/_utils.pyx +0 -0
  13. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/_version.py +0 -0
  14. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/aio/__init__.py +0 -0
  15. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/aio/base.py +0 -0
  16. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/aio/file.py +0 -0
  17. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/aio/lru.py +0 -0
  18. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/aio/parallelism.py +0 -0
  19. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/api.py +0 -0
  20. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/backend.py +0 -0
  21. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/backends/__init__.py +0 -0
  22. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/backends/allocate_strategy.py +0 -0
  23. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/backends/communication/__init__.py +0 -0
  24. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/backends/communication/base.py +0 -0
  25. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/backends/communication/core.py +0 -0
  26. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/backends/communication/dummy.py +0 -0
  27. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/backends/communication/errors.py +0 -0
  28. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/backends/communication/socket.py +0 -0
  29. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/backends/communication/ucx.py +0 -0
  30. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/backends/communication/utils.py +0 -0
  31. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/backends/config.py +0 -0
  32. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/backends/context.py +0 -0
  33. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/backends/core.py +0 -0
  34. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/backends/indigen/__init__.py +0 -0
  35. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/backends/indigen/__main__.py +0 -0
  36. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/backends/indigen/backend.py +0 -0
  37. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/backends/indigen/driver.py +0 -0
  38. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/backends/indigen/fate_sharing.py +0 -0
  39. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/backends/indigen/shared_memory.py +0 -0
  40. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/backends/message.pyi +0 -0
  41. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/backends/message.pyx +0 -0
  42. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/backends/pool.py +0 -0
  43. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/backends/router.py +0 -0
  44. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/backends/test/__init__.py +0 -0
  45. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/backends/test/backend.py +0 -0
  46. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/backends/test/pool.py +0 -0
  47. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/batch.py +0 -0
  48. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/collective/__init__.py +0 -0
  49. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/collective/common.py +0 -0
  50. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/collective/core.py +0 -0
  51. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/collective/process_group.py +0 -0
  52. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/collective/utils.py +0 -0
  53. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/collective/xoscar_pygloo.pyi +0 -0
  54. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/constants.py +0 -0
  55. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/context.pxd +0 -0
  56. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/context.pyx +0 -0
  57. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/core.pxd +0 -0
  58. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/core.pyx +0 -0
  59. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/debug.py +0 -0
  60. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/driver.py +0 -0
  61. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/errors.py +0 -0
  62. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/libcpp.pxd +0 -0
  63. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/metrics/__init__.py +0 -0
  64. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/metrics/api.py +0 -0
  65. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/metrics/backends/__init__.py +0 -0
  66. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/metrics/backends/console/__init__.py +0 -0
  67. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/metrics/backends/console/console_metric.py +0 -0
  68. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/metrics/backends/metric.py +0 -0
  69. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/metrics/backends/prometheus/__init__.py +0 -0
  70. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/metrics/backends/prometheus/prometheus_metric.py +0 -0
  71. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/nvutils.py +0 -0
  72. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/profiling.py +0 -0
  73. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/serialization/__init__.py +0 -0
  74. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/serialization/aio.py +0 -0
  75. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/serialization/core.pxd +0 -0
  76. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/serialization/core.pyi +0 -0
  77. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/serialization/core.pyx +0 -0
  78. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/serialization/cuda.py +0 -0
  79. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/serialization/exception.py +0 -0
  80. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/serialization/mlx.py +0 -0
  81. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/serialization/numpy.py +0 -0
  82. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/serialization/pyfury.py +0 -0
  83. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/serialization/scipy.py +0 -0
  84. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/utils.py +0 -0
  85. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/virtualenv/__init__.py +0 -0
  86. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar/virtualenv/core.py +0 -0
  87. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar.egg-info/SOURCES.txt +0 -0
  88. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar.egg-info/dependency_links.txt +0 -0
  89. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar.egg-info/not-zip-safe +0 -0
  90. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar.egg-info/requires.txt +0 -0
  91. {xoscar-0.7.2 → xoscar-0.7.4}/xoscar.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: xoscar
3
- Version: 0.7.2
3
+ Version: 0.7.4
4
4
  Summary: Python actor framework for heterogeneous computing.
5
5
  Home-page: http://github.com/xorbitsai/xoscar
6
6
  Author: Qin Xuye
@@ -278,14 +278,16 @@ class MainActorPool(MainActorPoolBase):
278
278
  "main_pool_pid": os.getpid(),
279
279
  },
280
280
  )
281
- process = await create_subprocess_exec(
281
+ cmd = [
282
282
  start_python,
283
283
  "-m",
284
284
  "xoscar.backends.indigen",
285
285
  "start_sub_pool",
286
286
  "-sn",
287
287
  shm.name,
288
- )
288
+ ]
289
+ logger.info("Creating sub pool via command: %s", cmd)
290
+ process = await create_subprocess_exec(*cmd)
289
291
 
290
292
  def _get_external_addresses():
291
293
  try:
@@ -316,7 +318,7 @@ class MainActorPool(MainActorPoolBase):
316
318
  shm.close()
317
319
  shm.unlink()
318
320
  if external_addresses is None:
319
- raise OSError("Start sub pool failed.")
321
+ raise OSError(f"Start sub pool failed, returncode: {process.returncode}")
320
322
  return process, external_addresses
321
323
 
322
324
  async def append_sub_pool(
@@ -14,14 +14,24 @@
14
14
 
15
15
  from __future__ import annotations
16
16
 
17
+ import logging
18
+ import os
17
19
  import shutil
18
20
  import subprocess
21
+ import sys
19
22
  import sysconfig
20
23
  from pathlib import Path
21
24
  from typing import Optional
22
25
 
23
26
  from .core import VirtualEnvManager
24
27
 
28
+ UV_PATH = os.getenv("XOSCAR_UV_PATH")
29
+ logger = logging.getLogger(__name__)
30
+
31
+
32
+ def _is_in_pyinstaller():
33
+ return hasattr(sys, "_MEIPASS")
34
+
25
35
 
26
36
  class UVVirtualEnvManager(VirtualEnvManager):
27
37
  def __init__(self, env_path: Path):
@@ -30,12 +40,23 @@ class UVVirtualEnvManager(VirtualEnvManager):
30
40
 
31
41
  @classmethod
32
42
  def is_available(cls):
43
+ if UV_PATH is not None:
44
+ # user specified uv, just treat it as existed
45
+ return True
33
46
  return shutil.which("uv") is not None
34
47
 
35
48
  def create_env(self, python_path: Path | None = None) -> None:
36
- cmd = ["uv", "venv", str(self.env_path), "--system-site-packages"]
49
+ uv_path = UV_PATH or "uv"
50
+ cmd = [uv_path, "venv", str(self.env_path), "--system-site-packages"]
37
51
  if python_path:
38
52
  cmd += ["--python", str(python_path)]
53
+ elif _is_in_pyinstaller():
54
+ # in pyinstaller, uv would find the system python
55
+ # in this case we'd better specify the same python version
56
+ python_version = f"{sys.version_info.major}.{sys.version_info.minor}.{sys.version_info.micro}"
57
+ cmd += ["--python", python_version]
58
+
59
+ logger.info("Creating virtualenv via command: %s", cmd)
39
60
  subprocess.run(cmd, check=True)
40
61
 
41
62
  def install_packages(self, packages: list[str], **kwargs):
@@ -50,7 +71,8 @@ class UVVirtualEnvManager(VirtualEnvManager):
50
71
  # maybe replace #system_torch# to the real version
51
72
  packages = self.process_packages(packages)
52
73
 
53
- cmd = ["uv", "pip", "install", "-p", str(self.env_path)] + packages
74
+ uv_path = UV_PATH or "uv"
75
+ cmd = [uv_path, "pip", "install", "-p", str(self.env_path)] + packages
54
76
 
55
77
  # Handle known pip-related kwargs
56
78
  if "index_url" in kwargs and kwargs["index_url"]:
@@ -69,6 +91,7 @@ class UVVirtualEnvManager(VirtualEnvManager):
69
91
  else:
70
92
  cmd += [option, param_value]
71
93
 
94
+ logger.info("Installing packages via command: %s", cmd)
72
95
  self._install_process = process = subprocess.Popen(cmd)
73
96
  returncode = process.wait()
74
97
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: xoscar
3
- Version: 0.7.2
3
+ Version: 0.7.4
4
4
  Summary: Python actor framework for heterogeneous computing.
5
5
  Home-page: http://github.com/xorbitsai/xoscar
6
6
  Author: Qin Xuye
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes