renderers 0.1.12.dev1__tar.gz → 0.1.12.dev2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/PKG-INFO +1 -1
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/renderers/_version.py +2 -2
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/renderers/base.py +1 -1
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/renderers/client.py +4 -6
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/.github/workflows/publish-dev.yml +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/.github/workflows/publish.yml +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/.github/workflows/style.yml +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/.github/workflows/test.yml +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/.gitignore +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/.pre-commit-config.yaml +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/LICENSE +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/README.md +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/docs/renderer-config.md +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/examples/README.md +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/examples/sglang/multiturn_generate_sglang.py +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/examples/sglang/online_multiturn_sglang.py +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/examples/tinker/multiturn_generate_tinker.py +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/examples/transformers/multiturn_generate_transformers.py +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/examples/vllm/multiturn_generate_vllm.py +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/pyproject.toml +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/renderers/__init__.py +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/renderers/configs.py +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/renderers/deepseek_r1.py +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/renderers/deepseek_v3.py +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/renderers/deepseek_v4.py +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/renderers/default.py +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/renderers/gemma4.py +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/renderers/glm45.py +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/renderers/glm5.py +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/renderers/gpt_oss.py +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/renderers/hy3.py +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/renderers/inkling.py +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/renderers/kimi_k2.py +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/renderers/kimi_k25.py +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/renderers/laguna_s21.py +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/renderers/laguna_xs2.py +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/renderers/llama_3.py +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/renderers/minimax_m2.py +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/renderers/nemotron3.py +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/renderers/parsers.py +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/renderers/parsing.py +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/renderers/prime_qwen3.py +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/renderers/qwen3.py +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/renderers/qwen35.py +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/renderers/qwen36.py +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/renderers/qwen38.py +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/renderers/qwen3_vl.py +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/tests/conftest.py +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/tests/parity.py +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/tests/reference_rendering.py +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/tests/test_bridge.py +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/tests/test_build_helpers.py +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/tests/test_client.py +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/tests/test_deepseek_r1.py +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/tests/test_deepseek_v4.py +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/tests/test_disabled_thinking_stability.py +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/tests/test_gemma4.py +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/tests/test_glm_tool_name_validation.py +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/tests/test_hy3.py +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/tests/test_incremental.py +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/tests/test_inkling.py +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/tests/test_is_content.py +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/tests/test_kimi_k25_tool_schema.py +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/tests/test_laguna_m1.py +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/tests/test_laguna_xs21.py +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/tests/test_llama_3.py +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/tests/test_load_tokenizer.py +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/tests/test_message_indices.py +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/tests/test_message_tool_names.py +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/tests/test_multimodal.py +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/tests/test_nemotron3_ultra.py +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/tests/test_offsetless_tokenizers.py +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/tests/test_parity.py +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/tests/test_parse_response.py +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/tests/test_parse_response_robustness.py +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/tests/test_parsers.py +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/tests/test_preserve_thinking.py +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/tests/test_qwen35_size_coverage.py +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/tests/test_qwen38.py +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/tests/test_renderer_config.py +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/tests/test_roundtrip.py +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/tests/test_sampled_mask.py +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/tests/test_tokens_per_message.py +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/tests/test_tool_arg_type_preservation.py +0 -0
- {renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/uv.lock +0 -0
|
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
|
|
|
18
18
|
commit_id: str | None
|
|
19
19
|
__commit_id__: str | None
|
|
20
20
|
|
|
21
|
-
__version__ = version = '0.1.12.
|
|
22
|
-
__version_tuple__ = version_tuple = (0, 1, 12, '
|
|
21
|
+
__version__ = version = '0.1.12.dev2'
|
|
22
|
+
__version_tuple__ = version_tuple = (0, 1, 12, 'dev2')
|
|
23
23
|
|
|
24
24
|
__commit_id__ = commit_id = None
|
|
@@ -2095,7 +2095,7 @@ def build_trajectory_step(
|
|
|
2095
2095
|
"completion_mask": [True] * len(completion_ids),
|
|
2096
2096
|
"completion_logprobs": [0.0] * len(completion_ids),
|
|
2097
2097
|
"routed_experts": None,
|
|
2098
|
-
"
|
|
2098
|
+
"sampling_mask": None,
|
|
2099
2099
|
}
|
|
2100
2100
|
if (
|
|
2101
2101
|
full_rendered.multi_modal_data is not None
|
|
@@ -28,7 +28,6 @@ from renderers.base import (
|
|
|
28
28
|
|
|
29
29
|
_request_logger = logging.getLogger("renderers.client")
|
|
30
30
|
ROUTED_EXPERTS_DATA_PREFIX = b'"routed_experts":{"data":"'
|
|
31
|
-
KEPT_TOKENS_IDS_PREFIX = b'"kept_tokens":{"ids":"'
|
|
32
31
|
# vLLM uses this value both when sampled-token evidence is missing and as a
|
|
33
32
|
# lower-bound clamp, so receiving it cannot prove the real logprob was returned.
|
|
34
33
|
VLLM_LOGPROB_SENTINEL = -9999.0
|
|
@@ -129,12 +128,9 @@ def _strip_base64_field(raw: bytes, prefix: bytes) -> tuple[bytes, memoryview |
|
|
|
129
128
|
|
|
130
129
|
def parse_generate_response(raw: bytes) -> dict[str, Any]:
|
|
131
130
|
stripped, routed_data = _strip_base64_field(raw, ROUTED_EXPERTS_DATA_PREFIX)
|
|
132
|
-
stripped, kept_ids_data = _strip_base64_field(stripped, KEPT_TOKENS_IDS_PREFIX)
|
|
133
131
|
payload: dict[str, Any] = json.loads(stripped)
|
|
134
132
|
if routed_data is not None:
|
|
135
133
|
payload["choices"][0]["routed_experts"]["data"] = routed_data
|
|
136
|
-
if kept_ids_data is not None:
|
|
137
|
-
payload["choices"][0]["kept_tokens"]["ids"] = kept_ids_data
|
|
138
134
|
return payload
|
|
139
135
|
|
|
140
136
|
|
|
@@ -374,7 +370,9 @@ async def generate(
|
|
|
374
370
|
parsed = renderer.parse_response(completion_ids, tools=tools)
|
|
375
371
|
|
|
376
372
|
routed_experts = choice.get("routed_experts")
|
|
377
|
-
|
|
373
|
+
# vLLM's native kept-set sampling masks (``--return-sampling-mask``):
|
|
374
|
+
# one list of surviving vocab ids per completion token.
|
|
375
|
+
sampling_mask = choice.get("sampling_mask")
|
|
378
376
|
|
|
379
377
|
# /inference/v1/generate returns finish_reason in {"stop","length",...} —
|
|
380
378
|
# never "tool_calls" (a chat-completions concept). Promote stop→tool_calls
|
|
@@ -403,7 +401,7 @@ async def generate(
|
|
|
403
401
|
"tool_calls": parsed.tool_calls,
|
|
404
402
|
"finish_reason": finish_reason,
|
|
405
403
|
"routed_experts": routed_experts,
|
|
406
|
-
"
|
|
404
|
+
"sampling_mask": sampling_mask,
|
|
407
405
|
# The mm sidecar consumed on the request side, surfaced back so
|
|
408
406
|
# callers can persist it on the trajectory step for downstream
|
|
409
407
|
# multi-turn bridging and training-sample construction.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/examples/sglang/multiturn_generate_sglang.py
RENAMED
|
File without changes
|
|
File without changes
|
{renderers-0.1.12.dev1 → renderers-0.1.12.dev2}/examples/tinker/multiturn_generate_tinker.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|