xoscar 0.7.8__tar.gz → 0.7.10__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 (92) hide show
  1. {xoscar-0.7.8 → xoscar-0.7.10}/PKG-INFO +1 -1
  2. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/backends/indigen/pool.py +15 -8
  3. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/serialization/mlx.py +4 -2
  4. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/virtualenv/core.py +2 -0
  5. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/virtualenv/uv.py +2 -0
  6. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar.egg-info/PKG-INFO +1 -1
  7. {xoscar-0.7.8 → xoscar-0.7.10}/MANIFEST.in +0 -0
  8. {xoscar-0.7.8 → xoscar-0.7.10}/pyproject.toml +0 -0
  9. {xoscar-0.7.8 → xoscar-0.7.10}/setup.cfg +0 -0
  10. {xoscar-0.7.8 → xoscar-0.7.10}/setup.py +0 -0
  11. {xoscar-0.7.8 → xoscar-0.7.10}/versioneer.py +0 -0
  12. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/__init__.py +0 -0
  13. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/_utils.pxd +0 -0
  14. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/_utils.pyx +0 -0
  15. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/_version.py +0 -0
  16. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/aio/__init__.py +0 -0
  17. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/aio/base.py +0 -0
  18. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/aio/file.py +0 -0
  19. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/aio/lru.py +0 -0
  20. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/aio/parallelism.py +0 -0
  21. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/api.py +0 -0
  22. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/backend.py +0 -0
  23. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/backends/__init__.py +0 -0
  24. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/backends/allocate_strategy.py +0 -0
  25. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/backends/communication/__init__.py +0 -0
  26. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/backends/communication/base.py +0 -0
  27. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/backends/communication/core.py +0 -0
  28. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/backends/communication/dummy.py +0 -0
  29. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/backends/communication/errors.py +0 -0
  30. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/backends/communication/socket.py +0 -0
  31. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/backends/communication/ucx.py +0 -0
  32. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/backends/communication/utils.py +0 -0
  33. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/backends/config.py +0 -0
  34. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/backends/context.py +0 -0
  35. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/backends/core.py +0 -0
  36. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/backends/indigen/__init__.py +0 -0
  37. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/backends/indigen/__main__.py +0 -0
  38. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/backends/indigen/backend.py +0 -0
  39. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/backends/indigen/driver.py +0 -0
  40. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/backends/indigen/fate_sharing.py +0 -0
  41. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/backends/indigen/shared_memory.py +0 -0
  42. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/backends/message.pyi +0 -0
  43. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/backends/message.pyx +0 -0
  44. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/backends/pool.py +0 -0
  45. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/backends/router.py +0 -0
  46. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/backends/test/__init__.py +0 -0
  47. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/backends/test/backend.py +0 -0
  48. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/backends/test/pool.py +0 -0
  49. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/batch.py +0 -0
  50. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/collective/__init__.py +0 -0
  51. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/collective/common.py +0 -0
  52. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/collective/core.py +0 -0
  53. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/collective/process_group.py +0 -0
  54. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/collective/utils.py +0 -0
  55. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/collective/xoscar_pygloo.pyi +0 -0
  56. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/constants.py +0 -0
  57. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/context.pxd +0 -0
  58. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/context.pyx +0 -0
  59. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/core.pxd +0 -0
  60. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/core.pyx +0 -0
  61. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/debug.py +0 -0
  62. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/driver.py +0 -0
  63. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/errors.py +0 -0
  64. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/libcpp.pxd +0 -0
  65. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/metrics/__init__.py +0 -0
  66. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/metrics/api.py +0 -0
  67. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/metrics/backends/__init__.py +0 -0
  68. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/metrics/backends/console/__init__.py +0 -0
  69. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/metrics/backends/console/console_metric.py +0 -0
  70. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/metrics/backends/metric.py +0 -0
  71. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/metrics/backends/prometheus/__init__.py +0 -0
  72. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/metrics/backends/prometheus/prometheus_metric.py +0 -0
  73. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/nvutils.py +0 -0
  74. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/profiling.py +0 -0
  75. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/serialization/__init__.py +0 -0
  76. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/serialization/aio.py +0 -0
  77. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/serialization/core.pxd +0 -0
  78. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/serialization/core.pyi +0 -0
  79. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/serialization/core.pyx +0 -0
  80. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/serialization/cuda.py +0 -0
  81. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/serialization/exception.py +0 -0
  82. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/serialization/numpy.py +0 -0
  83. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/serialization/pyfury.py +0 -0
  84. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/serialization/scipy.py +0 -0
  85. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/utils.py +0 -0
  86. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/virtualenv/__init__.py +0 -0
  87. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar/virtualenv/utils.py +0 -0
  88. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar.egg-info/SOURCES.txt +0 -0
  89. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar.egg-info/dependency_links.txt +0 -0
  90. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar.egg-info/not-zip-safe +0 -0
  91. {xoscar-0.7.8 → xoscar-0.7.10}/xoscar.egg-info/requires.txt +0 -0
  92. {xoscar-0.7.8 → xoscar-0.7.10}/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.8
3
+ Version: 0.7.10
4
4
  Summary: Python actor framework for heterogeneous computing.
5
5
  Home-page: http://github.com/xorbitsai/xoscar
6
6
  Author: Qin Xuye
@@ -63,8 +63,8 @@ def _shm_put_object(seq: _ShmSeq, shm: shared_memory.SharedMemory, o: object):
63
63
  assert (
64
64
  len(serialized) < _SUBPROCESS_SHM_SIZE - 8
65
65
  ), f"Serialized object {o} is too long."
66
- shm.buf[4:12] = struct.pack("<II", sys.hexversion, len(serialized))
67
- shm.buf[12 : 12 + len(serialized)] = serialized
66
+ shm.buf[4:8] = struct.pack("<I", len(serialized))
67
+ shm.buf[8 : 8 + len(serialized)] = serialized
68
68
  shm.buf[:4] = struct.pack("<I", seq)
69
69
 
70
70
 
@@ -72,12 +72,8 @@ def _shm_get_object(seq: _ShmSeq, shm: shared_memory.SharedMemory):
72
72
  recv_seq = struct.unpack("<I", shm.buf[:4])[0]
73
73
  if recv_seq != seq:
74
74
  return
75
- python_version_hex, size = struct.unpack("<II", shm.buf[4:12])
76
- if python_version_hex != sys.hexversion:
77
- raise RuntimeError(
78
- f"Python version mismatch, sender: {python_version_hex}, receiver: {sys.hexversion}"
79
- )
80
- return pickle.loads(shm.buf[12 : 12 + size])
75
+ size = struct.unpack("<I", shm.buf[4:8])[0]
76
+ return pickle.loads(shm.buf[8 : 8 + size])
81
77
 
82
78
 
83
79
  @_register_message_handler
@@ -175,6 +171,16 @@ class MainActorPool(MainActorPoolBase):
175
171
  shm = shared_memory.SharedMemory(shm_name, track=False)
176
172
  try:
177
173
  config = _shm_get_object(_ShmSeq.INIT_PARAMS, shm)
174
+ # Check Python version once.
175
+ sub_pool_python_version = config.pop("python_version", None)
176
+ if (
177
+ sub_pool_python_version is not None
178
+ and sub_pool_python_version != sys.hexversion
179
+ ):
180
+ logger.warning(
181
+ f"The sub pool is using a different Python version, you may encounter serialization issues."
182
+ f" sub pool: {sub_pool_python_version}, main pool: {sys.hexversion}"
183
+ )
178
184
  actor_config = config["actor_pool_config"]
179
185
  process_index = config["process_index"]
180
186
  main_pool_pid = config["main_pool_pid"]
@@ -276,6 +282,7 @@ class MainActorPool(MainActorPoolBase):
276
282
  "actor_pool_config": actor_pool_config,
277
283
  "process_index": process_index,
278
284
  "main_pool_pid": os.getpid(),
285
+ "python_version": sys.hexversion,
279
286
  },
280
287
  )
281
288
  cmd = [
@@ -41,8 +41,10 @@ class MLXSerislizer(Serializer):
41
41
  @buffered
42
42
  def serial(self, obj: "mx.array", context: dict): # type: ignore
43
43
  mv = memoryview(obj)
44
- header = dict(shape=mv.shape, format=mv.format)
45
- if not mv.c_contiguous:
44
+ header = dict(shape=obj.shape, format=mv.format)
45
+ # If the memoryview is a multi-dimension view, then there could
46
+ # trigger a bug of asyncio write: https://github.com/python/cpython/issues/135862
47
+ if mv.ndim > 1 or not mv.c_contiguous:
46
48
  mv = memoryview(bytes(mv))
47
49
  return (header,), [mv], True
48
50
 
@@ -63,6 +63,8 @@ class VirtualEnvManager(ABC):
63
63
  ] # Extract actual package name, e.g., "torch"
64
64
  try:
65
65
  version = importlib.metadata.version(real_pkg)
66
+ # Strip build metadata like "+cpu"
67
+ version = version.split("+")[0]
66
68
  except importlib.metadata.PackageNotFoundError:
67
69
  raise RuntimeError(
68
70
  f"System package '{real_pkg}' not found. Cannot resolve '{pkg}'."
@@ -106,6 +106,8 @@ class UVVirtualEnvManager(VirtualEnvManager):
106
106
  cmd += [option, it]
107
107
  else:
108
108
  cmd += [option, param_value]
109
+ if kwargs.get("no_build_isolation", False):
110
+ cmd += ["--no-build-isolation"]
109
111
 
110
112
  logger.info("Installing packages via command: %s", cmd)
111
113
  if not log:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: xoscar
3
- Version: 0.7.8
3
+ Version: 0.7.10
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