xoscar 0.7.7__tar.gz → 0.7.9__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.7 → xoscar-0.7.9}/PKG-INFO +1 -1
  2. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/backends/indigen/pool.py +18 -9
  3. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/virtualenv/core.py +2 -0
  4. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar.egg-info/PKG-INFO +1 -1
  5. {xoscar-0.7.7 → xoscar-0.7.9}/MANIFEST.in +0 -0
  6. {xoscar-0.7.7 → xoscar-0.7.9}/pyproject.toml +0 -0
  7. {xoscar-0.7.7 → xoscar-0.7.9}/setup.cfg +0 -0
  8. {xoscar-0.7.7 → xoscar-0.7.9}/setup.py +0 -0
  9. {xoscar-0.7.7 → xoscar-0.7.9}/versioneer.py +0 -0
  10. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/__init__.py +0 -0
  11. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/_utils.pxd +0 -0
  12. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/_utils.pyx +0 -0
  13. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/_version.py +0 -0
  14. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/aio/__init__.py +0 -0
  15. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/aio/base.py +0 -0
  16. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/aio/file.py +0 -0
  17. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/aio/lru.py +0 -0
  18. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/aio/parallelism.py +0 -0
  19. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/api.py +0 -0
  20. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/backend.py +0 -0
  21. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/backends/__init__.py +0 -0
  22. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/backends/allocate_strategy.py +0 -0
  23. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/backends/communication/__init__.py +0 -0
  24. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/backends/communication/base.py +0 -0
  25. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/backends/communication/core.py +0 -0
  26. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/backends/communication/dummy.py +0 -0
  27. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/backends/communication/errors.py +0 -0
  28. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/backends/communication/socket.py +0 -0
  29. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/backends/communication/ucx.py +0 -0
  30. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/backends/communication/utils.py +0 -0
  31. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/backends/config.py +0 -0
  32. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/backends/context.py +0 -0
  33. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/backends/core.py +0 -0
  34. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/backends/indigen/__init__.py +0 -0
  35. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/backends/indigen/__main__.py +0 -0
  36. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/backends/indigen/backend.py +0 -0
  37. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/backends/indigen/driver.py +0 -0
  38. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/backends/indigen/fate_sharing.py +0 -0
  39. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/backends/indigen/shared_memory.py +0 -0
  40. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/backends/message.pyi +0 -0
  41. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/backends/message.pyx +0 -0
  42. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/backends/pool.py +0 -0
  43. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/backends/router.py +0 -0
  44. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/backends/test/__init__.py +0 -0
  45. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/backends/test/backend.py +0 -0
  46. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/backends/test/pool.py +0 -0
  47. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/batch.py +0 -0
  48. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/collective/__init__.py +0 -0
  49. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/collective/common.py +0 -0
  50. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/collective/core.py +0 -0
  51. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/collective/process_group.py +0 -0
  52. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/collective/utils.py +0 -0
  53. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/collective/xoscar_pygloo.pyi +0 -0
  54. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/constants.py +0 -0
  55. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/context.pxd +0 -0
  56. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/context.pyx +0 -0
  57. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/core.pxd +0 -0
  58. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/core.pyx +0 -0
  59. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/debug.py +0 -0
  60. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/driver.py +0 -0
  61. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/errors.py +0 -0
  62. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/libcpp.pxd +0 -0
  63. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/metrics/__init__.py +0 -0
  64. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/metrics/api.py +0 -0
  65. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/metrics/backends/__init__.py +0 -0
  66. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/metrics/backends/console/__init__.py +0 -0
  67. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/metrics/backends/console/console_metric.py +0 -0
  68. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/metrics/backends/metric.py +0 -0
  69. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/metrics/backends/prometheus/__init__.py +0 -0
  70. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/metrics/backends/prometheus/prometheus_metric.py +0 -0
  71. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/nvutils.py +0 -0
  72. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/profiling.py +0 -0
  73. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/serialization/__init__.py +0 -0
  74. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/serialization/aio.py +0 -0
  75. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/serialization/core.pxd +0 -0
  76. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/serialization/core.pyi +0 -0
  77. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/serialization/core.pyx +0 -0
  78. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/serialization/cuda.py +0 -0
  79. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/serialization/exception.py +0 -0
  80. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/serialization/mlx.py +0 -0
  81. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/serialization/numpy.py +0 -0
  82. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/serialization/pyfury.py +0 -0
  83. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/serialization/scipy.py +0 -0
  84. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/utils.py +0 -0
  85. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/virtualenv/__init__.py +0 -0
  86. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/virtualenv/utils.py +0 -0
  87. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar/virtualenv/uv.py +0 -0
  88. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar.egg-info/SOURCES.txt +0 -0
  89. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar.egg-info/dependency_links.txt +0 -0
  90. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar.egg-info/not-zip-safe +0 -0
  91. {xoscar-0.7.7 → xoscar-0.7.9}/xoscar.egg-info/requires.txt +0 -0
  92. {xoscar-0.7.7 → xoscar-0.7.9}/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.7
3
+ Version: 0.7.9
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 = [
@@ -423,7 +430,9 @@ class MainActorPool(MainActorPoolBase):
423
430
  except psutil.TimeoutExpired:
424
431
  pass
425
432
 
426
- while p.is_running():
433
+ count = 0
434
+ while p.is_running() and count < 3:
435
+ count += 1
427
436
  p.kill()
428
437
  if not p.is_running():
429
438
  return
@@ -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}'."
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: xoscar
3
- Version: 0.7.7
3
+ Version: 0.7.9
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