diff --git a/.github/workflows/gpu_ci_h100.yaml b/.github/workflows/gpu_ci_h100.yaml new file mode 100644 index 0000000000..2a3303fc59 --- /dev/null +++ b/.github/workflows/gpu_ci_h100.yaml @@ -0,0 +1,69 @@ +name: H100-GPU-CI + +on: + push: + branches: + - main + paths: + - 'ci/**' + - 'skyrl/backends/skyrl_train/**' + - 'skyrl/train/**' + - 'tests/backends/skyrl_train/gpu/gpu_ci/**' + - 'pyproject.toml' + - '!docs/**' + - '!examples/**' + - '.github/workflows/**' + pull_request_target: + types: [labeled] + workflow_dispatch: + + +permissions: + checks: write # for status checks to appear + contents: read + +jobs: + + skyrl_train_tests_h100: + if: > + github.event_name == 'push' || + github.event_name == 'workflow_dispatch' || + ( + github.event_name == 'pull_request_target' && + !github.event.pull_request.draft && + contains(github.event.pull_request.labels.*.name, 'run_h100_gpu_ci') && + ( + github.event.pull_request.author_association == 'MEMBER' || + github.event.pull_request.author_association == 'OWNER' || + github.event.pull_request.author_association == 'COLLABORATOR' + ) + ) + runs-on: ubuntu-latest + defaults: + run: + shell: bash + working-directory: . + + steps: + - uses: actions/checkout@v4 + with: + ref: ${{ github.event.pull_request.head.sha || github.ref }} + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: '3.12' + cache: 'pip' + - name: Install the latest version of uv + uses: astral-sh/setup-uv@v6 + with: + activate-environment: true + - name: Install basic dependencies + run: uv pip install anyscale==0.24.79 typer==0.9.0 + # Run h100 tests via anyscale staging (compute config llm-team-h100-4x:1) + - name: GPU tests + env: + ANYSCALE_CLI_TOKEN: ${{ secrets.ANYSCALE_CLI_TOKEN_STAGING }} + ANYSCALE_HOST: https://console.anyscale-staging.com + run: | + anyscale job submit -f ci/anyscale_gpu_ci_h100.yaml --timeout 5400 + anyscale job wait --name skyrl-train-gpu-ci-h100 --timeout 5400 diff --git a/ci/anyscale_gpu_ci_h100.yaml b/ci/anyscale_gpu_ci_h100.yaml new file mode 100644 index 0000000000..5976ee1913 --- /dev/null +++ b/ci/anyscale_gpu_ci_h100.yaml @@ -0,0 +1,7 @@ +name: skyrl-train-gpu-ci-h100 +entrypoint: bash ci/gpu_ci_run_h100.sh +image_uri: novaskyai/skyrl-train-ray-2.51.1-py3.12-cu12.8-megatron +ray_version: "2.51.1" +compute_config: llm-team-h100-4x:1 +working_dir: . +max_retries: 0 diff --git a/ci/gpu_ci_run_h100.sh b/ci/gpu_ci_run_h100.sh new file mode 100755 index 0000000000..f36e0b43dd --- /dev/null +++ b/ci/gpu_ci_run_h100.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash +set -xeuo pipefail + +export CI=true + +# Prepare datasets used in tests (Megatron test uses gsm8k env_class). +uv run examples/train/gsm8k/gsm8k_dataset.py --output_dir $HOME/data/gsm8k + +# Run FSDP h100 tests. Use --extra fsdp so the fsdp-only tests can collect. +uv run --directory . --isolated --extra dev --extra fsdp pytest -s -vvv -m h100 \ + tests/backends/skyrl_train/gpu/gpu_ci/test_policy_local_engines_e2e.py + +# Run Megatron h100 tests. Use --extra megatron so the megatron-only tests can collect. +uv run --directory . --isolated --extra dev --extra megatron pytest -s -vvv -m h100 \ + tests/backends/skyrl_train/gpu/gpu_ci/megatron/test_megatron_models.py diff --git a/skyrl/backends/skyrl_train/distributed/fsdp_strategy.py b/skyrl/backends/skyrl_train/distributed/fsdp_strategy.py index 7a3dfc612c..d4c995405e 100644 --- a/skyrl/backends/skyrl_train/distributed/fsdp_strategy.py +++ b/skyrl/backends/skyrl_train/distributed/fsdp_strategy.py @@ -219,6 +219,33 @@ def _fsdp_init_model(self, model, is_train=True, is_wrapped=False): } module = model.model if is_wrapped else model full_state = module.state_dict() + + # Move the entire module to meta before apply_fsdp2 so the sharded + # DTensors are allocated directly on GPU at their final sharded size, + # rather than first materializing the full model on each rank. + # Reference: huggingface/accelerate fsdp2_prepare_model uses the + # same pattern. + # + # Non-persistent buffers (e.g. RotaryEmbedding.inv_freq) are not in + # state_dict, so they would be wiped by the meta swap. We snapshot + # rank 0's values before the swap and restore them on rank 0 after, + # so _sync_non_persistent_buffers (inside fsdp2_load_full_state_dict) + # can broadcast real values to the other ranks. + non_persistent_snapshot = {} + if dist.get_rank() == 0: + for sub_name, sub in module.named_modules(): + for bname in getattr(sub, "_non_persistent_buffers_set", set()): + buf = sub._buffers.get(bname) + if buf is not None and not buf.is_meta: + non_persistent_snapshot[(sub_name, bname)] = buf.detach().clone() + + module.to(torch.device("meta")) + + if dist.get_rank() == 0: + for (sub_name, bname), buf in non_persistent_snapshot.items(): + sub = module.get_submodule(sub_name) if sub_name else module + sub._buffers[bname] = buf + apply_fsdp2(module, fsdp_kwargs, self.fsdp_config) fsdp2_load_full_state_dict(module, full_state, cpu_offload) return module diff --git a/skyrl/backends/skyrl_train/distributed/fsdp_utils.py b/skyrl/backends/skyrl_train/distributed/fsdp_utils.py index 83c3e26d34..0469f2d369 100644 --- a/skyrl/backends/skyrl_train/distributed/fsdp_utils.py +++ b/skyrl/backends/skyrl_train/distributed/fsdp_utils.py @@ -129,100 +129,56 @@ def _sync_non_persistent_buffers(model: torch.nn.Module, loaded_sd: dict): module._buffers[key] = src.cpu() -# Fsdp2 load full state dict from `accelerate` -# Reference: https://github.com/huggingface/accelerate/blob/0af621bbecc0e43f5d43766a4945d3d2236bb8a9/src/accelerate/utils/fsdp_utils.py#L455 -# NOTE (sumanthrh): The original code from `accelerate` assumes init on meta device - with cpu init only on rank 0, but the code is compatible with cpu init on all ranks. def fsdp2_load_full_state_dict(model: torch.nn.Module, full_sd: dict, cpu_offload=None): """ - Loads the full state dict (could be only on rank 0) into the sharded model. This is done by broadcasting the - parameters from rank 0 to all other ranks. This function modifies the model in-place. + Loads a full state dict (assumed populated on rank 0) into a sharded FSDP2 + model by broadcasting from rank 0 and distributing per-parameter shards. + + Uses PyTorch's `set_model_state_dict` with `full_state_dict=True` + + `broadcast_from_rank0=True`, which internally does the per-parameter + broadcast and DTensor distribution that we used to do manually. The + utility also releases intermediate staging tensors as it goes, so the + caching allocator can return memory to the device pool after init. Args: model (`torch.nn.Module`): - The model to load the state dict into, expected to be on meta device or a VRAM spike can occur - full_sd (`dict`): The full state dict to load, can be only on rank 0 + The model to load the state dict into, expected to be on meta + device on all ranks except rank 0 (or on meta on all ranks and + full_sd populated on rank 0). + full_sd (`dict`): The full state dict to load (only rank 0 needs + real data; non-rank-0 ranks may pass an empty dict). """ - import torch.distributed as dist - from torch.distributed.tensor import distribute_tensor - - # Model was previously copied to meta device - meta_sharded_sd = model.state_dict() - sharded_sd = {} - - # Rank 0 distributes the full state dict to other ranks - def _infer_parameter_dtype(model, param_name, empty_param): - try: - old_param = model.get_parameter_or_buffer(param_name) - except AttributeError: - # Need this for LORA, as there some params are not *parameters* of sorts - base_param_name, local_param_name = param_name.rsplit(".", 1) - submodule = model.get_submodule(base_param_name) - old_param = getattr(submodule, local_param_name) - - is_torch_e4m3fn_available = hasattr(torch, "float8_e4m3fn") - casting_dtype = None - is_param_float8_e4m3fn = is_torch_e4m3fn_available and empty_param.dtype == torch.float8_e4m3fn - - if empty_param.dtype.is_floating_point and not is_param_float8_e4m3fn: - casting_dtype = old_param.dtype - - return old_param is not None and old_param.is_contiguous(), casting_dtype - - def _cast_and_contiguous(tensor, to_contiguous, dtype): - if dtype is not None: - tensor = tensor.to(dtype=dtype) - if to_contiguous: - tensor = tensor.contiguous() - return tensor - - if dist.get_rank() == 0: - for (param_name, full_param), sharded_param in zip(full_sd.items(), meta_sharded_sd.values()): - full_param = full_param.detach().cuda() - mesh = sharded_param.device_mesh - dist.broadcast(full_param, src=0) - sharded_tensor = distribute_tensor(full_param, mesh, sharded_param.placements) - to_contiguous, casting_dtype = _infer_parameter_dtype( - model, - param_name, - full_param, - ) - sharded_tensor = _cast_and_contiguous(sharded_tensor, to_contiguous, casting_dtype) - sharded_sd[param_name] = sharded_tensor - # We need this else to have a matching `broadcast` for all of the ranks, else we deadlock - else: - for param_name, sharded_param in meta_sharded_sd.items(): - full_tensor = torch.empty(sharded_param.size(), device="cuda", dtype=sharded_param.dtype) - mesh = sharded_param.device_mesh - dist.broadcast(full_tensor, src=0) - sharded_tensor = distribute_tensor(full_tensor, mesh, sharded_param.placements) - to_contiguous, casting_dtype = _infer_parameter_dtype( - model, - param_name, - full_tensor, - ) - sharded_tensor = _cast_and_contiguous(sharded_tensor, to_contiguous, casting_dtype) - sharded_sd[param_name] = sharded_tensor - - # we set `assign=True` because our params can be on meta device - model.load_state_dict(sharded_sd, assign=True) - - # Broadcast non-persistent buffers (e.g. inv_freq from RotaryEmbedding) that - # are excluded from state_dict. On non-rank-0 meta-init these are still on - # meta device with no data; rank 0 has the correctly computed values. - _sync_non_persistent_buffers(model, sharded_sd) - - # If we don't offload FSDP2 Module to CPU and then back to GPU, - # it will occupy a large amount of reserved GPU memory,which can not be released using torch.cuda.empty_cache() - # even if we are using cpu_offload - # TODO (erictang000): this requires an additional offload + backload, see if this can be avoided - # Credit: https://github.com/volcengine/verl/pull/1667 - offload_fsdp2_model_to_cpu(model) - - torch.cuda.synchronize() - torch.cuda.empty_cache() + from torch.distributed.checkpoint.state_dict import ( + StateDictOptions, + set_model_state_dict, + ) + + set_model_state_dict( + model, + full_sd, + options=StateDictOptions(full_state_dict=True, broadcast_from_rank0=True), + ) - if not cpu_offload: - load_fsdp2_model_to_gpu(model) + # Broadcast non-persistent buffers (e.g. inv_freq from RotaryEmbedding) + # that are excluded from state_dict. On non-rank-0 meta-init these are + # still on the meta device with no data; rank 0 has the correct values. + _sync_non_persistent_buffers(model, model.state_dict()) + + # NOTE: removed the offload_fsdp2_model_to_cpu + load_fsdp2_model_to_gpu + # dance from verl PR #1667. That trick was meant to release reserved-but- + # unallocated cache memory, but for FSDP2 the offload is a no-op + # (`model.to("cpu")` doesn't move FSDPParam-managed storage) and the reload + # then *allocates a second copy*. Diagnostic on Qwen3.5-35B-A3B: + # after set_model_state_dict: 32.71 GiB + # after offload+empty_cache: 32.71 GiB (unchanged) + # after load: 65.42 GiB (doubled) + # set_model_state_dict already leaves us with exactly the shard on GPU; + # no clean-up is needed. + if cpu_offload: + # Caller asked for CPU-resident params; the offload path is still + # broken for FSDP2 but we leave the request explicit so a future fix + # has an obvious hook. + offload_fsdp2_model_to_cpu(model) return model diff --git a/skyrl/backends/skyrl_train/distributed/megatron/megatron_strategy.py b/skyrl/backends/skyrl_train/distributed/megatron/megatron_strategy.py index 2325b5443c..fb79716c37 100644 --- a/skyrl/backends/skyrl_train/distributed/megatron/megatron_strategy.py +++ b/skyrl/backends/skyrl_train/distributed/megatron/megatron_strategy.py @@ -180,22 +180,32 @@ def setup_distributed(self, timeout=timedelta(minutes=30)) -> None: def offload_to_cpu(self, model, optimizer, offload_optimizer=True, offload_model=True): """ Offload model weights and optimizer to CPU memory. + + The grad buffer belongs to the DDP-wrapped model, not the optimizer, + so it is offloaded whenever ``offload_optimizer`` is requested even if + ``optimizer is None`` (e.g. ``policy.skip_optimizer_init=True`` flows). """ if offload_model: offload_megatron_model_to_cpu(model) - if optimizer and offload_optimizer: + if offload_optimizer: offload_megatron_grads_to_cpu(model) - offload_megatron_optimizer(optimizer) + if optimizer is not None: + offload_megatron_optimizer(optimizer) torch.cuda.synchronize() torch.cuda.empty_cache() def backload_to_gpu(self, model, optimizer, backload_optimizer=True, backload_model=True): - """Reload model weights back to GPU.""" + """Reload model weights back to GPU. + + See :meth:`offload_to_cpu` for why the grad-buffer half is decoupled + from optimizer existence. + """ if backload_model: load_megatron_model_to_gpu(model) - if optimizer and backload_optimizer: + if backload_optimizer: load_megatron_grads_to_gpu(model) - load_megatron_optimizer(optimizer) + if optimizer is not None: + load_megatron_optimizer(optimizer) torch.cuda.synchronize() def backward(self, loss: torch.Tensor, model, optimizer: optim.Optimizer, **kwargs) -> None: diff --git a/skyrl/backends/skyrl_train/inference_servers/new_inference_worker_wrap.py b/skyrl/backends/skyrl_train/inference_servers/new_inference_worker_wrap.py index f60b6f1ba2..9fe64f4c40 100644 --- a/skyrl/backends/skyrl_train/inference_servers/new_inference_worker_wrap.py +++ b/skyrl/backends/skyrl_train/inference_servers/new_inference_worker_wrap.py @@ -5,7 +5,7 @@ enables chunked weight updates from training to inference using the start/update/finish lifecycle: - start_weight_update -> one or more update_weights_chunk -> finish_weight_update + start_weight_update -> one or more update_weights_ipc -> finish_weight_update This separates the layerwise reload initialization/finalization from individual chunk transfers, allowing weights to be sent in bounded-memory chunks rather @@ -64,7 +64,7 @@ class NewInferenceWorkerWrap: Provides a three-phase weight update protocol via collective_rpc: 1. start_weight_update: Prepare model for receiving weights - 2. update_weights_chunk: Receive and load one chunk of weights + 2. update_weights_ipc: Receive and load one chunk of weights 3. finish_weight_update: Finalize the model after all chunks Attributes accessed from the host GPUWorker (via mixin inheritance): @@ -82,7 +82,7 @@ def start_weight_update(self, is_checkpoint_format: bool = True) -> None: machinery which moves layers to meta device and wraps weight loaders to defer processing until all weights for each layer are loaded. - Must be called before any update_weights_chunk calls. + Must be called before any update_weights_ipc calls. Args: is_checkpoint_format: True if incoming weights are in checkpoint @@ -108,7 +108,7 @@ def start_weight_update(self, is_checkpoint_format: bool = True) -> None: self._skyrl_is_checkpoint_format = is_checkpoint_format self._skyrl_weight_update_active = True - def update_weights_chunk(self, update_info: dict) -> None: + def update_weights_ipc(self, update_info: dict) -> None: """ Receive and load a single chunk of weights. @@ -127,7 +127,7 @@ def update_weights_chunk(self, update_info: dict) -> None: - ipc_handles_pickled: b64(pickle({gpu_uuid: (func, args)})) """ if not getattr(self, "_skyrl_weight_update_active", False): - raise RuntimeError("start_weight_update must be called before update_weights_chunk.") + raise RuntimeError("start_weight_update must be called before update_weights_ipc.") if self.weight_transfer_engine is None: raise RuntimeError( @@ -178,13 +178,53 @@ def update_weights_chunk(self, update_info: dict) -> None: # before the sender drops its reference on the next barrier). torch.accelerator.synchronize() + def update_weights_nccl(self, update_info: dict) -> None: + """ + Receive a batched weight update via vLLM's NCCL weight transfer engine. + + Alternative to update_weights_ipc for the broadcast (non-IPC) sender: + the trainer initiates an NCCL broadcast via + NCCLWeightTransferEngine.trainer_send_weights, and each inference + worker calls weight_transfer_engine.receive_weights here. + + Routed through this skyrl wrap (rather than vLLM's native + /update_weights endpoint) so the load is wrapped with + set_current_vllm_config — process_weights_after_loading on MoE + models can otherwise instantiate kernels (e.g. FlashInfer CUTLASS) + whose __init__ reads get_current_vllm_config(). + + TODO: remove once the upstream vLLM patch lands (vllm-project/vllm + weight-sync-fix), then route via the native /update_weights endpoint. + https://github.com/vllm-project/vllm/pull/42577 + """ + if not getattr(self, "_skyrl_weight_update_active", False): + raise RuntimeError("start_weight_update must be called before update_weights_nccl.") + + if self.weight_transfer_engine is None: + raise RuntimeError( + "Weight transfer not configured. Please set weight_transfer_config to enable weight transfer." + ) + + from vllm.config import set_current_vllm_config + + typed_update_info = self.weight_transfer_engine.parse_update_info(update_info) + model = self.model_runner.model + + with set_current_vllm_config(self.vllm_config), torch.device(self.device): + self.weight_transfer_engine.receive_weights( + typed_update_info, + load_weights=model.load_weights, + ) + + torch.accelerator.synchronize() + def finish_weight_update(self) -> None: """ Finalize the current weight update. For checkpoint-format weights, runs layerwise postprocessing (quantization repacking, attention weight processing, etc.). - Must be called after all update_weights_chunk calls are done. + Must be called after all update_weights_ipc calls are done. """ if not getattr(self, "_skyrl_weight_update_active", False): raise RuntimeError("start_weight_update must be called before finish_weight_update.") diff --git a/skyrl/backends/skyrl_train/inference_servers/remote_inference_client.py b/skyrl/backends/skyrl_train/inference_servers/remote_inference_client.py index 34425e0a5f..95783c12db 100644 --- a/skyrl/backends/skyrl_train/inference_servers/remote_inference_client.py +++ b/skyrl/backends/skyrl_train/inference_servers/remote_inference_client.py @@ -1286,7 +1286,7 @@ async def start_weight_update( Calls the NewInferenceWorkerWrap.start_weight_update method on all workers. For checkpoint-format weights this initializes layerwise - reload. Must be called before any update_weights_chunk calls. + reload. Must be called before any update_weights_ipc calls. Args: is_checkpoint_format: True if weights are in checkpoint format @@ -1303,14 +1303,14 @@ async def start_weight_update( }, ) - async def update_weights_chunk( + async def update_weights_ipc( self, update_info: Dict[str, Any], ) -> Dict[str, Any]: """ Send a single weight chunk via /collective_rpc. - Calls NewInferenceWorkerWrap.update_weights_chunk on all workers. + Calls NewInferenceWorkerWrap.update_weights_ipc on all workers. Can be called multiple times between start_weight_update and finish_weight_update. @@ -1324,7 +1324,36 @@ async def update_weights_chunk( return await self._call_all_servers( "/collective_rpc", { - "method": "update_weights_chunk", + "method": "update_weights_ipc", + "kwargs": {"update_info": update_info}, + }, + ) + + async def update_weights_nccl( + self, + update_info: Dict[str, Any], + ) -> Dict[str, Any]: + """ + Send batched weight update via /collective_rpc to the broadcast receiver. + + Calls NewInferenceWorkerWrap.update_weights_nccl on all workers, + which routes weight_transfer_engine.receive_weights through the + set_current_vllm_config wrap. Used by the broadcast (NCCL) sender as + a temporary substitute for vLLM's native /update_weights endpoint + until the upstream patch (vllm-project/vllm weight-sync-fix) lands. + + Args: + update_info: Dict with backend-specific update info (names, + dtype_names, shapes, packed flag, etc.) — same shape vLLM's + native /update_weights expects. + + Returns: + Dict mapping server_url to response. + """ + return await self._call_all_servers( + "/collective_rpc", + { + "method": "update_weights_nccl", "kwargs": {"update_info": update_info}, }, ) diff --git a/skyrl/backends/skyrl_train/weight_sync/broadcast_strategy.py b/skyrl/backends/skyrl_train/weight_sync/broadcast_strategy.py index 720b5b9275..5a02bfa8d3 100644 --- a/skyrl/backends/skyrl_train/weight_sync/broadcast_strategy.py +++ b/skyrl/backends/skyrl_train/weight_sync/broadcast_strategy.py @@ -185,13 +185,22 @@ def weight_iterator() -> Iterator[Tuple[str, torch.Tensor]]: for chunk in chunks: yield from zip(chunk.names, chunk.tensors) + # Route via the skyrl wrap (start_weight_update + update_weights_nccl + # + finish_weight_update) rather than vLLM's native /update_weights so + # the receive is wrapped with set_current_vllm_config. Matches how + # CUDA IPC already routes through skyrl's wrap. + # TODO: switch back to update_named_weights once the upstream vLLM + # patch lands (vllm-project/vllm weight-sync-fix). + # https://github.com/vllm-project/vllm/pull/42577 if torch.distributed.get_rank() == 0: from vllm.distributed.weight_transfer.nccl_engine import ( NCCLWeightTransferEngine, ) + await self._inference_client.start_weight_update(is_checkpoint_format=True) + update_info = {**weight_metadata, "packed": True} - update_task = asyncio.create_task(self._inference_client.update_named_weights(update_info)) + update_task = asyncio.create_task(self._inference_client.update_weights_nccl(update_info)) # Run in thread so the HTTP update_task can progress concurrently await asyncio.to_thread( @@ -200,6 +209,8 @@ def weight_iterator() -> Iterator[Tuple[str, torch.Tensor]]: trainer_args={"group": self._model_update_group, "packed": True}, ) await update_task + + await self._inference_client.finish_weight_update() else: # Non-rank-0 still needs to participate in the all-gather for _ in weight_iterator(): diff --git a/skyrl/backends/skyrl_train/weight_sync/cuda_ipc_strategy.py b/skyrl/backends/skyrl_train/weight_sync/cuda_ipc_strategy.py index 70147c4a7e..97ca48ac45 100644 --- a/skyrl/backends/skyrl_train/weight_sync/cuda_ipc_strategy.py +++ b/skyrl/backends/skyrl_train/weight_sync/cuda_ipc_strategy.py @@ -186,11 +186,11 @@ async def _send_chunks_vllm_native( Per chunk, each rank packs + creates one IPC handle, handles are all_gather_object'd into a single {gpu_uuid: handle} dict, and rank 0 sends the dict (plus per-param `sizes` metadata) via - update_weights_chunk. The receiver rebuilds the packed tensor, slices + update_weights_ipc. The receiver rebuilds the packed tensor, slices it per param, and loads into vLLM. TODO: Once https://github.com/vllm-project/vllm/pull/39212 lands, - replace update_weights_chunk with the native /update_weights endpoint + replace update_weights_ipc with the native /update_weights endpoint and start/finish with /start_weight_update and /finish_weight_update. """ rank = torch.distributed.get_rank() @@ -254,7 +254,7 @@ async def _send_chunks_vllm_native( "sizes": sizes, "ipc_handles_pickled": pickled, } - await self._inference_client.update_weights_chunk(chunk_update_info) + await self._inference_client.update_weights_ipc(chunk_update_info) # Keep packed_tensor alive past the barrier so the receiver's # rebuilt view has valid backing storage while it copies into diff --git a/skyrl/backends/skyrl_train/workers/fsdp/fsdp_worker.py b/skyrl/backends/skyrl_train/workers/fsdp/fsdp_worker.py index 9881acf53f..860759d633 100644 --- a/skyrl/backends/skyrl_train/workers/fsdp/fsdp_worker.py +++ b/skyrl/backends/skyrl_train/workers/fsdp/fsdp_worker.py @@ -159,7 +159,7 @@ def init_model(self, model_path, num_training_steps: int = None): wrapped_model = HFModelWrapper( model_path, use_flash_attention_2=self.cfg.flash_attn, - bf16=False, + bf16=self.cfg.policy.bf16_init, lora_rank=self.cfg.policy.model.lora.rank, lora_alpha=self.cfg.policy.model.lora.alpha, lora_dropout=self.cfg.policy.model.lora.dropout, diff --git a/skyrl/backends/skyrl_train/workers/megatron/megatron_worker.py b/skyrl/backends/skyrl_train/workers/megatron/megatron_worker.py index 7a41067ab3..beddf37e33 100644 --- a/skyrl/backends/skyrl_train/workers/megatron/megatron_worker.py +++ b/skyrl/backends/skyrl_train/workers/megatron/megatron_worker.py @@ -603,18 +603,24 @@ def init_model(self, model_path, num_training_steps: int = 1e9): if self.cfg.policy.megatron_config.torch_profiler_config.enable: self.profiler = Profiler(self.cfg.policy.megatron_config.torch_profiler_config) - # create optimizer - optim_config = init_megatron_optim_config( - self.cfg.policy.optimizer_config, self.cfg.policy.megatron_config.optimizer_config_kwargs - ) - self.optimizer = get_megatron_optimizer(self.actor_module, optim_config) + # create optimizer (skipped for inference-only flows; Megatron's + # DistributedOptimizer eagerly materializes fp32 master + AdamW state + # on GPU, which OOMs large MoE models on memory-constrained nodes) + if self.cfg.policy.skip_optimizer_init: + self.optimizer = None + self.scheduler = None + else: + optim_config = init_megatron_optim_config( + self.cfg.policy.optimizer_config, self.cfg.policy.megatron_config.optimizer_config_kwargs + ) + self.optimizer = get_megatron_optimizer(self.actor_module, optim_config) - # create scheduler - self.scheduler = get_megatron_optimizer_param_scheduler( - optimizer=self.optimizer, - config=self.cfg.policy.optimizer_config, - num_training_steps=num_training_steps, - ) + # create scheduler + self.scheduler = get_megatron_optimizer_param_scheduler( + optimizer=self.optimizer, + config=self.cfg.policy.optimizer_config, + num_training_steps=num_training_steps, + ) # create worker model self.model = MegatronModelWrapper( @@ -868,7 +874,8 @@ def forward_backward( # (metrics should be identical within DP groups, i.e., across TP/PP/SP ranks) # NOTE: Sum loss metrics because scaling is already applied at the advantage level status = reduce_metrics(all_metrics, sum_loss_metrics=sum_loss_metrics) - status["policy_lr"] = self.optimizer.param_groups[0]["lr"] + if self.optimizer is not None: + status["policy_lr"] = self.optimizer.param_groups[0]["lr"] group = mpu.get_data_parallel_group(with_context_parallel=False) status = all_reduce_metrics(status, self.strategy, group=group, sum_loss_metrics=sum_loss_metrics) @@ -886,6 +893,8 @@ def optim_step(self) -> Optional[float]: Returns: The gradient norm (before scaling, after clipping), or None if unavailable. """ + if self.optimizer is None: + raise RuntimeError("optim_step called but policy.skip_optimizer_init=True (no optimizer constructed)") grad_norm = self.strategy.optimizer_step(self.optimizer, self.model, self.scheduler, name="actor") # Reset counter for next accumulation cycle @@ -895,12 +904,15 @@ def optim_step(self) -> Optional[float]: grad_norm = grad_norm.detach().cpu().item() if hasattr(grad_norm, "item") else grad_norm return grad_norm - def get_lr(self) -> float: + def get_lr(self) -> Optional[float]: """ Get current learning rate from optimizer. - Handles both regular optimizers and ChainedOptimizer. + Handles both regular optimizers and ChainedOptimizer. Returns None when + the worker was initialized with ``policy.skip_optimizer_init=True``. """ + if self.optimizer is None: + return None if isinstance(self.optimizer, ChainedOptimizer): return self.optimizer.chained_optimizers[0].param_groups[0]["lr"] return self.optimizer.param_groups[0]["lr"] @@ -915,8 +927,10 @@ def set_lr(self, learning_rate: float) -> None: Note: This bypasses the scheduler. The next scheduler.step() call will override this value unless the scheduler is configured for - constant LR. + constant LR. No-op when ``policy.skip_optimizer_init=True``. """ + if self.optimizer is None: + return if isinstance(self.optimizer, ChainedOptimizer): # ChainedOptimizer wraps multiple optimizers (e.g., for different param groups) for opt in self.optimizer.chained_optimizers: diff --git a/skyrl/train/config/config.py b/skyrl/train/config/config.py index fccc07cc55..936c96f195 100644 --- a/skyrl/train/config/config.py +++ b/skyrl/train/config/config.py @@ -230,6 +230,15 @@ class PolicyConfig(BaseConfig): language_model_only: bool = False """When True, skip vision encoder initialization for multimodal models (e.g. Qwen3.5). Loads only the language model backbone using AutoModelForCausalLM.""" + bf16_init: bool = False + """When True, initialize policy weights in bf16 instead of fp32. Defaults to fp32 + init so FSDP mixed precision keeps fp32 master weights; only flip this on for + memory-constrained tests where fp32 init would OOM (e.g. large MoE on 4xH100).""" + skip_optimizer_init: bool = False + """When True, skip optimizer and LR-scheduler construction in the policy worker. + Use for inference-only flows (forward + weight sync, no train_step) — primarily + Megatron, where DistributedOptimizer eagerly materializes fp32 master + AdamW + state on GPU and OOMs large MoE models on memory-constrained nodes.""" @dataclass diff --git a/tests/backends/skyrl_train/gpu/conftest.py b/tests/backends/skyrl_train/gpu/conftest.py index 524836fb00..eeb0902295 100644 --- a/tests/backends/skyrl_train/gpu/conftest.py +++ b/tests/backends/skyrl_train/gpu/conftest.py @@ -4,6 +4,23 @@ from tests.backends.skyrl_train.gpu.utils import ray_init_for_tests +def pytest_configure(config): + config.addinivalue_line( + "markers", + "h100: opt-in tests that require H100 GPUs; auto-skipped unless `-m h100` is passed.", + ) + + +def pytest_collection_modifyitems(config, items): + markexpr = config.getoption("markexpr", default="") or "" + if "h100" in markexpr: + return + skip_h100 = pytest.mark.skip(reason="H100 test — run explicitly with `-m h100`") + for item in items: + if "h100" in item.keywords: + item.add_marker(skip_h100) + + @pytest.fixture def ray_init_fixture(): if ray.is_initialized(): diff --git a/tests/backends/skyrl_train/gpu/gpu_ci/conftest.py b/tests/backends/skyrl_train/gpu/gpu_ci/conftest.py index cdfbd4a0f3..19ca7e1522 100644 --- a/tests/backends/skyrl_train/gpu/gpu_ci/conftest.py +++ b/tests/backends/skyrl_train/gpu/gpu_ci/conftest.py @@ -37,6 +37,33 @@ def _build_ray_env_vars(): env_vars["CUDA_DEVICE_MAX_CONNECTIONS"] = "1" env_vars["NVTE_FUSED_ATTN"] = "0" + # Mirrors prepare_runtime_environment for the nccl weight-sync backend. + # Without this, NCCL 2.28's cuMem-based commAlloc SEGV's on this driver. + env_vars["NCCL_CUMEM_ENABLE"] = "0" + + # H100 CI hosts run a CUDA 13 driver; the cu12-built NCCL 2.28.9 that + # torch/vllm bundle SIGSEGV's in commAlloc on that driver. Pin both + # pynccl (via VLLM_NCCL_SO_PATH) and torch.distributed (via LD_PRELOAD) + # to the cu13-built NCCL 2.29.7 wheel if it is present in the uv cache. + # LD_PRELOAD is required because VLLM_NCCL_SO_PATH only affects pynccl; + # torch's bundled NCCL is loaded independently and otherwise still + # SEGV's on TP>1 collectives. + import glob + import subprocess + + _candidates = glob.glob("/home/ray/.cache/uv/archive-v0/*/nvidia/nccl/lib/libnccl.so.2") + for _p in _candidates: + try: + _ver = subprocess.run(["strings", _p], capture_output=True, text=True, timeout=10).stdout + except (subprocess.TimeoutExpired, OSError): + continue + if "NCCL version 2.29" in _ver and "cuda13" in _ver: + env_vars["VLLM_NCCL_SO_PATH"] = _p + existing_preload = os.environ.get("LD_PRELOAD", "") + env_vars["LD_PRELOAD"] = f"{_p}:{existing_preload}" if existing_preload else _p + log_once(f"Pinning VLLM_NCCL_SO_PATH and LD_PRELOAD={_p} (cu13-matched NCCL)") + break + if SKYRL_PYTHONPATH_EXPORT: pythonpath = os.environ.get("PYTHONPATH") if pythonpath is None: diff --git a/tests/backends/skyrl_train/gpu/gpu_ci/megatron/test_megatron_models.py b/tests/backends/skyrl_train/gpu/gpu_ci/megatron/test_megatron_models.py index dab777a1da..e063160da2 100644 --- a/tests/backends/skyrl_train/gpu/gpu_ci/megatron/test_megatron_models.py +++ b/tests/backends/skyrl_train/gpu/gpu_ci/megatron/test_megatron_models.py @@ -72,6 +72,15 @@ def get_test_actor_config(model_name) -> SkyRLTrainConfig: # sample packing not yet supported for GDN # https://github.com/NVIDIA/Megatron-LM/pull/2644 cfg.trainer.use_sample_packing = False + # Large MoE models: Megatron's DistributedOptimizer eagerly materializes + # the fp32 master + AdamW state on GPU at init (~6x model size), which + # OOMs on 4xH100 before forward ever runs. These tests only forward + + # weight-sync, so skip optimizer construction entirely. + is_large_moe = ("qwen3.5-35b" in model_name.lower() and "tiny" not in model_name.lower()) or ( + "nemotron-3-nano" in model_name.lower() + ) + if is_large_moe: + cfg.trainer.policy.skip_optimizer_init = True validate_cfg(cfg) return cfg @@ -89,7 +98,13 @@ def _engine_overrides_for_model(model_name: str) -> dict: overrides = {"engine_init_kwargs": {}, "gpu_memory_utilization": 0.9} if "Nemotron-3-Nano" in model_name: overrides["engine_init_kwargs"]["max_model_len"] = 4096 - overrides["gpu_memory_utilization"] = 0.6 + # Megatron policy init also needs room alongside vLLM on the same + # GPU, so lower vLLM's pool footprint. + overrides["gpu_memory_utilization"] = 0.5 + # Large MoE: Megatron policy init also needs room alongside vLLM on the + # same GPU, so lower vLLM's pool footprint. + if "qwen3.5-35b" in model_name.lower() and "tiny" not in model_name.lower(): + overrides["gpu_memory_utilization"] = 0.5 return overrides @@ -205,19 +220,44 @@ async def construct_training_input_from_generator_output(generator_output, token id="qwen3.5-moe_tp2_ep2", marks=pytest.mark.skip(reason="running into correctness issues for tiny qwen3.5"), ), + # Nemotron-3-Nano (30B MoE, bf16) on 4xH100-80G. Mesh: TP=4 EP=4 + # ETP=1 -> DP=1. vLLM TP=4 across the same 4 GPUs (colocated). + # TP=1 OOMed in the EP alltoall because dense layers were replicated + # on every GPU; TP=4 shards them 4-way and matches the qwen3.5-35b + # layout below. AdamW optimizer is skipped entirely via is_large_moe + # in get_test_actor_config (forward-only test), and vLLM gmu is + # lowered to 0.5 so the policy shard + vLLM pool fit on each H100. pytest.param( + 4, 1, 1, - 1, - 8, + 4, 1, 4, - 8, + 4, "nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-BF16", 5e-1, 5e-2, - id="nemotron3-nano_tp4_ep8", - marks=pytest.mark.skip(reason="skip full size nemotron3-nano test until we migrate to h100 CI"), + id="nemotron3-nano_tp4_ep4_h100", + marks=pytest.mark.h100, + ), + # Qwen3.5-35B-A3B (~35B MoE, ~3B activated) on 4xH100-80G. Mesh: + # TP=4 EP=4 ETP=1 -> DP=1. vLLM TP=4 across the same 4 GPUs + # (colocated). Thresholds mirror the GLM-4.7-Flash entry; tune as + # we find what the actual logprob diffs look like. + pytest.param( + 4, + 1, + 1, + 4, + 1, + 4, + 4, + "Qwen/Qwen3.5-35B-A3B", + 3e-1, + 5e-2, + id="qwen3.5-35b-a3b_h100_tp4_ep4", + marks=pytest.mark.h100, ), ], ) @@ -250,7 +290,7 @@ async def test_logprobs_matching_roundtrip( use_local=True, colocate_all=True, backend="vllm", - sleep_level=1, + sleep_level=2, # full sleep — this test explicitly syncs weights gpu_memory_utilization=engine_overrides["gpu_memory_utilization"], engine_init_kwargs=engine_overrides["engine_init_kwargs"], ) as engines: diff --git a/tests/backends/skyrl_train/gpu/gpu_ci/test_policy_local_engines_e2e.py b/tests/backends/skyrl_train/gpu/gpu_ci/test_policy_local_engines_e2e.py index 3480c1eb1e..27f4a6ea94 100644 --- a/tests/backends/skyrl_train/gpu/gpu_ci/test_policy_local_engines_e2e.py +++ b/tests/backends/skyrl_train/gpu/gpu_ci/test_policy_local_engines_e2e.py @@ -20,6 +20,11 @@ MODEL = "Qwen/Qwen2.5-0.5B-Instruct" MOE_MODEL = "hf-internal-testing/tiny-qwen3-moe" +QWEN_LARGE_MOE_MODEL = "Qwen/Qwen3.5-35B-A3B" + +# Opt-in marker for tests that require H100s. Auto-skipped unless `-m h100` +# is passed (see pytest_collection_modifyitems in the gpu conftest). +_h100_only = pytest.mark.h100 def get_test_actor_config(model: str) -> SkyRLTrainConfig: @@ -57,6 +62,12 @@ def get_test_actor_config(model: str) -> SkyRLTrainConfig: # moe model, dp > 1 pytest.param(True, "nccl", "fsdp", 2, 1, "ray", MOE_MODEL, 2), pytest.param(False, "nccl", "fsdp", 1, 1, "ray", MOE_MODEL, 2), + # Qwen3.5-35B-A3B (~35B MoE, ~3B activated) on 4xH100-80G. "fsdp" + # is fsdp2 in the current backend (FSDP1 was removed). Colocated + # uses tp=4 across all 4 GPUs; non-colocated splits 2 GPUs for + # vLLM (tp=2) and 2 for the FSDP policy. + pytest.param(True, "nccl", "fsdp", 1, 4, "ray", QWEN_LARGE_MOE_MODEL, 1, marks=_h100_only), + pytest.param(False, "nccl", "fsdp", 1, 2, "ray", QWEN_LARGE_MOE_MODEL, 1, marks=_h100_only), ], ids=[ "no_colocate_nccl_fsdp_vllm", @@ -65,6 +76,8 @@ def get_test_actor_config(model: str) -> SkyRLTrainConfig: "non_colocated_nccl_fsdp_vllm_mp", "colocate_nccl_fsdp_vllm_dp", "non_colocated_nccl_fsdp_vllm_dp", + "colocate_nccl_fsdp_vllm_qwen3_5_35b_a3b_h100", + "no_colocate_nccl_fsdp_vllm_qwen3_5_35b_a3b_h100", ], ) async def test_policy_local_engines_e2e( @@ -82,6 +95,11 @@ async def test_policy_local_engines_e2e( Tests initalizing the policy actor group and inference engine, syncing weights, and performing generation. """ cfg = get_test_actor_config(model) + # Large MoE policy on 4xH100 can't hold fp32 master weights alongside vLLM, + # so init in bf16 here. Production keeps fp32 init (FSDP mixed precision + # handles the bf16 cast during forward). + if model == QWEN_LARGE_MOE_MODEL: + cfg.trainer.policy.bf16_init = True cfg.trainer.placement.colocate_all = colocate_all cfg.generator.inference_engine.weight_sync_backend = weight_sync_backend cfg.trainer.strategy = strategy @@ -103,6 +121,13 @@ async def test_policy_local_engines_e2e( ) as engines: client, pg = engines.client, engines.pg + # Sleep the inference engine before initializing the policy worker so + # the GPU is free for FSDP shard allocation (vLLM otherwise holds the + # bulk of HBM and FSDP init OOMs). The partial wake_up(tags=...) calls + # below mirror WorkerDispatch.save_weights_for_sampler. + if colocate_all: + await client.sleep() + policy = init_worker_with_type( "policy", shared_pg=pg, @@ -119,6 +144,11 @@ async def test_policy_local_engines_e2e( ) ) await client.reset_prefix_cache() + # Partially wake just the "weights" pool so vLLM's param.data has real + # GPU backing for the broadcast/IPC copy; KV cache is woken after FSDP + # offloads to CPU below. + if colocate_all: + await client.wake_up(tags=["weights"]) ray.get( policy.async_run_ray_method( "pass_through", "broadcast_to_inference_engines", client, cfg.generator.inference_engine @@ -126,7 +156,7 @@ async def test_policy_local_engines_e2e( ) if colocate_all: policy.offload_to_cpu() - await client.wake_up() + await client.wake_up(tags=["kv_cache"]) sampling_params = get_sampling_params_for_backend( cfg.generator.inference_engine.backend, cfg.generator.sampling_params diff --git a/uv.lock b/uv.lock index 100ffd30e1..b5e6323bfb 100644 --- a/uv.lock +++ b/uv.lock @@ -446,6 +446,18 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/62/29/2f8418269e46454a26171bfdd6a055d74febf32234e474930f2f60a17145/aiohttp-3.13.5-cp314-cp314t-win_amd64.whl", hash = "sha256:18a2f6c1182c51baa1d28d68fea51513cb2a76612f038853c0ad3c145423d3d9", size = 505441, upload-time = "2026-03-31T22:00:12.791Z" }, ] +[[package]] +name = "aiohttp-cors" +version = "0.8.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohttp" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/6f/6d/d89e846a5444b3d5eb8985a6ddb0daef3774928e1bfbce8e84ec97b0ffa7/aiohttp_cors-0.8.1.tar.gz", hash = "sha256:ccacf9cb84b64939ea15f859a146af1f662a6b1d68175754a07315e305fb1403", size = 38626, upload-time = "2025-03-31T14:16:20.048Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/98/3b/40a68de458904bcc143622015fff2352b6461cd92fd66d3527bf1c6f5716/aiohttp_cors-0.8.1-py3-none-any.whl", hash = "sha256:3180cf304c5c712d626b9162b195b1db7ddf976a2a25172b35bb2448b890a80d", size = 25231, upload-time = "2025-03-31T14:16:18.478Z" }, +] + [[package]] name = "aiohttp-retry" version = "2.9.1" @@ -1213,6 +1225,18 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" }, ] +[[package]] +name = "colorful" +version = "0.5.8" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32' or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-gpu') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-jax') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-miniswe') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-tpu') or (extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-jax') or (extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-miniswe') or (extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-tpu') or (extra == 'extra-5-skyrl-jax' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe') or (extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-tpu') or (extra == 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu')" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/82/31/109ef4bedeb32b4202e02ddb133162457adc4eb890a9ed9c05c9dd126ed0/colorful-0.5.8.tar.gz", hash = "sha256:bb16502b198be2f1c42ba3c52c703d5f651d826076817185f0294c1a549a7445", size = 209361, upload-time = "2025-10-29T11:53:21.663Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c3/11/25cdf9d5fc21efd30134fc74c43702c6f7ef09ebae8ed927f1283403ad8d/colorful-0.5.8-py2.py3-none-any.whl", hash = "sha256:a9381fdda3337fbaba5771991020abc69676afa102646650b759927892875992", size = 201334, upload-time = "2025-10-29T11:53:20.251Z" }, +] + [[package]] name = "comet-ml" version = "3.57.3" @@ -4450,7 +4474,7 @@ dependencies = [ { name = "gitpython", marker = "python_full_version >= '3.12' and sys_platform == 'linux'" }, { name = "importlib-metadata", marker = "python_full_version >= '3.12' and sys_platform == 'linux'" }, { name = "opentelemetry-api", marker = "python_full_version >= '3.12' and sys_platform == 'linux'" }, - { name = "opentelemetry-proto", marker = "python_full_version >= '3.12' and sys_platform == 'linux'" }, + { name = "opentelemetry-proto", version = "1.42.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12' and sys_platform == 'linux'" }, { name = "opentelemetry-sdk", marker = "python_full_version >= '3.12' and sys_platform == 'linux'" }, { name = "packaging", marker = "python_full_version >= '3.12' and sys_platform == 'linux'" }, { name = "protobuf", marker = "python_full_version >= '3.12' and sys_platform == 'linux'" }, @@ -4475,7 +4499,7 @@ dependencies = [ { name = "cachetools", marker = "python_full_version >= '3.12' and sys_platform == 'linux'" }, { name = "databricks-sdk", marker = "python_full_version >= '3.12' and sys_platform == 'linux'" }, { name = "opentelemetry-api", marker = "python_full_version >= '3.12' and sys_platform == 'linux'" }, - { name = "opentelemetry-proto", marker = "python_full_version >= '3.12' and sys_platform == 'linux'" }, + { name = "opentelemetry-proto", version = "1.42.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12' and sys_platform == 'linux'" }, { name = "opentelemetry-sdk", marker = "python_full_version >= '3.12' and sys_platform == 'linux'" }, { name = "packaging", marker = "python_full_version >= '3.12' and sys_platform == 'linux'" }, { name = "protobuf", marker = "python_full_version >= '3.12' and sys_platform == 'linux'" }, @@ -6697,6 +6721,29 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/40/1f/c83cf5a206c263ee70448a5ae4264682555f4d0b5bed0d2cc6ca1108103d/openai_harmony-0.0.8-cp38-abi3-win_amd64.whl", hash = "sha256:39d44f0d8f466bd56698e7ead708bead3141e27b9b87e3ab7d5a6d0e4a869ee5", size = 2438369, upload-time = "2025-11-05T19:07:08.1Z" }, ] +[[package]] +name = "opencensus" +version = "0.11.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "google-api-core" }, + { name = "opencensus-context" }, + { name = "six" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/15/a7/a46dcffa1b63084f9f17fe3c8cb20724c4c8f91009fd0b2cfdb27d5d2b35/opencensus-0.11.4.tar.gz", hash = "sha256:cbef87d8b8773064ab60e5c2a1ced58bbaa38a6d052c41aec224958ce544eff2", size = 64966, upload-time = "2024-01-03T18:04:07.085Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b5/ed/9fbdeb23a09e430d87b7d72d430484b88184633dc50f6bfb792354b6f661/opencensus-0.11.4-py2.py3-none-any.whl", hash = "sha256:a18487ce68bc19900336e0ff4655c5a116daf10c1b3685ece8d971bddad6a864", size = 128225, upload-time = "2024-01-03T18:04:05.127Z" }, +] + +[[package]] +name = "opencensus-context" +version = "0.1.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/4c/96/3b6f638f6275a8abbd45e582448723bffa29c1fb426721dedb5c72f7d056/opencensus-context-0.1.3.tar.gz", hash = "sha256:a03108c3c10d8c80bb5ddf5c8a1f033161fa61972a9917f9b9b3a18517f0088c", size = 4066, upload-time = "2022-08-03T22:20:22.359Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/10/68/162c97ea78c957d68ecf78a5c5041d2e25bd5562bdf5d89a6cbf7f8429bf/opencensus_context-0.1.3-py2.py3-none-any.whl", hash = "sha256:073bb0590007af276853009fac7e4bab1d523c3f03baf4cb4511ca38967c6039", size = 5060, upload-time = "2022-08-03T22:20:20.352Z" }, +] + [[package]] name = "opencv-python-headless" version = "4.13.0.92" @@ -6717,81 +6764,94 @@ wheels = [ [[package]] name = "opentelemetry-api" -version = "1.40.0" +version = "1.42.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "importlib-metadata", marker = "python_full_version >= '3.12' or (python_full_version < '3.12' and extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-jax') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-megatron') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-miniswe') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-tpu') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-jax' and extra == 'extra-5-skyrl-megatron') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-tpu') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu') or (sys_platform == 'linux' and extra == 'extra-5-skyrl-fsdp') or (sys_platform == 'linux' and extra != 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-gpu') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-jax') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-miniswe') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-tpu') or (extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-miniswe') or (extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-tpu') or (extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu')" }, - { name = "typing-extensions", marker = "python_full_version >= '3.12' or (python_full_version < '3.12' and extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-jax') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-megatron') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-miniswe') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-tpu') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-jax' and extra == 'extra-5-skyrl-megatron') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-tpu') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu') or (sys_platform == 'linux' and extra == 'extra-5-skyrl-fsdp') or (sys_platform == 'linux' and extra != 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-gpu') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-jax') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-miniswe') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-tpu') or (extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-miniswe') or (extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-tpu') or (extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu')" }, + { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/2c/1d/4049a9e8698361cc1a1aa03a6c59e4fa4c71e0c0f94a30f988a6876a2ae6/opentelemetry_api-1.40.0.tar.gz", hash = "sha256:159be641c0b04d11e9ecd576906462773eb97ae1b657730f0ecf64d32071569f", size = 70851, upload-time = "2026-03-04T14:17:21.555Z" } +sdist = { url = "https://files.pythonhosted.org/packages/86/ca/25288069c399be6769159d9fb7b1190b603537d82aad2fa2746a0cc2c8c6/opentelemetry_api-1.42.0.tar.gz", hash = "sha256:ea84c893ad177791d138e0349d6ceebd8d3bf006440900400ce220008dafc372", size = 72300, upload-time = "2026-05-19T09:46:29.885Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/5f/bf/93795954016c522008da367da292adceed71cca6ee1717e1d64c83089099/opentelemetry_api-1.40.0-py3-none-any.whl", hash = "sha256:82dd69331ae74b06f6a874704be0cfaa49a1650e1537d4a813b86ecef7d0ecf9", size = 68676, upload-time = "2026-03-04T14:17:01.24Z" }, + { url = "https://files.pythonhosted.org/packages/1b/0b/be5daf659b82b525338fde371dfcfab09b606a19bb5620c37076964710ec/opentelemetry_api-1.42.0-py3-none-any.whl", hash = "sha256:558d88f88192a973579910ef6f2c13db47a268d5ec2e53e83e50e74a39a02922", size = 61310, upload-time = "2026-05-19T09:46:06.561Z" }, ] [[package]] name = "opentelemetry-exporter-otlp" -version = "1.40.0" +version = "1.42.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "opentelemetry-exporter-otlp-proto-grpc", marker = "(sys_platform == 'linux' and extra == 'extra-5-skyrl-fsdp') or (sys_platform == 'linux' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-jax') or (extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-jax' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe') or (extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-tpu') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-gpu') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-jax') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-miniswe') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-tpu') or (extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-miniswe') or (extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-tpu') or (extra == 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu')" }, { name = "opentelemetry-exporter-otlp-proto-http", marker = "(sys_platform == 'linux' and extra == 'extra-5-skyrl-fsdp') or (sys_platform == 'linux' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-jax') or (extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-jax' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe') or (extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-tpu') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-gpu') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-jax') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-miniswe') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-tpu') or (extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-miniswe') or (extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-tpu') or (extra == 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu')" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/d0/37/b6708e0eff5c5fb9aba2e0ea09f7f3bcbfd12a592d2a780241b5f6014df7/opentelemetry_exporter_otlp-1.40.0.tar.gz", hash = "sha256:7caa0870b95e2fcb59d64e16e2b639ecffb07771b6cd0000b5d12e5e4fef765a", size = 6152, upload-time = "2026-03-04T14:17:23.235Z" } +sdist = { url = "https://files.pythonhosted.org/packages/5f/03/428f61444ddd113ecd998390e25a6591191df238f826cebbaa01481e01ce/opentelemetry_exporter_otlp-1.42.0.tar.gz", hash = "sha256:246db750a55b70419395d60e68f3f3ec4c75af72366d81cac93bcc341976d595", size = 6085, upload-time = "2026-05-19T09:46:31.288Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/2d/fc/aea77c28d9f3ffef2fdafdc3f4a235aee4091d262ddabd25882f47ce5c5f/opentelemetry_exporter_otlp-1.40.0-py3-none-any.whl", hash = "sha256:48c87e539ec9afb30dc443775a1334cc5487de2f72a770a4c00b1610bf6c697d", size = 7023, upload-time = "2026-03-04T14:17:03.612Z" }, + { url = "https://files.pythonhosted.org/packages/17/23/bdb43e546ce6c00ba5d855babaed56c1ebfef6fc9fb5c27003160f0cbf33/opentelemetry_exporter_otlp-1.42.0-py3-none-any.whl", hash = "sha256:28c92bf13aad554cca6a22b9e508f2220d3a90882737a8d650327902dcc4959f", size = 6725, upload-time = "2026-05-19T09:46:08.975Z" }, ] [[package]] name = "opentelemetry-exporter-otlp-proto-common" -version = "1.40.0" +version = "1.42.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "opentelemetry-proto", marker = "python_full_version >= '3.12' or (python_full_version < '3.12' and extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-jax') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-megatron') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-miniswe') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-tpu') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-jax' and extra == 'extra-5-skyrl-megatron') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-tpu') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu') or (sys_platform == 'linux' and extra == 'extra-5-skyrl-fsdp') or (sys_platform == 'linux' and extra != 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-gpu') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-jax') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-miniswe') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-tpu') or (extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-miniswe') or (extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-tpu') or (extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu')" }, + { name = "opentelemetry-proto", version = "1.42.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12' or (python_full_version < '3.12' and extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-jax') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-megatron') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-miniswe') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-tpu') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-jax' and extra == 'extra-5-skyrl-megatron') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-tpu') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu') or (sys_platform == 'linux' and extra == 'extra-5-skyrl-fsdp') or (sys_platform == 'linux' and extra != 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-gpu') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-jax') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-miniswe') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-tpu') or (extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-miniswe') or (extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-tpu') or (extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu')" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/51/bc/1559d46557fe6eca0b46c88d4c2676285f1f3be2e8d06bb5d15fbffc814a/opentelemetry_exporter_otlp_proto_common-1.40.0.tar.gz", hash = "sha256:1cbee86a4064790b362a86601ee7934f368b81cd4cc2f2e163902a6e7818a0fa", size = 20416, upload-time = "2026-03-04T14:17:23.801Z" } +sdist = { url = "https://files.pythonhosted.org/packages/76/a9/1496f27ecdfc7d504eac80f5e16474ee9d47cd08cda1f2917b58cf1c299c/opentelemetry_exporter_otlp_proto_common-1.42.0.tar.gz", hash = "sha256:c7a1a61f3a4c4dfa83127353edb1c75b873289d9ee42379db46eb835963b72e3", size = 21430, upload-time = "2026-05-19T09:46:32.838Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/8b/ca/8f122055c97a932311a3f640273f084e738008933503d0c2563cd5d591fc/opentelemetry_exporter_otlp_proto_common-1.40.0-py3-none-any.whl", hash = "sha256:7081ff453835a82417bf38dccf122c827c3cbc94f2079b03bba02a3165f25149", size = 18369, upload-time = "2026-03-04T14:17:04.796Z" }, + { url = "https://files.pythonhosted.org/packages/8b/7b/1542eb6e3d941a7dd93648d485b7c8495bc2841a2bb7dd5f394f370cf607/opentelemetry_exporter_otlp_proto_common-1.42.0-py3-none-any.whl", hash = "sha256:92de67f096c9200770f16fbdb63b96fb6061d604b4bc266726d8355caeb864e8", size = 17328, upload-time = "2026-05-19T09:46:11.291Z" }, ] [[package]] name = "opentelemetry-exporter-otlp-proto-grpc" -version = "1.40.0" +version = "1.42.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "googleapis-common-protos", marker = "(sys_platform == 'linux' and extra == 'extra-5-skyrl-fsdp') or (sys_platform == 'linux' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-jax') or (extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-jax' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe') or (extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-tpu') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-gpu') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-jax') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-miniswe') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-tpu') or (extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-miniswe') or (extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-tpu') or (extra == 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu')" }, { name = "grpcio", marker = "(sys_platform == 'linux' and extra == 'extra-5-skyrl-fsdp') or (sys_platform == 'linux' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-jax') or (extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-jax' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe') or (extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-tpu') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-gpu') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-jax') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-miniswe') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-tpu') or (extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-miniswe') or (extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-tpu') or (extra == 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu')" }, { name = "opentelemetry-api", marker = "(sys_platform == 'linux' and extra == 'extra-5-skyrl-fsdp') or (sys_platform == 'linux' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-jax') or (extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-jax' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe') or (extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-tpu') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-gpu') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-jax') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-miniswe') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-tpu') or (extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-miniswe') or (extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-tpu') or (extra == 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu')" }, { name = "opentelemetry-exporter-otlp-proto-common", marker = "(sys_platform == 'linux' and extra == 'extra-5-skyrl-fsdp') or (sys_platform == 'linux' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-jax') or (extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-jax' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe') or (extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-tpu') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-gpu') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-jax') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-miniswe') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-tpu') or (extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-miniswe') or (extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-tpu') or (extra == 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu')" }, - { name = "opentelemetry-proto", marker = "(sys_platform == 'linux' and extra == 'extra-5-skyrl-fsdp') or (sys_platform == 'linux' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-jax') or (extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-jax' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe') or (extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-tpu') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-gpu') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-jax') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-miniswe') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-tpu') or (extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-miniswe') or (extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-tpu') or (extra == 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu')" }, + { name = "opentelemetry-proto", version = "1.42.0", source = { registry = "https://pypi.org/simple" }, marker = "(sys_platform == 'linux' and extra == 'extra-5-skyrl-fsdp') or (sys_platform == 'linux' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-jax') or (extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-jax' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe') or (extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-tpu') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-gpu') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-jax') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-miniswe') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-tpu') or (extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-miniswe') or (extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-tpu') or (extra == 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu')" }, { name = "opentelemetry-sdk", marker = "(sys_platform == 'linux' and extra == 'extra-5-skyrl-fsdp') or (sys_platform == 'linux' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-jax') or (extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-jax' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe') or (extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-tpu') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-gpu') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-jax') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-miniswe') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-tpu') or (extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-miniswe') or (extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-tpu') or (extra == 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu')" }, { name = "typing-extensions", marker = "(sys_platform == 'linux' and extra == 'extra-5-skyrl-fsdp') or (sys_platform == 'linux' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-jax') or (extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-jax' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe') or (extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-tpu') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-gpu') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-jax') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-miniswe') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-tpu') or (extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-miniswe') or (extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-tpu') or (extra == 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu')" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/8f/7f/b9e60435cfcc7590fa87436edad6822240dddbc184643a2a005301cc31f4/opentelemetry_exporter_otlp_proto_grpc-1.40.0.tar.gz", hash = "sha256:bd4015183e40b635b3dab8da528b27161ba83bf4ef545776b196f0fb4ec47740", size = 25759, upload-time = "2026-03-04T14:17:24.4Z" } +sdist = { url = "https://files.pythonhosted.org/packages/01/6a/63812e4f67d3658b21e94bc890b67296951f3aa8f6950fdf735f763500e5/opentelemetry_exporter_otlp_proto_grpc-1.42.0.tar.gz", hash = "sha256:75eac4e9d0bd69bea8199d75dfeb585cce05a9baa8215d1f7aad9e3583bf5ef9", size = 27136, upload-time = "2026-05-19T09:46:33.594Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/96/6f/7ee0980afcbdcd2d40362da16f7f9796bd083bf7f0b8e038abfbc0300f5d/opentelemetry_exporter_otlp_proto_grpc-1.40.0-py3-none-any.whl", hash = "sha256:2aa0ca53483fe0cf6405087a7491472b70335bc5c7944378a0a8e72e86995c52", size = 20304, upload-time = "2026-03-04T14:17:05.942Z" }, + { url = "https://files.pythonhosted.org/packages/4d/e9/308c4c03b536005a1443bee0d9f06de38aad8b94f59f58ac688ead7a8cf9/opentelemetry_exporter_otlp_proto_grpc-1.42.0-py3-none-any.whl", hash = "sha256:5d6d1691586f2e656fd14187f2f2f5fa06e94834e1acdce71edcbbe35730b31d", size = 19614, upload-time = "2026-05-19T09:46:12.331Z" }, ] [[package]] name = "opentelemetry-exporter-otlp-proto-http" -version = "1.40.0" +version = "1.42.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "googleapis-common-protos", marker = "python_full_version >= '3.12' or (python_full_version < '3.12' and extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-jax') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-megatron') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-miniswe') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-tpu') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-jax' and extra == 'extra-5-skyrl-megatron') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-tpu') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu') or (sys_platform == 'linux' and extra == 'extra-5-skyrl-fsdp') or (sys_platform == 'linux' and extra != 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-gpu') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-jax') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-miniswe') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-tpu') or (extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-miniswe') or (extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-tpu') or (extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu')" }, { name = "opentelemetry-api", marker = "python_full_version >= '3.12' or (python_full_version < '3.12' and extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-jax') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-megatron') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-miniswe') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-tpu') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-jax' and extra == 'extra-5-skyrl-megatron') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-tpu') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu') or (sys_platform == 'linux' and extra == 'extra-5-skyrl-fsdp') or (sys_platform == 'linux' and extra != 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-gpu') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-jax') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-miniswe') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-tpu') or (extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-miniswe') or (extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-tpu') or (extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu')" }, { name = "opentelemetry-exporter-otlp-proto-common", marker = "python_full_version >= '3.12' or (python_full_version < '3.12' and extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-jax') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-megatron') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-miniswe') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-tpu') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-jax' and extra == 'extra-5-skyrl-megatron') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-tpu') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu') or (sys_platform == 'linux' and extra == 'extra-5-skyrl-fsdp') or (sys_platform == 'linux' and extra != 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-gpu') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-jax') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-miniswe') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-tpu') or (extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-miniswe') or (extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-tpu') or (extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu')" }, - { name = "opentelemetry-proto", marker = "python_full_version >= '3.12' or (python_full_version < '3.12' and extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-jax') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-megatron') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-miniswe') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-tpu') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-jax' and extra == 'extra-5-skyrl-megatron') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-tpu') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu') or (sys_platform == 'linux' and extra == 'extra-5-skyrl-fsdp') or (sys_platform == 'linux' and extra != 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-gpu') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-jax') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-miniswe') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-tpu') or (extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-miniswe') or (extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-tpu') or (extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu')" }, + { name = "opentelemetry-proto", version = "1.42.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12' or (python_full_version < '3.12' and extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-jax') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-megatron') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-miniswe') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-tpu') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-jax' and extra == 'extra-5-skyrl-megatron') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-tpu') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu') or (sys_platform == 'linux' and extra == 'extra-5-skyrl-fsdp') or (sys_platform == 'linux' and extra != 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-gpu') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-jax') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-miniswe') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-tpu') or (extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-miniswe') or (extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-tpu') or (extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu')" }, { name = "opentelemetry-sdk", marker = "python_full_version >= '3.12' or (python_full_version < '3.12' and extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-jax') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-megatron') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-miniswe') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-tpu') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-jax' and extra == 'extra-5-skyrl-megatron') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-tpu') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu') or (sys_platform == 'linux' and extra == 'extra-5-skyrl-fsdp') or (sys_platform == 'linux' and extra != 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-gpu') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-jax') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-miniswe') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-tpu') or (extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-miniswe') or (extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-tpu') or (extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu')" }, { name = "requests", marker = "python_full_version >= '3.12' or (python_full_version < '3.12' and extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-jax') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-megatron') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-miniswe') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-tpu') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-jax' and extra == 'extra-5-skyrl-megatron') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-tpu') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu') or (sys_platform == 'linux' and extra == 'extra-5-skyrl-fsdp') or (sys_platform == 'linux' and extra != 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-gpu') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-jax') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-miniswe') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-tpu') or (extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-miniswe') or (extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-tpu') or (extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu')" }, { name = "typing-extensions", marker = "python_full_version >= '3.12' or (python_full_version < '3.12' and extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-jax') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-megatron') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-miniswe') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-tpu') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-jax' and extra == 'extra-5-skyrl-megatron') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-tpu') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu') or (sys_platform == 'linux' and extra == 'extra-5-skyrl-fsdp') or (sys_platform == 'linux' and extra != 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-gpu') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-jax') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-miniswe') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-tpu') or (extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-miniswe') or (extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-tpu') or (extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu')" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/2e/fa/73d50e2c15c56be4d000c98e24221d494674b0cc95524e2a8cb3856d95a4/opentelemetry_exporter_otlp_proto_http-1.40.0.tar.gz", hash = "sha256:db48f5e0f33217588bbc00274a31517ba830da576e59503507c839b38fa0869c", size = 17772, upload-time = "2026-03-04T14:17:25.324Z" } +sdist = { url = "https://files.pythonhosted.org/packages/8a/da/be1a80ca82f155e6067213243f5bae5c10985d3c7603eadaf8c750ebe9eb/opentelemetry_exporter_otlp_proto_http-1.42.0.tar.gz", hash = "sha256:640013aacdbbe01bfb187c66dd331b24249517b7f36c0cd994ef75544d1dbd0b", size = 25405, upload-time = "2026-05-19T09:46:34.356Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/a0/3a/8865d6754e61c9fb170cdd530a124a53769ee5f740236064816eb0ca7301/opentelemetry_exporter_otlp_proto_http-1.40.0-py3-none-any.whl", hash = "sha256:a8d1dab28f504c5d96577d6509f80a8150e44e8f45f82cdbe0e34c99ab040069", size = 19960, upload-time = "2026-03-04T14:17:07.153Z" }, + { url = "https://files.pythonhosted.org/packages/97/df/a5b8df72a4ef59519170d6f5fc4bd06528fed42e593b9b16b027cb477e50/opentelemetry_exporter_otlp_proto_http-1.42.0-py3-none-any.whl", hash = "sha256:f2cb9ea5dfac29e91b7b04034ca5a4bfae14b51cb334172c5b42b86a48843324", size = 21792, upload-time = "2026-05-19T09:46:13.67Z" }, +] + +[[package]] +name = "opentelemetry-exporter-prometheus" +version = "0.63b0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "opentelemetry-api" }, + { name = "opentelemetry-sdk" }, + { name = "prometheus-client" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/18/2c/0643113a5bef20e8242f7ae7915913fab61e8c901d391518a0aefa2da6fc/opentelemetry_exporter_prometheus-0.63b0.tar.gz", hash = "sha256:76b52078ee70131542e53d5cf1942cadd6d5628e7a1bf1f60047f29fa079e9b1", size = 15231, upload-time = "2026-05-19T09:46:35.1Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2b/48/18e2b0eec9242beb168b1100ed6c602c2a378d0ccb779d1c0a1b85b9ba89/opentelemetry_exporter_prometheus-0.63b0-py3-none-any.whl", hash = "sha256:0cfe4846bf5905f096a4d9678ffe25c7fe6f662f6c7282d2b191138d6bf487fb", size = 12466, upload-time = "2026-05-19T09:46:15.025Z" }, ] [[package]] name = "opentelemetry-instrumentation" -version = "0.61b0" +version = "0.63b0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "opentelemetry-api", marker = "python_full_version >= '3.12' or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-gpu') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-jax') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-miniswe') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-tpu') or (extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-jax') or (extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-miniswe') or (extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-tpu') or (extra == 'extra-5-skyrl-jax' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe') or (extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-tpu') or (extra == 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu')" }, @@ -6799,14 +6859,14 @@ dependencies = [ { name = "packaging", marker = "python_full_version >= '3.12' or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-gpu') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-jax') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-miniswe') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-tpu') or (extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-jax') or (extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-miniswe') or (extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-tpu') or (extra == 'extra-5-skyrl-jax' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe') or (extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-tpu') or (extra == 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu')" }, { name = "wrapt", marker = "python_full_version >= '3.12' or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-gpu') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-jax') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-miniswe') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-tpu') or (extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-jax') or (extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-miniswe') or (extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-tpu') or (extra == 'extra-5-skyrl-jax' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe') or (extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-tpu') or (extra == 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu')" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/da/37/6bf8e66bfcee5d3c6515b79cb2ee9ad05fe573c20f7ceb288d0e7eeec28c/opentelemetry_instrumentation-0.61b0.tar.gz", hash = "sha256:cb21b48db738c9de196eba6b805b4ff9de3b7f187e4bbf9a466fa170514f1fc7", size = 32606, upload-time = "2026-03-04T14:20:16.825Z" } +sdist = { url = "https://files.pythonhosted.org/packages/2a/2d/322d464f4105966fb8555f871a84f43e821ce9aaf64ecae9586e9691c6a2/opentelemetry_instrumentation-0.63b0.tar.gz", hash = "sha256:80a339ef030a8d0fd1962375a9801dd31954e5063d74c00bc3d4e6581f43bab1", size = 41083, upload-time = "2026-05-19T09:47:06.194Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/d8/3e/f6f10f178b6316de67f0dfdbbb699a24fbe8917cf1743c1595fb9dcdd461/opentelemetry_instrumentation-0.61b0-py3-none-any.whl", hash = "sha256:92a93a280e69788e8f88391247cc530fd81f16f2b011979d4d6398f805cfbc63", size = 33448, upload-time = "2026-03-04T14:19:02.447Z" }, + { url = "https://files.pythonhosted.org/packages/ae/45/a38e74da3f1b5c82c97289da91d978caa04321877f0ab170fc620a0753f2/opentelemetry_instrumentation-0.63b0-py3-none-any.whl", hash = "sha256:984b18763b652a881ac5a596098d89923f74cf53a658c2dde660387e018147ca", size = 35574, upload-time = "2026-05-19T09:46:07.257Z" }, ] [[package]] name = "opentelemetry-instrumentation-aiohttp-client" -version = "0.61b0" +version = "0.63b0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "opentelemetry-api", marker = "python_full_version >= '3.12' or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-gpu') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-jax') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-miniswe') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-tpu') or (extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-jax') or (extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-miniswe') or (extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-tpu') or (extra == 'extra-5-skyrl-jax' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe') or (extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-tpu') or (extra == 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu')" }, @@ -6815,48 +6875,268 @@ dependencies = [ { name = "opentelemetry-util-http", marker = "python_full_version >= '3.12' or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-gpu') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-jax') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-miniswe') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-tpu') or (extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-jax') or (extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-miniswe') or (extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-tpu') or (extra == 'extra-5-skyrl-jax' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe') or (extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-tpu') or (extra == 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu')" }, { name = "wrapt", marker = "python_full_version >= '3.12' or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-gpu') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-jax') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-miniswe') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-tpu') or (extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-jax') or (extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-miniswe') or (extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-tpu') or (extra == 'extra-5-skyrl-jax' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe') or (extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-tpu') or (extra == 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu')" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/6f/6d/24fed4de661de107f2426b28bbd87b51eaab28a2339b62f269a36ae24505/opentelemetry_instrumentation_aiohttp_client-0.61b0.tar.gz", hash = "sha256:c53ab3b88efcb7ce98c1129cc0389f0a1f214eb3675269b6c157770adcf47877", size = 19292, upload-time = "2026-03-04T14:20:18.408Z" } +sdist = { url = "https://files.pythonhosted.org/packages/48/5f/1032ad6321d54741dc9e3326d0714cc0b9959b270e9b9bb40a246d2329d5/opentelemetry_instrumentation_aiohttp_client-0.63b0.tar.gz", hash = "sha256:c70ae9f22e5e57cd86b9ba6941f7ae22888a448ddbf78334a0a3bef25ff0bb6c", size = 19042, upload-time = "2026-05-19T09:47:07.464Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/df/f3/1edc42716521a3f754ac32ffb908f102e0f131f8e43fcd9ab29cab286723/opentelemetry_instrumentation_aiohttp_client-0.61b0-py3-none-any.whl", hash = "sha256:09bc47514c162507b357366ce15578743fd6305078cf7d872db1c99c13fa6972", size = 14534, upload-time = "2026-03-04T14:19:05.165Z" }, + { url = "https://files.pythonhosted.org/packages/cf/cc/0aed011ea84da16735ad176c36ccaa39265a6c2e6a3628287aaa0b723d7c/opentelemetry_instrumentation_aiohttp_client-0.63b0-py3-none-any.whl", hash = "sha256:7bbdf49bb0880cb7da888e0c463be6cd175a1deec1555283b587272e739f985e", size = 13677, upload-time = "2026-05-19T09:46:09.444Z" }, ] [[package]] name = "opentelemetry-proto" version = "1.40.0" source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version < '3.12' and platform_machine != 'arm64' and sys_platform == 'darwin'", + "python_full_version < '3.12' and platform_machine == 'arm64' and sys_platform == 'darwin'", + "python_full_version < '3.12' and sys_platform != 'darwin' and sys_platform != 'linux'", +] dependencies = [ - { name = "protobuf", marker = "python_full_version >= '3.12' or (python_full_version < '3.12' and extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-jax') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-megatron') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-miniswe') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-tpu') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-jax' and extra == 'extra-5-skyrl-megatron') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-tpu') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu') or (sys_platform == 'linux' and extra == 'extra-5-skyrl-fsdp') or (sys_platform == 'linux' and extra != 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-gpu') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-jax') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-miniswe') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-tpu') or (extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-miniswe') or (extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-tpu') or (extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu')" }, + { name = "protobuf", marker = "(python_full_version < '3.12' and sys_platform != 'linux') or (python_full_version >= '3.12' and extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp') or (python_full_version >= '3.12' and extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-gpu') or (python_full_version >= '3.12' and extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-jax') or (python_full_version >= '3.12' and extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-megatron') or (python_full_version >= '3.12' and extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-miniswe') or (python_full_version >= '3.12' and extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-tpu') or (python_full_version >= '3.12' and extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-jax') or (python_full_version >= '3.12' and extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-megatron') or (python_full_version >= '3.12' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (python_full_version >= '3.12' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-miniswe') or (python_full_version >= '3.12' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-tpu') or (python_full_version >= '3.12' and extra == 'extra-5-skyrl-jax' and extra == 'extra-5-skyrl-megatron') or (python_full_version >= '3.12' and extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe') or (python_full_version >= '3.12' and extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-tpu') or (python_full_version >= '3.12' and extra == 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu') or (sys_platform == 'linux' and extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp') or (sys_platform == 'linux' and extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-gpu') or (sys_platform == 'linux' and extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-jax') or (sys_platform == 'linux' and extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-megatron') or (sys_platform == 'linux' and extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-miniswe') or (sys_platform == 'linux' and extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-tpu') or (sys_platform == 'linux' and extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-jax') or (sys_platform == 'linux' and extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-megatron') or (sys_platform == 'linux' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (sys_platform == 'linux' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-miniswe') or (sys_platform == 'linux' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-tpu') or (sys_platform == 'linux' and extra == 'extra-5-skyrl-jax' and extra == 'extra-5-skyrl-megatron') or (sys_platform == 'linux' and extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe') or (sys_platform == 'linux' and extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-tpu') or (sys_platform == 'linux' and extra == 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu')" }, ] sdist = { url = "https://files.pythonhosted.org/packages/4c/77/dd38991db037fdfce45849491cb61de5ab000f49824a00230afb112a4392/opentelemetry_proto-1.40.0.tar.gz", hash = "sha256:03f639ca129ba513f5819810f5b1f42bcb371391405d99c168fe6937c62febcd", size = 45667, upload-time = "2026-03-04T14:17:31.194Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/b9/b2/189b2577dde745b15625b3214302605b1353436219d42b7912e77fa8dc24/opentelemetry_proto-1.40.0-py3-none-any.whl", hash = "sha256:266c4385d88923a23d63e353e9761af0f47a6ed0d486979777fe4de59dc9b25f", size = 72073, upload-time = "2026-03-04T14:17:16.673Z" }, ] +[[package]] +name = "opentelemetry-proto" +version = "1.42.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.14' and sys_platform == 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra == 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "(python_full_version == '3.13.*' and platform_machine != 'aarch64' and sys_platform == 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra == 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu') or (python_full_version == '3.13.*' and platform_python_implementation != 'CPython' and sys_platform == 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra == 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu')", + "python_full_version == '3.13.*' and platform_machine == 'aarch64' and platform_python_implementation == 'CPython' and sys_platform == 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra == 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.12.*' and platform_machine != 'x86_64' and sys_platform == 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra == 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra == 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "(python_full_version < '3.12' and platform_machine != 'aarch64' and sys_platform == 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra == 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu') or (python_full_version < '3.12' and platform_python_implementation != 'CPython' and sys_platform == 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra == 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu')", + "python_full_version < '3.12' and platform_machine == 'aarch64' and platform_python_implementation == 'CPython' and sys_platform == 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra == 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version >= '3.14' and platform_machine != 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra == 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.13.*' and platform_machine != 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra == 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.12.*' and platform_machine != 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra == 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version >= '3.14' and platform_machine == 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra == 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.13.*' and platform_machine == 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra == 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.12.*' and platform_machine == 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra == 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra == 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra == 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra == 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version >= '3.14' and sys_platform == 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu'", + "python_full_version == '3.13.*' and sys_platform == 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu'", + "python_full_version == '3.12.*' and platform_machine != 'x86_64' and sys_platform == 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu'", + "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu'", + "python_full_version < '3.12' and sys_platform == 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu'", + "python_full_version >= '3.14' and platform_machine != 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu'", + "python_full_version == '3.13.*' and platform_machine != 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu'", + "python_full_version == '3.12.*' and platform_machine != 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu'", + "python_full_version >= '3.14' and platform_machine == 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu'", + "python_full_version == '3.13.*' and platform_machine == 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu'", + "python_full_version == '3.12.*' and platform_machine == 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu'", + "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu'", + "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu'", + "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu'", + "python_full_version >= '3.14' and sys_platform == 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.13.*' and sys_platform == 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.12.*' and platform_machine != 'x86_64' and sys_platform == 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version < '3.12' and sys_platform == 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version >= '3.14' and platform_machine != 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.13.*' and platform_machine != 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.12.*' and platform_machine != 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version >= '3.14' and platform_machine == 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.13.*' and platform_machine == 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.12.*' and platform_machine == 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version >= '3.14' and sys_platform == 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.13.*' and sys_platform == 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.12.*' and platform_machine != 'x86_64' and sys_platform == 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version < '3.12' and sys_platform == 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version >= '3.14' and platform_machine != 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.13.*' and platform_machine != 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.12.*' and platform_machine != 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version >= '3.14' and platform_machine == 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.13.*' and platform_machine == 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.12.*' and platform_machine == 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version >= '3.14' and sys_platform == 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.13.*' and sys_platform == 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.12.*' and platform_machine != 'x86_64' and sys_platform == 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version < '3.12' and sys_platform == 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version >= '3.14' and platform_machine != 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.13.*' and platform_machine != 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.12.*' and platform_machine != 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version >= '3.14' and platform_machine == 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.13.*' and platform_machine == 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.12.*' and platform_machine == 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux' and extra != 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu'", + "python_full_version >= '3.14' and sys_platform == 'linux' and extra != 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu'", + "python_full_version == '3.13.*' and sys_platform == 'linux' and extra != 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu'", + "python_full_version == '3.12.*' and platform_machine != 'x86_64' and sys_platform == 'linux' and extra != 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu'", + "python_full_version < '3.12' and sys_platform == 'linux' and extra != 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu'", + "python_full_version >= '3.14' and platform_machine != 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu'", + "python_full_version == '3.13.*' and platform_machine != 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu'", + "python_full_version == '3.12.*' and platform_machine != 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu'", + "python_full_version >= '3.14' and platform_machine == 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu'", + "python_full_version == '3.13.*' and platform_machine == 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu'", + "python_full_version == '3.12.*' and platform_machine == 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu'", + "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and extra != 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu'", + "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and extra != 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu'", + "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and extra != 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu'", + "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux' and extra != 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version >= '3.14' and sys_platform == 'linux' and extra != 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.13.*' and sys_platform == 'linux' and extra != 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.12.*' and platform_machine != 'x86_64' and sys_platform == 'linux' and extra != 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version < '3.12' and sys_platform == 'linux' and extra != 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version >= '3.14' and platform_machine != 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.13.*' and platform_machine != 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.12.*' and platform_machine != 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version >= '3.14' and platform_machine == 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.13.*' and platform_machine == 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.12.*' and platform_machine == 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and extra != 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and extra != 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and extra != 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux' and extra != 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version >= '3.14' and sys_platform == 'linux' and extra != 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.13.*' and sys_platform == 'linux' and extra != 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.12.*' and platform_machine != 'x86_64' and sys_platform == 'linux' and extra != 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version < '3.12' and sys_platform == 'linux' and extra != 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version >= '3.14' and platform_machine != 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.13.*' and platform_machine != 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.12.*' and platform_machine != 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version >= '3.14' and platform_machine == 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.13.*' and platform_machine == 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.12.*' and platform_machine == 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and extra != 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and extra != 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and extra != 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux' and extra != 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version >= '3.14' and sys_platform == 'linux' and extra != 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.13.*' and sys_platform == 'linux' and extra != 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.12.*' and platform_machine != 'x86_64' and sys_platform == 'linux' and extra != 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version < '3.12' and sys_platform == 'linux' and extra != 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version >= '3.14' and platform_machine != 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.13.*' and platform_machine != 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.12.*' and platform_machine != 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version >= '3.14' and platform_machine == 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.13.*' and platform_machine == 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.12.*' and platform_machine == 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and extra != 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and extra != 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and extra != 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux' and extra == 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version >= '3.14' and sys_platform == 'linux' and extra == 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "(python_full_version == '3.13.*' and platform_machine != 'aarch64' and sys_platform == 'linux' and extra == 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu') or (python_full_version == '3.13.*' and platform_python_implementation != 'CPython' and sys_platform == 'linux' and extra == 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu')", + "(python_full_version == '3.12.*' and platform_machine != 'aarch64' and platform_machine != 'x86_64' and sys_platform == 'linux' and extra == 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu') or (python_full_version == '3.12.*' and platform_machine == 'aarch64' and platform_python_implementation != 'CPython' and sys_platform == 'linux' and extra == 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu')", + "python_full_version == '3.13.*' and platform_machine == 'aarch64' and platform_python_implementation == 'CPython' and sys_platform == 'linux' and extra == 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.12.*' and platform_machine == 'aarch64' and platform_python_implementation == 'CPython' and sys_platform == 'linux' and extra == 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "(python_full_version < '3.12' and platform_machine != 'aarch64' and sys_platform == 'linux' and extra == 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu') or (python_full_version < '3.12' and platform_python_implementation != 'CPython' and sys_platform == 'linux' and extra == 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu')", + "python_full_version < '3.12' and platform_machine == 'aarch64' and platform_python_implementation == 'CPython' and sys_platform == 'linux' and extra == 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version >= '3.14' and platform_machine != 'arm64' and sys_platform == 'darwin' and extra == 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.13.*' and platform_machine != 'arm64' and sys_platform == 'darwin' and extra == 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.12.*' and platform_machine != 'arm64' and sys_platform == 'darwin' and extra == 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version >= '3.14' and platform_machine == 'arm64' and sys_platform == 'darwin' and extra == 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.13.*' and platform_machine == 'arm64' and sys_platform == 'darwin' and extra == 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.12.*' and platform_machine == 'arm64' and sys_platform == 'darwin' and extra == 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and extra == 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and extra == 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and extra == 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version >= '3.14' and sys_platform == 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu'", + "python_full_version == '3.13.*' and sys_platform == 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu'", + "python_full_version == '3.12.*' and platform_machine != 'x86_64' and sys_platform == 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu'", + "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu'", + "python_full_version < '3.12' and sys_platform == 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu'", + "python_full_version >= '3.14' and platform_machine != 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu'", + "python_full_version == '3.13.*' and platform_machine != 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu'", + "python_full_version == '3.12.*' and platform_machine != 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu'", + "python_full_version >= '3.14' and platform_machine == 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu'", + "python_full_version == '3.13.*' and platform_machine == 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu'", + "python_full_version == '3.12.*' and platform_machine == 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu'", + "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu'", + "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu'", + "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu'", + "python_full_version >= '3.14' and sys_platform == 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.13.*' and sys_platform == 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.12.*' and platform_machine != 'x86_64' and sys_platform == 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version < '3.12' and sys_platform == 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version >= '3.14' and platform_machine != 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.13.*' and platform_machine != 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.12.*' and platform_machine != 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version >= '3.14' and platform_machine == 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.13.*' and platform_machine == 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.12.*' and platform_machine == 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version >= '3.14' and sys_platform == 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.13.*' and sys_platform == 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.12.*' and platform_machine != 'x86_64' and sys_platform == 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version < '3.12' and sys_platform == 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version >= '3.14' and platform_machine != 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.13.*' and platform_machine != 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.12.*' and platform_machine != 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version >= '3.14' and platform_machine == 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.13.*' and platform_machine == 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.12.*' and platform_machine == 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version >= '3.14' and sys_platform == 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.13.*' and sys_platform == 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.12.*' and platform_machine != 'x86_64' and sys_platform == 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version < '3.12' and sys_platform == 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version >= '3.14' and platform_machine != 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.13.*' and platform_machine != 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.12.*' and platform_machine != 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version >= '3.14' and platform_machine == 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.13.*' and platform_machine == 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.12.*' and platform_machine == 'arm64' and sys_platform == 'darwin' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.13.*' and sys_platform != 'darwin' and sys_platform != 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", + "python_full_version == '3.12.*' and sys_platform != 'darwin' and sys_platform != 'linux' and extra != 'extra-5-skyrl-flashrl' and extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-gpu' and extra != 'extra-5-skyrl-jax' and extra != 'extra-5-skyrl-megatron' and extra != 'extra-5-skyrl-miniswe' and extra != 'extra-5-skyrl-tpu'", +] +dependencies = [ + { name = "protobuf", marker = "python_full_version >= '3.12' or (python_full_version < '3.12' and extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-gpu') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-jax') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-megatron') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-miniswe') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-tpu') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-jax') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-megatron') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-miniswe') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-tpu') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-jax' and extra == 'extra-5-skyrl-megatron') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-tpu') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu') or sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/71/2c/7c56a19498b46da4c54dc4e765c95d17f8fec2ba86bec1817b41ae635360/opentelemetry_proto-1.42.0.tar.gz", hash = "sha256:5d56a9067b631ea931a135d7b86428ae99649f591d4db69b9fc8c8e0465fce65", size = 45841, upload-time = "2026-05-19T09:46:42.058Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2d/ad/ff5f619a04cddb4936ead0dd8f590c5b373c5b4b9f2eef555e9d3d951ccb/opentelemetry_proto-1.42.0-py3-none-any.whl", hash = "sha256:2c0716a37e5c12efef37cbd01906d649b7fb85c85ac687518d0bd28527c6498e", size = 71779, upload-time = "2026-05-19T09:46:24.536Z" }, +] + [[package]] name = "opentelemetry-sdk" -version = "1.40.0" +version = "1.42.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "opentelemetry-api", marker = "python_full_version >= '3.12' or (python_full_version < '3.12' and extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-jax') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-megatron') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-miniswe') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-tpu') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-jax' and extra == 'extra-5-skyrl-megatron') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-tpu') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu') or (sys_platform == 'linux' and extra == 'extra-5-skyrl-fsdp') or (sys_platform == 'linux' and extra != 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-gpu') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-jax') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-miniswe') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-tpu') or (extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-miniswe') or (extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-tpu') or (extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu')" }, - { name = "opentelemetry-semantic-conventions", marker = "python_full_version >= '3.12' or (python_full_version < '3.12' and extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-jax') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-megatron') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-miniswe') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-tpu') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-jax' and extra == 'extra-5-skyrl-megatron') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-tpu') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu') or (sys_platform == 'linux' and extra == 'extra-5-skyrl-fsdp') or (sys_platform == 'linux' and extra != 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-gpu') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-jax') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-miniswe') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-tpu') or (extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-miniswe') or (extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-tpu') or (extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu')" }, - { name = "typing-extensions", marker = "python_full_version >= '3.12' or (python_full_version < '3.12' and extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-jax') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-megatron') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-miniswe') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-tpu') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-jax' and extra == 'extra-5-skyrl-megatron') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-tpu') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu') or (sys_platform == 'linux' and extra == 'extra-5-skyrl-fsdp') or (sys_platform == 'linux' and extra != 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-gpu') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-jax') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-miniswe') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-tpu') or (extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-miniswe') or (extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-tpu') or (extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu')" }, + { name = "opentelemetry-api" }, + { name = "opentelemetry-semantic-conventions" }, + { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/58/fd/3c3125b20ba18ce2155ba9ea74acb0ae5d25f8cd39cfd37455601b7955cc/opentelemetry_sdk-1.40.0.tar.gz", hash = "sha256:18e9f5ec20d859d268c7cb3c5198c8d105d073714db3de50b593b8c1345a48f2", size = 184252, upload-time = "2026-03-04T14:17:31.87Z" } +sdist = { url = "https://files.pythonhosted.org/packages/b7/c9/dabaaf1c754a57b82b5a36aeca3806d92c1877ccfb12a697b65f88bf027c/opentelemetry_sdk-1.42.0.tar.gz", hash = "sha256:2479e462cc69357825c2c847ce4a601bc1b17e1279aa7f80d3490f0ae614d0e5", size = 239072, upload-time = "2026-05-19T09:46:42.992Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/2c/c5/6a852903d8bfac758c6dc6e9a68b015d3c33f2f1be5e9591e0f4b69c7e0a/opentelemetry_sdk-1.40.0-py3-none-any.whl", hash = "sha256:787d2154a71f4b3d81f20524a8ce061b7db667d24e46753f32a7bc48f1c1f3f1", size = 141951, upload-time = "2026-03-04T14:17:17.961Z" }, + { url = "https://files.pythonhosted.org/packages/7b/7d/16bf9a9d42ebbd1679e0cda018d57a0712f3b6f6f1e7ae5ef3c7ee5927c0/opentelemetry_sdk-1.42.0-py3-none-any.whl", hash = "sha256:ec4a4f69e15220b3d7bccd93217aac745682bb6435b9381f7bb44cb7e07b4f2b", size = 170879, upload-time = "2026-05-19T09:46:25.871Z" }, ] [[package]] name = "opentelemetry-semantic-conventions" -version = "0.61b0" +version = "0.63b0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "opentelemetry-api", marker = "python_full_version >= '3.12' or (python_full_version < '3.12' and extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-jax') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-megatron') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-miniswe') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-tpu') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-jax' and extra == 'extra-5-skyrl-megatron') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-tpu') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu') or (sys_platform == 'linux' and extra == 'extra-5-skyrl-fsdp') or (sys_platform == 'linux' and extra != 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-gpu') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-jax') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-miniswe') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-tpu') or (extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-miniswe') or (extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-tpu') or (extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu')" }, - { name = "typing-extensions", marker = "python_full_version >= '3.12' or (python_full_version < '3.12' and extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-jax') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-megatron') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-miniswe') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-tpu') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-jax' and extra == 'extra-5-skyrl-megatron') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-tpu') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu') or (sys_platform == 'linux' and extra == 'extra-5-skyrl-fsdp') or (sys_platform == 'linux' and extra != 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-gpu') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-jax') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-megatron') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-miniswe') or (extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-tpu') or (extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-miniswe') or (extra != 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-tpu') or (extra != 'extra-5-skyrl-fsdp' and extra != 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu')" }, + { name = "opentelemetry-api" }, + { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/6d/c0/4ae7973f3c2cfd2b6e321f1675626f0dab0a97027cc7a297474c9c8f3d04/opentelemetry_semantic_conventions-0.61b0.tar.gz", hash = "sha256:072f65473c5d7c6dc0355b27d6c9d1a679d63b6d4b4b16a9773062cb7e31192a", size = 145755, upload-time = "2026-03-04T14:17:32.664Z" } +sdist = { url = "https://files.pythonhosted.org/packages/20/f8/be4625838aae098c2f9fbdc062a1b3128ebb9e799b891b654ee8cad94897/opentelemetry_semantic_conventions-0.63b0.tar.gz", hash = "sha256:cfea295264654fa324fcef24aa56fb1836fdc0da27db128645dc6aa76115cc6c", size = 148333, upload-time = "2026-05-19T09:46:44.01Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/b2/37/cc6a55e448deaa9b27377d087da8615a3416d8ad523d5960b78dbeadd02a/opentelemetry_semantic_conventions-0.61b0-py3-none-any.whl", hash = "sha256:fa530a96be229795f8cef353739b618148b0fe2b4b3f005e60e262926c4d38e2", size = 231621, upload-time = "2026-03-04T14:17:19.33Z" }, + { url = "https://files.pythonhosted.org/packages/8f/6f/8d0ce225b8fdbb72c97cf4130107d861eafcb3d8e5c3f5891e8556177316/opentelemetry_semantic_conventions-0.63b0-py3-none-any.whl", hash = "sha256:1f3962732b04f43e4fef28173c9a3615b8847b4b2d6386fdc085361b29875ab9", size = 203712, upload-time = "2026-05-19T09:46:27.569Z" }, ] [[package]] @@ -6874,11 +7154,11 @@ wheels = [ [[package]] name = "opentelemetry-util-http" -version = "0.61b0" +version = "0.63b0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/57/3c/f0196223efc5c4ca19f8fad3d5462b171ac6333013335ce540c01af419e9/opentelemetry_util_http-0.61b0.tar.gz", hash = "sha256:1039cb891334ad2731affdf034d8fb8b48c239af9b6dd295e5fabd07f1c95572", size = 11361, upload-time = "2026-03-04T14:20:57.01Z" } +sdist = { url = "https://files.pythonhosted.org/packages/21/cf/0b53c5fe1113fb01e23c6c88b66d8289f979e61cece444576b286a3415fd/opentelemetry_util_http-0.63b0.tar.gz", hash = "sha256:401ddd686cd943ef801b9384b0722b904250f6bf3906951ce4f27bb6b63b04a3", size = 11101, upload-time = "2026-05-19T09:47:42.885Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/0d/e5/c08aaaf2f64288d2b6ef65741d2de5454e64af3e050f34285fb1907492fe/opentelemetry_util_http-0.61b0-py3-none-any.whl", hash = "sha256:8e715e848233e9527ea47e275659ea60a57a75edf5206a3b937e236a6da5fc33", size = 9281, upload-time = "2026-03-04T14:20:08.364Z" }, + { url = "https://files.pythonhosted.org/packages/6e/8c/7fd6f06139cca88a6341bebf2b01f3e97bb8fd8d12e7d3ad3d2ad88b8c49/opentelemetry_util_http-0.63b0-py3-none-any.whl", hash = "sha256:80536361b6348e57503cdae8c1b1be79574d14c30e879367336c5a076fd4f673", size = 8209, upload-time = "2026-05-19T09:47:01.712Z" }, ] [[package]] @@ -7616,6 +7896,21 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/e0/a9/023730ba63db1e494a271cb018dcd361bd2c917ba7004c3e49d5daf795a2/py_cpuinfo-9.0.0-py3-none-any.whl", hash = "sha256:859625bc251f64e21f077d099d4162689c762b5d6a4c3c97553d56241c9674d5", size = 22335, upload-time = "2022-10-25T20:38:27.636Z" }, ] +[[package]] +name = "py-spy" +version = "0.4.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/93/d8/5b71371f50cf153b1307e5a11ac8a4ce4d85651dae946bd7e9a064146545/py_spy-0.4.2.tar.gz", hash = "sha256:90e600b27bb6bb40479637baca5a5b4bc2ba3395c93d889e672315d93042c4ae", size = 286374, upload-time = "2026-04-24T22:08:54.906Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ef/21/ec030145a0c7992bd4b9eafb2f06f56358b3a5339eab4a16534baf3c69aa/py_spy-0.4.2-py2.py3-none-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:1ccf688393105111684435f035bc14ec3f22117dd2b85b2414612cf27a22755a", size = 3743992, upload-time = "2026-04-24T22:08:45.438Z" }, + { url = "https://files.pythonhosted.org/packages/50/80/de5fd27243c2be03692ecd317bf0dbe24b4c6f78f689ce111e7277a7cb09/py_spy-0.4.2-py2.py3-none-macosx_11_0_arm64.whl", hash = "sha256:a0e6f6810ccf0fc5e64e85e0182a5b626c4496eec01b14fb8755154b363a4831", size = 1859057, upload-time = "2026-04-24T22:08:46.946Z" }, + { url = "https://files.pythonhosted.org/packages/89/23/3eb4c23c684ebd667674ce1d076ae855e0621d1d9bd5e052aa3f7982f757/py_spy-0.4.2-py2.py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:142887e984a4e541071c99a4401ff8c3770f255d329dbd0f64e8c1dd51882cce", size = 2828136, upload-time = "2026-04-24T22:08:48.519Z" }, + { url = "https://files.pythonhosted.org/packages/ca/01/6314152cf9ad3310ebacbf2c47b5ed858086530f8e12b1a665725ca5e0f4/py_spy-0.4.2-py2.py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7f1c6d9b0e2379ead5bf792df43f4cf36153aa79e6dda4fb8ac7740cf8017110", size = 2857707, upload-time = "2026-04-24T22:08:49.677Z" }, + { url = "https://files.pythonhosted.org/packages/cc/1f/0960a129d504728d28a51dbd5a04ce94031eb75bac676341da7aefdd8232/py_spy-0.4.2-py2.py3-none-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:24720573f95230653b457671a1dcc3c5a381fcf4e92677761e328a430ad251b2", size = 2301852, upload-time = "2026-04-24T22:08:51.152Z" }, + { url = "https://files.pythonhosted.org/packages/f9/34/dd7d3c763a00b7b965e25a5eab0acd1a345dbaf0f45fffe595278873a1c0/py_spy-0.4.2-py2.py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:aeb0323409199c785f730645e9f4bb7a7b9ca2c481f2c331a55642b5d13fa52f", size = 2936518, upload-time = "2026-04-24T22:08:52.264Z" }, + { url = "https://files.pythonhosted.org/packages/6f/ed/1409cdb557e558a6c98003ab12fdd4284699e158c167c187cb0f124eea4c/py_spy-0.4.2-py2.py3-none-win_amd64.whl", hash = "sha256:8b06a353c177677e4e1701b288d8c58e2f8d4208ee81a8048d9f72ba800918f8", size = 1894002, upload-time = "2026-04-24T22:08:53.811Z" }, +] + [[package]] name = "pyarrow" version = "23.0.1" @@ -8493,6 +8788,25 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/ac/87/3cdf6d0504659d8192baa6576dd7a17ea395a4d969010274f7cc0e894281/ray-2.51.1-cp313-cp313-manylinux2014_x86_64.whl", hash = "sha256:265ecd6fd6d4a695b09c686e17d58fca0c09e7198c073628ae7bf4974b03e9ca", size = 71269225, upload-time = "2025-11-01T03:24:55.929Z" }, ] +[package.optional-dependencies] +default = [ + { name = "aiohttp" }, + { name = "aiohttp-cors" }, + { name = "colorful" }, + { name = "grpcio" }, + { name = "opencensus" }, + { name = "opentelemetry-exporter-prometheus" }, + { name = "opentelemetry-proto", version = "1.40.0", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.12' and sys_platform != 'linux') or (python_full_version >= '3.12' and extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp') or (python_full_version >= '3.12' and extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-gpu') or (python_full_version >= '3.12' and extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-jax') or (python_full_version >= '3.12' and extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-megatron') or (python_full_version >= '3.12' and extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-miniswe') or (python_full_version >= '3.12' and extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-tpu') or (python_full_version >= '3.12' and extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-jax') or (python_full_version >= '3.12' and extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-megatron') or (python_full_version >= '3.12' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (python_full_version >= '3.12' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-miniswe') or (python_full_version >= '3.12' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-tpu') or (python_full_version >= '3.12' and extra == 'extra-5-skyrl-jax' and extra == 'extra-5-skyrl-megatron') or (python_full_version >= '3.12' and extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe') or (python_full_version >= '3.12' and extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-tpu') or (python_full_version >= '3.12' and extra == 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu') or (sys_platform == 'linux' and extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp') or (sys_platform == 'linux' and extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-gpu') or (sys_platform == 'linux' and extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-jax') or (sys_platform == 'linux' and extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-megatron') or (sys_platform == 'linux' and extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-miniswe') or (sys_platform == 'linux' and extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-tpu') or (sys_platform == 'linux' and extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-jax') or (sys_platform == 'linux' and extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-megatron') or (sys_platform == 'linux' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (sys_platform == 'linux' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-miniswe') or (sys_platform == 'linux' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-tpu') or (sys_platform == 'linux' and extra == 'extra-5-skyrl-jax' and extra == 'extra-5-skyrl-megatron') or (sys_platform == 'linux' and extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe') or (sys_platform == 'linux' and extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-tpu') or (sys_platform == 'linux' and extra == 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu')" }, + { name = "opentelemetry-proto", version = "1.42.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12' or (python_full_version < '3.12' and extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-fsdp') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-gpu') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-jax') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-megatron') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-miniswe') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-flashrl' and extra == 'extra-5-skyrl-tpu') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-jax') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-megatron') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-megatron') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-miniswe') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-gpu' and extra == 'extra-5-skyrl-tpu') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-jax' and extra == 'extra-5-skyrl-megatron') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-miniswe') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-megatron' and extra == 'extra-5-skyrl-tpu') or (python_full_version < '3.12' and extra == 'extra-5-skyrl-miniswe' and extra == 'extra-5-skyrl-tpu') or sys_platform == 'linux'" }, + { name = "opentelemetry-sdk" }, + { name = "prometheus-client" }, + { name = "py-spy" }, + { name = "pydantic" }, + { name = "requests" }, + { name = "smart-open" }, + { name = "virtualenv" }, +] + [[package]] name = "realtime" version = "2.28.3" @@ -9545,6 +9859,9 @@ miniswe = [ { name = "vllm-router", marker = "sys_platform == 'linux' or (extra == 'extra-5-skyrl-fsdp' and extra == 'extra-5-skyrl-jax')" }, { name = "wandb" }, ] +ray = [ + { name = "ray", extra = ["default"] }, +] skyrl-train = [ { name = "accelerate" }, { name = "datasets" }, @@ -9666,6 +9983,7 @@ requires-dist = [ { name = "pytest-asyncio", marker = "extra == 'dev'" }, { name = "pytest-forked", marker = "extra == 'dev'" }, { name = "ray", marker = "extra == 'skyrl-train'", specifier = "==2.51.1" }, + { name = "ray", extras = ["default"], marker = "extra == 'ray'", specifier = "==2.51.1" }, { name = "rich", specifier = ">=14.1.0" }, { name = "s3fs", marker = "extra == 'skyrl-train'" }, { name = "safetensors", specifier = ">=0.6.2" }, @@ -9704,7 +10022,7 @@ requires-dist = [ { name = "vllm-router", marker = "sys_platform == 'linux' and extra == 'skyrl-train'" }, { name = "wandb", marker = "extra == 'skyrl-train'" }, ] -provides-extras = ["gpu", "tpu", "tinker", "aws", "gcp", "azure", "jax", "skyrl-train", "fsdp", "megatron", "flashrl", "miniswe", "harbor", "dev"] +provides-extras = ["gpu", "tpu", "tinker", "ray", "aws", "gcp", "azure", "jax", "skyrl-train", "fsdp", "megatron", "flashrl", "miniswe", "harbor", "dev"] [[package]] name = "skyrl-gym" @@ -9727,6 +10045,18 @@ requires-dist = [ ] provides-extras = ["dev"] +[[package]] +name = "smart-open" +version = "7.6.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "wrapt" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c5/65/3ada667d32675399001bf022ad3d9f3989b57101351ebc71d6fbe2384634/smart_open-7.6.1.tar.gz", hash = "sha256:4347996e7ba21db7cd1e059632e0b30395407e4f6c660d2ddffc8f2a9ae5f990", size = 54754, upload-time = "2026-05-09T06:23:37.06Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/14/78/0f68b93564b8c6b6987a0696c582ba2591a381ab2f733a501909e949f241/smart_open-7.6.1-py3-none-any.whl", hash = "sha256:b4de6aebef023aca91cc9fb372052e1343ba3f152de215bd22391a663e3ddd21", size = 64845, upload-time = "2026-05-09T06:23:35.386Z" }, +] + [[package]] name = "smmap" version = "5.0.3"