xoscar 0.6.0__cp39-cp39-macosx_10_9_x86_64.whl → 0.6.2__cp39-cp39-macosx_10_9_x86_64.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.

Binary file
@@ -134,6 +134,31 @@ class SubpoolStatus:
134
134
  traceback: TracebackType | None = None
135
135
 
136
136
 
137
+ _PRE_SET_ENV_LOCK = asyncio.Lock()
138
+
139
+
140
+ @contextlib.asynccontextmanager
141
+ async def _pre_set_env_in_main(env: dict[str, str]):
142
+ # Normally, `env` is set in sub pool,
143
+ # but something may have happened during initialization,
144
+ # e.g. CUDA_VISIBLE_DEVICES is too late to set when some actions may have polluted cuda
145
+ # we have to set environ before new process started
146
+ # enable this only when XOSCAR_PRE_SET_ENV=1
147
+ enable_pre_set_env = bool(int(os.getenv("XOSCAR_PRE_SET_ENV", 0)))
148
+ if not enable_pre_set_env or not env:
149
+ yield
150
+ return
151
+
152
+ global_environ = os.environ.copy()
153
+ async with _PRE_SET_ENV_LOCK:
154
+ try:
155
+ logger.debug("Updating environment variables in main: %s", env)
156
+ os.environ.update(env)
157
+ yield
158
+ finally:
159
+ os.environ = global_environ # type: ignore
160
+
161
+
137
162
  @_register_message_handler
138
163
  class MainActorPool(MainActorPoolBase):
139
164
  @classmethod
@@ -223,9 +248,12 @@ class MainActorPool(MainActorPoolBase):
223
248
 
224
249
  _patch_spawn_get_preparation_data()
225
250
  loop = asyncio.get_running_loop()
226
- with futures.ThreadPoolExecutor(1) as executor:
227
- create_pool_task = loop.run_in_executor(executor, start_pool_in_process)
228
- return await create_pool_task
251
+ async with _pre_set_env_in_main(
252
+ actor_pool_config.get_pool_config(process_index)["env"]
253
+ ):
254
+ with futures.ThreadPoolExecutor(1) as executor:
255
+ create_pool_task = loop.run_in_executor(executor, start_pool_in_process)
256
+ return await create_pool_task
229
257
 
230
258
  @classmethod
231
259
  async def wait_sub_pools_ready(cls, create_pool_tasks: List[asyncio.Task]):
@@ -394,9 +422,10 @@ class MainActorPool(MainActorPoolBase):
394
422
  return process, process_status
395
423
 
396
424
  loop = asyncio.get_running_loop()
397
- with futures.ThreadPoolExecutor(1) as executor:
398
- create_pool_task = loop.run_in_executor(executor, start_pool_in_process)
399
- process, process_status = await create_pool_task
425
+ async with _pre_set_env_in_main(env): # type: ignore
426
+ with futures.ThreadPoolExecutor(1) as executor:
427
+ create_pool_task = loop.run_in_executor(executor, start_pool_in_process)
428
+ process, process_status = await create_pool_task
400
429
 
401
430
  self._config.reset_pool_external_address(
402
431
  process_index, process_status.external_addresses[0]
Binary file
Binary file
xoscar/virtualenv/uv.py CHANGED
@@ -58,19 +58,13 @@ class UVVirtualEnvManager(VirtualEnvManager):
58
58
  if "trusted_host" in kwargs and kwargs["trusted_host"]:
59
59
  cmd += ["--trusted-host", kwargs["trusted_host"]]
60
60
 
61
- self._install_process = subprocess.Popen(
62
- cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE
63
- )
64
-
65
- stdout, stderr = self._install_process.communicate()
66
- returncode = self._install_process.returncode
61
+ self._install_process = process = subprocess.Popen(cmd)
62
+ returncode = process.wait()
67
63
 
68
64
  self._install_process = None # install finished, clear reference
69
65
 
70
66
  if returncode != 0:
71
- raise subprocess.CalledProcessError(
72
- returncode, cmd, output=stdout, stderr=stderr
73
- )
67
+ raise subprocess.CalledProcessError(returncode, cmd)
74
68
 
75
69
  def cancel_install(self):
76
70
  if self._install_process and self._install_process.poll() is None:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: xoscar
3
- Version: 0.6.0
3
+ Version: 0.6.2
4
4
  Summary: Python actor framework for heterogeneous computing.
5
5
  Home-page: http://github.com/xorbitsai/xoscar
6
6
  Author: Qin Xuye
@@ -1,7 +1,7 @@
1
- xoscar-0.6.0.dist-info/RECORD,,
2
- xoscar-0.6.0.dist-info/WHEEL,sha256=FoxzhRRMXcm8mSmqIxEPOmfhajsNIlMLdYtHdyz-ZKQ,109
3
- xoscar-0.6.0.dist-info/top_level.txt,sha256=vYlqqY4Nys8Thm1hePIuUv8eQePdULVWMmt7lXtX_ZA,21
4
- xoscar-0.6.0.dist-info/METADATA,sha256=PxvcFM64ACvq8BuPaniMOGyosrQHR0u7aBcnnBtW-1w,9076
1
+ xoscar-0.6.2.dist-info/RECORD,,
2
+ xoscar-0.6.2.dist-info/WHEEL,sha256=FoxzhRRMXcm8mSmqIxEPOmfhajsNIlMLdYtHdyz-ZKQ,109
3
+ xoscar-0.6.2.dist-info/top_level.txt,sha256=vYlqqY4Nys8Thm1hePIuUv8eQePdULVWMmt7lXtX_ZA,21
4
+ xoscar-0.6.2.dist-info/METADATA,sha256=W_mzFDfmy96PpO9ocfa9_wHgG2aa-geyIc_qJ4D-PHc,9076
5
5
  xoscar/_utils.pyx,sha256=6iqO4eTwEI-n9i39n_TKz7MWqbytMRnVNubdJ5egL6o,7279
6
6
  xoscar/backend.py,sha256=is436OPkZfSpQXaoqTRVta5eoye_pp45RFgCstAk2hU,1850
7
7
  xoscar/core.pxd,sha256=I_C2ka7XryyGnnAVXUVm8xfS1gtIrCs6X-9rswgOcUU,1317
@@ -12,18 +12,18 @@ xoscar/nvutils.py,sha256=qmW4mKLU0WB2yCs198ccQOgLL02zB7Fsa-AotO3NOmg,20412
12
12
  xoscar/constants.py,sha256=QHHSREw6uWBBjQDCFqlNfTvBZgniJPGy42KSIsR8Fqw,787
13
13
  xoscar/__init__.py,sha256=0zX8kKaio3ZIrlzB79WybcravMJw1OxPWjDspTgJFyQ,1608
14
14
  xoscar/api.py,sha256=3hztPoOxg8A_mlhWyWgVP7FMXG0PATA1TP4Rbaj7A-g,13327
15
- xoscar/core.cpython-39-darwin.so,sha256=7B1z1qOb6-ruBdnK7d1yArz978q5xEBkI9CuoY_g39w,448640
15
+ xoscar/core.cpython-39-darwin.so,sha256=_UiCX4a4p8pJ7O5wqDGVQDbJkfkUJ86kTi0tAoKvt0I,448640
16
16
  xoscar/utils.py,sha256=jUw6OICZUPBbmS1b3GE4vLctJf6fCKXrYtLtBuK-Oqc,16483
17
17
  xoscar/debug.py,sha256=9Z8SgE2WaKYQcyDo-5-DxEJQ533v7kWjrvCd28pSx3E,5069
18
18
  xoscar/libcpp.pxd,sha256=DJqBxLFOKL4iRr9Kale5UH3rbvPRD1x5bTSOPHFpz9I,1147
19
19
  xoscar/context.pyx,sha256=8CdgPnWcE9eOp3N600WgDQ03MCi8P73eUOGcfV7Zksg,10942
20
20
  xoscar/errors.py,sha256=wBlQOKsXf0Fc4skN39tDie0YZT-VIAuLNRgoDl2pZcA,1241
21
- xoscar/_utils.cpython-39-darwin.so,sha256=kqK1QYSwM4zToUOHpksMz5_8c_Q2ECcqD-RjXRYg6fQ,160888
21
+ xoscar/_utils.cpython-39-darwin.so,sha256=BlLUku4AmZASljDBdIInXNzxSO4U2-LkWzE76gbzk0c,160888
22
22
  xoscar/core.pyx,sha256=phN-yYV0A0QI8WFi2jCu0nc4CnShTepfDi0V7ZrLYPY,22092
23
23
  xoscar/driver.py,sha256=498fowtJr6b3FE8FIOA_Tc1Vwx88nfZw7p0FxrML0h4,1372
24
24
  xoscar/profiling.py,sha256=BC5OF0HzSaXv8V7w-y-B8r5gV5DgxHFoTEIF6jCMioQ,8015
25
25
  xoscar/_utils.pxd,sha256=5KYAL3jfPdejsHnrGGT2s--ZUX5SXznQWpHVSno429k,1157
26
- xoscar/context.cpython-39-darwin.so,sha256=1oIkZ4FobP4XFhqAzKO9sYLHmO5gTG9JLg1XKyUnLk8,200448
26
+ xoscar/context.cpython-39-darwin.so,sha256=PqKDIUTC2LhIbyCwHrDFOnj65pDs-_WThNmJPoAtfVQ,200448
27
27
  xoscar/metrics/__init__.py,sha256=9Badi7rxYikGm2dQiNCrj9GgMRBxwuR3JaEKcFZmfak,705
28
28
  xoscar/metrics/api.py,sha256=BBlMIFvVAGVfrtpeJ1YlH9Tqhy9OzGavwvGyeHcQ0Tk,8856
29
29
  xoscar/metrics/backends/__init__.py,sha256=h_JgzSqV5lP6vQ6XX_17kE4IY4BRnvKta_7VLQAL1ms,581
@@ -43,13 +43,13 @@ xoscar/serialization/pyfury.py,sha256=sifOnVMYoS82PzZEkzkfxesmMHei23k5UAUUKUyoOY
43
43
  xoscar/serialization/core.pxd,sha256=k4RoJgX5E5LGs4jdCQ7vvcn26MabXbrWoWhkO49X6YI,985
44
44
  xoscar/serialization/__init__.py,sha256=v76XC2OQLp-Yk4_U3_IVguEylMeyRw1UrkU_DPDMh0U,856
45
45
  xoscar/serialization/numpy.py,sha256=5Kem87CvpJmzUMp3QHk4WeHU30FoQWTJJP2SwIcaQG0,2919
46
- xoscar/serialization/core.cpython-39-darwin.so,sha256=udMoJ-VLgImjwzGyUm1tjJoNAFcGPOfThuSByEGRNBc,408080
46
+ xoscar/serialization/core.cpython-39-darwin.so,sha256=vOi6lN7W7O08GrKiASDrRdUzNP2WMmnklMgkAYgSK4k,408080
47
47
  xoscar/serialization/cuda.py,sha256=iFUEnN4SiquBIhyieyOrfw3TnKnW-tU_vYgqOxO_DrA,3758
48
48
  xoscar/serialization/scipy.py,sha256=yOEi0NB8cqQ6e2UnCZ1w006RsB7T725tIL-DM_hNcsU,2482
49
49
  xoscar/serialization/aio.py,sha256=5DySPgDxU43ec7_5Ct44-Oqt7YNSJBfuf8VdQgQlChA,4731
50
50
  xoscar/serialization/core.pyx,sha256=bjR-zXGm9qersk7kYPzpjpMIxDl_Auur4BCubRfKmfA,29626
51
51
  xoscar/serialization/mlx.py,sha256=N_cvbTUBKc14XWYsPIMz4kDstyRN1DNhb4BVRgnQm8Y,1872
52
- xoscar/backends/message.cpython-39-darwin.so,sha256=YZiXRkw7ntjXQ4ejArXZxFKroNpCKbFfXNbwCAw1rKk,387584
52
+ xoscar/backends/message.cpython-39-darwin.so,sha256=CXQMGDStoXMdPIuH9iFOjOPJGnT9TUxXwDiOY1RJg0M,387584
53
53
  xoscar/backends/config.py,sha256=4tZMiXAMMS8qQ4SX_LjONLtSQVfZTx3m-IK3EqbkYdk,5375
54
54
  xoscar/backends/allocate_strategy.py,sha256=tC1Nbq2tJohahUwd-zoRYHEDX65wyuX8tmeY45uWj_w,4845
55
55
  xoscar/backends/__init__.py,sha256=VHEBQcUWM5bj027W8EUf9PiJUAP7JoMrRw3Tsvy5ySw,643
@@ -61,7 +61,7 @@ xoscar/backends/pool.py,sha256=OezOhvvXAV3TpODhLHmJVgqCfowb3aA_fWZKPodm8bE,61003
61
61
  xoscar/backends/indigen/backend.py,sha256=znl_fZzWGEtLH8hZ9j9Kkf0fva25jEem2_KO7I1RVvc,1612
62
62
  xoscar/backends/indigen/__init__.py,sha256=tKHP5ClzedBRBpZsLRVErR3EUNbbDm4CY4u0rCFJr44,685
63
63
  xoscar/backends/indigen/driver.py,sha256=VGzkacYKykegW5qhCuhx01gdgBZEKJjNIyfNCnA6Nm8,952
64
- xoscar/backends/indigen/pool.py,sha256=v0Ps79W0WyeFSt2YxCJnh7q_1dnRQmo9887gcW3pNoc,17226
64
+ xoscar/backends/indigen/pool.py,sha256=eeT29MDwou7UQrfY9B9Z7iY6TI7DlWvrZxg0euz96eA,18287
65
65
  xoscar/backends/test/backend.py,sha256=nv9WFhH5Bbq4Q1HB9yfpciZBaeHT4IQAtzugBWESrUY,1263
66
66
  xoscar/backends/test/__init__.py,sha256=j2ZfD6prD9WjUxRUDC7Eq5Z7N7TkL6fFr59oNyc_vY4,682
67
67
  xoscar/backends/test/pool.py,sha256=TW4X6J-92Pti66103poQBNDBznX6CBD3RLOc_zixjTo,7257
@@ -80,4 +80,4 @@ xoscar/aio/parallelism.py,sha256=VSsjk8wP-Bw7tLeUsTyLVNgp91thjxEfE3pCrw_vF5Q,129
80
80
  xoscar/aio/base.py,sha256=9j0f1piwfE5R5GIvV212vSD03ixdaeSzSSsO2kxJZVE,2249
81
81
  xoscar/virtualenv/__init__.py,sha256=65t9_X1DvbanNjFy366SiiWZrRTpa9SXWMXPmqayE-4,1117
82
82
  xoscar/virtualenv/core.py,sha256=YMN6yHoNeEc8ecbJMbZkKeWKUABK1mUZ_OYOjcbRqWs,1263
83
- xoscar/virtualenv/uv.py,sha256=wP0wVgWkncABpXnNRVPuOPaeIP7fy3c0LRVrKBFtqU8,3042
83
+ xoscar/virtualenv/uv.py,sha256=l9w5JxETbW2wN8vfZR7k7aKTz4cWV4MvH06MoogBOVc,2842
File without changes