diff --git a/skyrl/train/config/sft_config.py b/skyrl/train/config/sft_config.py index 6264dd80bf..33b7988f8d 100644 --- a/skyrl/train/config/sft_config.py +++ b/skyrl/train/config/sft_config.py @@ -173,6 +173,21 @@ def from_cli_overrides(cls, args: Union[List[str], dict]) -> "SFTConfig": seed: int = 42 + # ---- Data loading ---- + num_workers: int = 8 + """Number of worker processes for parallel tokenization during dataset loading. Set to 0 for single-threaded.""" + + # ---- Tokenized dataset caching ---- + cache_dir: str = os.path.join( + os.environ.get("XDG_CACHE_HOME", os.path.expanduser("~/.cache")), "skyrl", "tokenized_datasets" + ) + """Directory to cache tokenized datasets. For multi-node training, set this to an NFS-mounted path so all nodes can + share the cache.""" + force_recache: bool = False + """If True, ignore existing cache and re-tokenize the dataset.""" + disable_cache: bool = False + """If True, disable cache completely (always tokenize from scratch).""" + # ---- Training target ---- train_on_what: TrainOnWhat = TrainOnWhat.LAST_ASSISTANT_MESSAGE """Which tokens to compute loss on. See :class:`TrainOnWhat` for options.""" diff --git a/skyrl/train/sft_trainer.py b/skyrl/train/sft_trainer.py index 85e9c3ead0..b68a1be7c3 100644 --- a/skyrl/train/sft_trainer.py +++ b/skyrl/train/sft_trainer.py @@ -22,17 +22,20 @@ import functools import json +import multiprocessing as mp import os import random +import tempfile from dataclasses import asdict from math import ceil from typing import Any, Optional import ray import torch -from datasets import load_dataset +from datasets import Dataset, load_dataset from loguru import logger from ray.util.placement_group import placement_group +from transformers import AutoTokenizer from skyrl.backends.skyrl_train.training_batch import ( TrainingInputBatch, @@ -67,6 +70,224 @@ # --------------------------------------------------------------------------- +def _tokenize_chat_slice_worker(args): + """Worker function for parallel chat-format tokenization with slice-based loading. + + Each worker loads the full dataset (HF caches it locally after the parent's + first call) and tokenizes only its assigned index range. + + Must be top-level for pickling with spawn. + """ + ( + dataset_name, + dataset_split, + start_idx, + end_idx, + tokenizer_path, + max_length, + messages_key, + train_on_what_str, + tools_key, + system_key, + ) = args + + # Worker loads tokenizer from cached path + tokenizer = AutoTokenizer.from_pretrained( + tokenizer_path, + trust_remote_code=True, + use_fast=True, + local_files_only=True, + ) + + train_on_what = TrainOnWhat(train_on_what_str) + + # Reload the dataset using the original split string and slice by index. + # The parent has already loaded once so this hits the HF cache. + dataset = load_dataset(dataset_name, split=dataset_split) + dataset_slice = dataset.select(range(start_idx, end_idx)) + + # Tokenize and filter inline + results = [] + for example in dataset_slice: + tokenized = tokenize_chat_example( + example, + tokenizer, + max_length=max_length, + messages_key=messages_key, + train_on_what=train_on_what, + tools_key=tools_key, + system_key=system_key, + ) + if tokenized is not None: + results.append(tokenized) + + return results + + +def _tokenize_alpaca_slice_worker(args): + """Worker function for parallel Alpaca-format tokenization with slice-based loading. + + Each worker loads the full dataset (HF caches it locally after the parent's + first call) and tokenizes only its assigned index range. + + Must be top-level for pickling with spawn. + """ + dataset_name, dataset_split, start_idx, end_idx, tokenizer_path, max_length = args + + # Worker loads tokenizer from cached path + tokenizer = AutoTokenizer.from_pretrained( + tokenizer_path, + trust_remote_code=True, + use_fast=True, + local_files_only=True, + ) + + # Reload the dataset using the original split string and slice by index. + dataset = load_dataset(dataset_name, split=dataset_split) + dataset_slice = dataset.select(range(start_idx, end_idx)) + + # Tokenize and filter inline + results = [] + for example in dataset_slice: + tokenized = tokenize_sft_example(example, tokenizer, max_length) + if tokenized is not None: + results.append(tokenized) + + return results + + +def _compute_cache_key( + dataset_name: str, + dataset_split: str, + model_path: str, + max_length: Optional[int], + messages_key: str, + train_on_what: str, + tools_key: Optional[str], + system_key: Optional[str], +) -> str: + """Compute a cache key (hash) for a tokenized dataset. + + The hash uniquely identifies the dataset and tokenization parameters so + that cached results can be safely reused when parameters match. + + Args: + dataset_name: HuggingFace dataset name + dataset_split: Dataset split string (e.g., "train[:100000]") + model_path: Model name/path (tokenizer identity) + max_length: Maximum sequence length for truncation + messages_key: Column name for messages + train_on_what: Training target (last_assistant_message or all_assistant_messages) + tools_key: Column name for tools (if applicable) + system_key: Column name for system prompt (if applicable) + + Returns: + A hex string hash (e.g., "a3f2c1...") + """ + import hashlib + + # Build a deterministic string from all relevant parameters + cache_params = json.dumps( + { + "dataset_name": dataset_name, + "dataset_split": dataset_split, + "model_path": model_path, + "max_length": max_length, + "messages_key": messages_key, + "train_on_what": train_on_what, + "tools_key": tools_key, + "system_key": system_key, + }, + sort_keys=True, + ) + return hashlib.sha256(cache_params.encode()).hexdigest()[:16] + + +def _get_cache_path(cache_dir: str, cache_key: str) -> str: + """Get the full path to a cached tokenized dataset. + + The cache is stored as an arrow-backed HuggingFace dataset on disk + (``Dataset.save_to_disk``), so this path is a directory, not a file. + + Args: + cache_dir: Base cache directory + cache_key: Cache key (hash) for this dataset + + Returns: + Path to the cache directory (e.g., /path/to/cache/a3f2c1). + """ + return os.path.join(cache_dir, cache_key) + + +def _load_from_cache(cache_path: str) -> Optional[list]: + """Load tokenized dataset from cache. + + Reads an arrow-backed HF ``Dataset`` directory written by + :func:`_save_to_cache` and materializes it back to the ``list[dict]`` + representation expected by the trainer (which slices, shuffles, and + concatenates the result during the training loop). + + Args: + cache_path: Path to cached dataset directory. + + Returns: + List of tokenized examples, or ``None`` if the cache directory + does not exist or fails to load. + """ + if not os.path.isdir(cache_path): + return None + + try: + logger.info(f"Loading tokenized dataset from cache: {cache_path}") + dataset = Dataset.load_from_disk(cache_path) + tokenized = dataset.to_list() + logger.info(f"Loaded {len(tokenized)} examples from cache") + return tokenized + except Exception as e: + logger.warning(f"Failed to load cache from {cache_path}: {e}") + return None + + +def _save_to_cache(cache_path: str, tokenized: list) -> None: + """Save tokenized dataset to cache. + + Materializes the in-memory ``list[dict]`` as a HuggingFace ``Dataset`` + and writes it via ``save_to_disk``. At 1M-row scale, the arrow-backed, + memory-mapped format reads and writes dramatically faster than pickle + while also being portable across Python versions. The write goes to a + sibling ``.tmp`` directory which is then atomically renamed + onto ``cache_path`` for NFS safety. + + Args: + cache_path: Path to the cache directory to create. + tokenized: List of tokenized examples. + """ + try: + import shutil + + parent_dir = os.path.dirname(cache_path) + os.makedirs(parent_dir, exist_ok=True) + + logger.info(f"Saving {len(tokenized)} examples to cache: {cache_path}") + # Build the HF Dataset from rows and write to a sibling temp dir. + # An atomic rename onto cache_path makes concurrent readers see only + # a fully-written cache (NFS-safe; matches the previous pickle path). + dataset = Dataset.from_list(tokenized) + temp_path = cache_path + ".tmp" + # Clean up any stale temp dir from an interrupted prior run. + if os.path.isdir(temp_path): + shutil.rmtree(temp_path) + dataset.save_to_disk(temp_path) + # If a previous cache exists at the final path, drop it before + # rename so the swap is the only visible state change. + if os.path.isdir(cache_path): + shutil.rmtree(cache_path) + os.rename(temp_path, cache_path) + logger.info("Cache saved successfully") + except Exception as e: + logger.warning(f"Failed to save cache to {cache_path}: {e}") + + @functools.lru_cache(maxsize=512) def _parse_tools_str(tools: str) -> Optional[tuple]: """Parse a JSON-encoded tools string. Cached because tool-calling datasets @@ -549,13 +770,24 @@ def _init_tracker(self): # ------------------------------------------------------------------ # def _load_and_tokenize(self, dataset_name: str, dataset_split: str) -> list: - """Load and tokenize a dataset. + """Load and tokenize a dataset with caching support. Auto-detects the dataset format based on column names: - If a ``messages_key`` column exists, uses chat-format tokenization. - If ``instruction`` and ``output`` columns exist, uses Alpaca-format tokenization. + Uses manual multiprocessing for parallel tokenization when num_workers > 0. + With parallel mode, uses slice-based loading where each worker loads its + own data slice directly from HuggingFace to eliminate pickle overhead. + + Caching: + - Tokenized datasets are cached to disk as a HuggingFace ``Dataset`` + (arrow-backed, memory-mapped) for reuse across runs. + - Cache key is a hash of dataset name, split, model, and tokenization params. + - Set ``force_recache=True`` to ignore cache and re-tokenize. + - Set ``disable_cache=True`` to disable caching entirely. + Args: dataset_name: HuggingFace dataset name (e.g. ``"yahma/alpaca-cleaned"``). dataset_split: Dataset split (e.g. ``"train[:100]"`` or ``"test"``). @@ -563,43 +795,175 @@ def _load_and_tokenize(self, dataset_name: str, dataset_split: str) -> list: Returns a list of tokenized examples (dicts with ``input_ids``, ``attention_mask``, ``num_actions``). """ + # Check cache first (unless disabled or force_recache) + if not self.sft_cfg.disable_cache: + cache_dir = self.sft_cfg.cache_dir + + # Compute cache key + tools_key = self.sft_cfg.tools_key if self.sft_cfg.tools_key else None + system_key = self.sft_cfg.system_key if self.sft_cfg.system_key else None + cache_key = _compute_cache_key( + dataset_name=dataset_name, + dataset_split=dataset_split, + model_path=self.sft_cfg.model.path, + max_length=self.sft_cfg.max_length, + messages_key=self.sft_cfg.messages_key, + train_on_what=self.sft_cfg.train_on_what.value, + tools_key=tools_key, + system_key=system_key, + ) + cache_path = _get_cache_path(cache_dir, cache_key) + + # Try to load from cache (unless force_recache) + if not self.sft_cfg.force_recache: + cached = _load_from_cache(cache_path) + if cached is not None: + return cached + + logger.info("Cache miss or force_recache=True, tokenizing dataset...") + logger.info(f"Cache key: {cache_key}") + logger.info(f"Loading dataset '{dataset_name}' split='{dataset_split}'...") dataset = load_dataset(dataset_name, split=dataset_split) columns = dataset.column_names - logger.info("Tokenizing dataset...") - - if self.sft_cfg.messages_key in columns: - # Chat format. Tool-calling datasets often ship a per-row ``tools`` - # column (function schemas) and ``system`` column (domain policy) - # alongside ``messages``; thread those through when present. - tools_key = self.sft_cfg.tools_key if self.sft_cfg.tools_key in columns else None - system_key = self.sft_cfg.system_key if self.sft_cfg.system_key in columns else None - tokenized = [ - tokenize_chat_example( - ex, - self.tokenizer, - self.sft_cfg.max_length, - self.sft_cfg.messages_key, - train_on_what=self.sft_cfg.train_on_what, - tools_key=tools_key, - system_key=system_key, + num_workers = self.sft_cfg.num_workers + + # Sequential tokenization path + if num_workers == 0: + logger.info("Tokenizing dataset (sequential)...") + if self.sft_cfg.messages_key in columns: + tools_key = self.sft_cfg.tools_key if self.sft_cfg.tools_key in columns else None + system_key = self.sft_cfg.system_key if self.sft_cfg.system_key in columns else None + tokenized = [ + tokenize_chat_example( + ex, + self.tokenizer, + self.sft_cfg.max_length, + self.sft_cfg.messages_key, + train_on_what=self.sft_cfg.train_on_what, + tools_key=tools_key, + system_key=system_key, + ) + for ex in dataset + ] + elif "instruction" in columns and "output" in columns: + tokenized = [tokenize_sft_example(ex, self.tokenizer, self.sft_cfg.max_length) for ex in dataset] + else: + raise ValueError( + f"Unrecognized dataset format. Expected '{self.sft_cfg.messages_key}' column " + f"(chat format) or 'instruction'+'output' columns (Alpaca format). " + f"Found columns: {columns}" ) - for ex in dataset - ] - elif "instruction" in columns and "output" in columns: - # Alpaca format - tokenized = [tokenize_sft_example(ex, self.tokenizer, self.sft_cfg.max_length) for ex in dataset] - else: - raise ValueError( - f"Unrecognized dataset format. Expected '{self.sft_cfg.messages_key}' column " - f"(chat format) or 'instruction'+'output' columns (Alpaca format). " - f"Found columns: {columns}" - ) + tokenized = [ex for ex in tokenized if ex is not None] + logger.info(f"Tokenized {len(tokenized)} examples (filtered from {len(dataset)})") + + # Save to cache if enabled + if not self.sft_cfg.disable_cache: + # TODO (sumanthrh): Currently we use a simple list instead of dataset + stateful dataloader + # for simplicity but for caching we use HF Dataset since file sizes can get large + # We should migrate to using HF datasets + a dataloader so that we don't materialize + # the full dataset in memory + _save_to_cache(cache_path, tokenized) + + return tokenized + + # Parallel tokenization path with slice-based loading + logger.info(f"Tokenizing dataset with {num_workers} workers (slice-based loading)...") + + # Cache tokenizer to temp dir for fast worker loading + tokenizer_cache_dir = tempfile.mkdtemp(prefix="skyrl_tokenizer_") + try: + self.tokenizer.save_pretrained(tokenizer_cache_dir) + + # Slice the already-loaded dataset; the original split string is + # forwarded to workers verbatim so HF parses it (no local regex). + dataset_size = len(dataset) + chunk_size = max(1, dataset_size // num_workers) + + # Generate worker slice boundaries + worker_args = [] + for worker_idx in range(num_workers): + worker_start = worker_idx * chunk_size + # Last worker takes any remainder + if worker_idx == num_workers - 1: + worker_end = dataset_size + else: + worker_end = min((worker_idx + 1) * chunk_size, dataset_size) + + # Skip empty slices + if worker_start >= worker_end: + continue + + # Prepare worker arguments based on format + if self.sft_cfg.messages_key in columns: + tools_key = self.sft_cfg.tools_key if self.sft_cfg.tools_key in columns else None + system_key = self.sft_cfg.system_key if self.sft_cfg.system_key in columns else None + worker_args.append( + ( + dataset_name, + dataset_split, + worker_start, + worker_end, + tokenizer_cache_dir, + self.sft_cfg.max_length, + self.sft_cfg.messages_key, + self.sft_cfg.train_on_what.value, + tools_key, + system_key, + ) + ) + elif "instruction" in columns and "output" in columns: + worker_args.append( + ( + dataset_name, + dataset_split, + worker_start, + worker_end, + tokenizer_cache_dir, + self.sft_cfg.max_length, + ) + ) + else: + raise ValueError( + f"Unrecognized dataset format. Expected '{self.sft_cfg.messages_key}' column " + f"(chat format) or 'instruction'+'output' columns (Alpaca format). " + f"Found columns: {columns}" + ) - tokenized = [ex for ex in tokenized if ex is not None] - logger.info(f"Tokenized {len(tokenized)} examples (filtered from {len(dataset)})") - return tokenized + # Select worker function based on format + if self.sft_cfg.messages_key in columns: + worker_fn = _tokenize_chat_slice_worker + else: + worker_fn = _tokenize_alpaca_slice_worker + + logger.info(f"Dividing {dataset_size} examples among {len(worker_args)} workers") + + # Use spawn to avoid Ray fork issues + ctx = mp.get_context("spawn") + + # Process in parallel + with ctx.Pool(processes=num_workers) as pool: + results = pool.map(worker_fn, worker_args) + + # Flatten results + tokenized = [] + for chunk_results in results: + tokenized.extend(chunk_results) + + logger.info(f"Tokenized {len(tokenized)} examples (filtered from {dataset_size})") + + # Save to cache if enabled + if not self.sft_cfg.disable_cache: + _save_to_cache(cache_path, tokenized) + + return tokenized + + finally: + # Cleanup temp tokenizer cache + import shutil + + shutil.rmtree(tokenizer_cache_dir, ignore_errors=True) def load_dataset(self) -> list: """Load and tokenize the training dataset.""" diff --git a/tests/train/test_sft_tokenization.py b/tests/train/test_sft_tokenization.py index 27c7490ff3..9c0b188b0d 100644 --- a/tests/train/test_sft_tokenization.py +++ b/tests/train/test_sft_tokenization.py @@ -5,13 +5,12 @@ """ import json -from dataclasses import dataclass import pytest import torch from transformers import AutoTokenizer -from skyrl.train.config.sft_config import TrainOnWhat +from skyrl.train.config.sft_config import SFTConfig, TrainOnWhat from skyrl.train.generators.utils import get_generation_prompt_ids from skyrl.train.sft_trainer import ( _normalize_chat_messages, @@ -318,14 +317,6 @@ def test_alpaca_no_input_uses_chat_template(tokenizer): # --------------------------------------------------------------------------- -@dataclass -class _FakeSFTConfig: - """Minimal stand-in for SFTConfig used by SFTTrainer.collate_batch.""" - - batch_size: int = 4 - micro_train_batch_size_per_gpu: int = 2 - - def test_loss_norm_sums_to_expected(tokenizer): """After collate_batch normalization, loss_mask encodes the correct per-non-pad-token scaling factor. @@ -338,7 +329,7 @@ def test_loss_norm_sums_to_expected(tokenizer): """ from skyrl.train.sft_trainer import SFTTrainer - cfg = _FakeSFTConfig(batch_size=4, micro_train_batch_size_per_gpu=2) + cfg = SFTConfig(batch_size=4, micro_train_batch_size_per_gpu=2) # Build a batch with known non-pad counts: # Ex 0: 2 actions out of max 4 -> [0, 0, 1, 1] @@ -379,7 +370,7 @@ def test_loss_norm_all_nonpad(tokenizer): = 1 / (micro_batch_size * num_actions).""" from skyrl.train.sft_trainer import SFTTrainer - cfg = _FakeSFTConfig(batch_size=2, micro_train_batch_size_per_gpu=1) + cfg = SFTConfig(batch_size=2, micro_train_batch_size_per_gpu=1) examples = [ _make_example([1, 2, 3], 2), # 2 actions @@ -766,3 +757,172 @@ def test_normalize_strips_tool_calls_off_non_assistant_roles(): assert out[0]["name"] == "alice" assert "tool_calls" not in out[1] assert out[1]["tool_call_id"] == "c0" + + +# --------------------------------------------------------------------------- +# _load_and_tokenize: num_workers > 0 (parallel path) and cache-hit behavior. +# +# The parallel-path test runs real multiprocessing -- no stubs on +# ``mp.get_context``, ``Pool``, or the slice worker. The dataset is written to +# disk as JSONL inside ``tmp_path`` so spawned workers (which re-import the +# module and lose any in-process monkeypatches) can ``load_dataset`` it via the +# directory path. The cache-hit test stays in-process with ``num_workers=0`` +# and monkeypatches ``load_dataset`` to return an in-memory Dataset. +# --------------------------------------------------------------------------- + + +def _make_inmem_dataset(): + """Tiny chat-format Dataset used by parallel/cache tests. Six short rows so + a 2-worker split is non-trivial (3 + 3) without spending real tokenizer time.""" + from datasets import Dataset + + rows = [ + { + "messages": [ + {"role": "user", "content": f"Q{i}: what is {i} + {i}?"}, + {"role": "assistant", "content": f"{2 * i}"}, + ] + } + for i in range(6) + ] + return Dataset.from_list(rows) + + +def _write_inmem_dataset_to_dir(dataset_dir): + """Materialize the in-memory chat fixture as JSONL inside ``dataset_dir``. + + The directory is structured so HF ``load_dataset(, split='train')`` + autodetects the JSON builder. Required for the real-mp parallel test -- + spawned workers re-import the module and cannot see in-process patches, so + the data must live on disk where they can load it independently.""" + import json + import os + + os.makedirs(dataset_dir, exist_ok=True) + rows = [ + { + "messages": [ + {"role": "user", "content": f"Q{i}: what is {i} + {i}?"}, + {"role": "assistant", "content": f"{2 * i}"}, + ] + } + for i in range(6) + ] + with open(os.path.join(dataset_dir, "train.jsonl"), "w") as f: + for r in rows: + f.write(json.dumps(r) + "\n") + + +def _build_trainer(tokenizer, sft_cfg): + """Build a bare SFTTrainer with just the attributes ``_load_and_tokenize`` reads.""" + from skyrl.train.sft_trainer import SFTTrainer + + trainer = object.__new__(SFTTrainer) + trainer.sft_cfg = sft_cfg + trainer.tokenizer = tokenizer + return trainer + + +def test_load_and_tokenize_num_workers_uses_parallel_path(tokenizer, tmp_path): + """``num_workers > 0`` actually runs the real ``mp.Pool`` parallel path and + produces bit-exact output vs ``num_workers=0``. + + The implementation uses ``mp.get_context("spawn")`` -- spawned workers + re-import ``skyrl.train.sft_trainer``, so we can't monkeypatch around them. + Instead the dataset is materialized as JSONL on disk and workers re-load it + via ``load_dataset(, split=...)``. The serial reference run uses the + same directory; equality of (input_ids, attention_mask, num_actions, + loss_mask) across both paths verifies the parallel implementation.""" + dataset_dir = str(tmp_path / "ds") + _write_inmem_dataset_to_dir(dataset_dir) + + # Serial reference: num_workers=0 path. + serial_cfg = SFTConfig(num_workers=0, cache_dir=str(tmp_path / "ser_cache")) + serial_trainer = _build_trainer(tokenizer, serial_cfg) + serial_out = serial_trainer._load_and_tokenize(dataset_dir, "train") + + # Real-multiprocessing run: num_workers=2 path. With 6 rows that's a 3+3 + # split across two spawned worker processes. + parallel_cfg = SFTConfig(num_workers=2, cache_dir=str(tmp_path / "par_cache")) + parallel_trainer = _build_trainer(tokenizer, parallel_cfg) + parallel_out = parallel_trainer._load_and_tokenize(dataset_dir, "train") + + assert len(parallel_out) == len(serial_out) == 6 + for par_ex, ser_ex in zip(parallel_out, serial_out): + assert par_ex["input_ids"] == ser_ex["input_ids"] + assert par_ex["attention_mask"] == ser_ex["attention_mask"] + assert par_ex["num_actions"] == ser_ex["num_actions"] + assert par_ex["loss_mask"] == ser_ex["loss_mask"] + + +def test_load_and_tokenize_cache_hit_skips_retokenization(tokenizer, tmp_path, monkeypatch): + """With caching enabled (default), a second call hits the on-disk HF + dataset cache and does NOT re-tokenize: + - the inner per-row tokenizer is not called on the second run, + - the cache directory exists at the resolved ``_get_cache_path`` path + and contains an HF ``Dataset`` (``dataset_info.json`` is present), + - the two calls return bit-exact equal output.""" + import os + from unittest.mock import MagicMock + + from datasets import Dataset + + from skyrl.train import sft_trainer as sft_mod + + dataset = _make_inmem_dataset() + monkeypatch.setattr(sft_mod, "load_dataset", lambda *a, **kw: dataset) + + cfg = SFTConfig( + num_workers=0, # serial path -- exercises tokenize_chat_example directly + cache_dir=str(tmp_path), + disable_cache=False, + force_recache=False, + ) + trainer = _build_trainer(tokenizer, cfg) + + # First call: cache miss -> tokenizes and writes the HF dataset to disk. + first_out = trainer._load_and_tokenize("dummy/ds", "train") + assert len(first_out) == 6 + + # The cache directory must exist at the path derived from cache_dir + cache_key. + cache_key = sft_mod._compute_cache_key( + dataset_name="dummy/ds", + dataset_split="train", + model_path=cfg.model.path, + max_length=cfg.max_length, + messages_key=cfg.messages_key, + train_on_what=cfg.train_on_what.value, + tools_key=cfg.tools_key, + system_key=cfg.system_key, + ) + expected_cache_path = sft_mod._get_cache_path(str(tmp_path), cache_key) + assert os.path.isdir(expected_cache_path), f"cache directory missing at {expected_cache_path}" + # ``dataset_info.json`` is part of every HF dataset + # written this way, and ``load_from_disk`` round-trips the rows verbatim. + assert os.path.isfile( + os.path.join(expected_cache_path, "dataset_info.json") + ), f"cache at {expected_cache_path} is not an HF dataset" + cached_rows = Dataset.load_from_disk(expected_cache_path).to_list() + assert len(cached_rows) == len(first_out) + + # Second call: cache hit. Spy on tokenize_chat_example AND on _load_from_cache + # so we can prove (a) no re-tokenization happens and (b) the cached dataset + # is what served the result. + tok_spy = MagicMock(side_effect=AssertionError("tokenize_chat_example must not be called on cache hit")) + monkeypatch.setattr(sft_mod, "tokenize_chat_example", tok_spy) + load_spy = MagicMock(wraps=sft_mod._load_from_cache) + monkeypatch.setattr(sft_mod, "_load_from_cache", load_spy) + + second_out = trainer._load_and_tokenize("dummy/ds", "train") + + assert tok_spy.call_count == 0, "cache hit must not re-tokenize" + assert load_spy.call_count == 1, "cache hit must go through _load_from_cache exactly once" + assert load_spy.call_args[0][0] == expected_cache_path + + # Bit-exact equality between fresh-tokenize and cache-hit outputs. + assert len(second_out) == len(first_out) + for a, b in zip(first_out, second_out): + assert a["input_ids"] == b["input_ids"] + assert a["attention_mask"] == b["attention_mask"] + assert a["num_actions"] == b["num_actions"] + assert a["loss_mask"] == b["loss_mask"] 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"