renderers 0.1.13.dev19__tar.gz → 0.2.0__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.13.dev19 → renderers-0.2.0}/PKG-INFO +1 -1
- {renderers-0.1.13.dev19 → renderers-0.2.0}/renderers/_version.py +2 -2
- {renderers-0.1.13.dev19 → renderers-0.2.0}/renderers/nemotron3.py +5 -5
- {renderers-0.1.13.dev19 → renderers-0.2.0}/tests/parity.py +7 -1
- {renderers-0.1.13.dev19 → renderers-0.2.0}/.github/workflows/publish-dev.yml +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/.github/workflows/publish.yml +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/.github/workflows/style.yml +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/.github/workflows/test.yml +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/.gitignore +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/.pre-commit-config.yaml +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/LICENSE +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/README.md +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/docs/renderer-config.md +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/examples/README.md +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/examples/sglang/multiturn_generate_sglang.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/examples/sglang/online_multiturn_sglang.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/examples/tinker/multiturn_generate_tinker.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/examples/transformers/multiturn_generate_transformers.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/examples/vllm/multiturn_generate_vllm.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/pyproject.toml +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/renderers/__init__.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/renderers/base.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/renderers/client.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/renderers/configs.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/renderers/custom.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/renderers/deepseek_r1.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/renderers/deepseek_v3.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/renderers/deepseek_v4.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/renderers/default.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/renderers/gemma4.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/renderers/glm45.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/renderers/glm5.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/renderers/gpt_oss.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/renderers/hy3.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/renderers/inkling.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/renderers/kimi_k2.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/renderers/kimi_k25.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/renderers/laguna_s21.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/renderers/laguna_xs2.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/renderers/llama_3.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/renderers/minimax_m2.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/renderers/muse_glimmer.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/renderers/parsers.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/renderers/parsing.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/renderers/prime_qwen3.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/renderers/qwen3.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/renderers/qwen35.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/renderers/qwen36.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/renderers/qwen38.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/renderers/qwen3_vl.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/renderers/reasoning.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/renderers/tagged.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/tests/audit_prefix_stability.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/tests/conftest.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/tests/fixtures/prefix_stability.json +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/tests/reference_continuations.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/tests/reference_rendering.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/tests/replay.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/tests/test_bridge.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/tests/test_build_helpers.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/tests/test_client.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/tests/test_custom.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/tests/test_deepseek_r1.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/tests/test_deepseek_v4.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/tests/test_disabled_thinking_stability.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/tests/test_gemma4.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/tests/test_glm53_flash.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/tests/test_glm_tool_name_validation.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/tests/test_hy3.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/tests/test_incremental.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/tests/test_inkling.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/tests/test_is_content.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/tests/test_kimi_k25_tool_schema.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/tests/test_laguna_m1.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/tests/test_laguna_xs21.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/tests/test_llama_3.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/tests/test_load_tokenizer.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/tests/test_message_indices.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/tests/test_message_tool_names.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/tests/test_multimodal.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/tests/test_muse_glimmer.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/tests/test_nemotron35_vlm.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/tests/test_nemotron3_ultra.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/tests/test_offsetless_tokenizers.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/tests/test_parity.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/tests/test_parse_response.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/tests/test_parse_response_robustness.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/tests/test_parsers.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/tests/test_preserve_thinking.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/tests/test_qwen35_size_coverage.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/tests/test_qwen38.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/tests/test_reasoning_boundaries.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/tests/test_renderer_config.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/tests/test_roundtrip.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/tests/test_sampled_mask.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/tests/test_tagged_rollout.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/tests/test_tokens_per_message.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/tests/test_tool_arg_type_preservation.py +0 -0
- {renderers-0.1.13.dev19 → renderers-0.2.0}/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.
|
|
22
|
-
__version_tuple__ = version_tuple = (0,
|
|
21
|
+
__version__ = version = '0.2.0'
|
|
22
|
+
__version_tuple__ = version_tuple = (0, 2, 0)
|
|
23
23
|
|
|
24
24
|
__commit_id__ = commit_id = None
|
|
@@ -428,16 +428,16 @@ class Nemotron3Renderer:
|
|
|
428
428
|
content = self._render_content(msg.get("content"))
|
|
429
429
|
msg_orig_idx = orig_idx(i)
|
|
430
430
|
|
|
431
|
-
if role == "system":
|
|
432
|
-
if i != 0:
|
|
433
|
-
raise ValueError("System message must be at the beginning.")
|
|
431
|
+
if role == "system" and i == 0:
|
|
434
432
|
continue # Already handled above
|
|
435
433
|
|
|
436
|
-
elif role
|
|
434
|
+
elif role in ("user", "system"):
|
|
435
|
+
# The template renders a later system message through the
|
|
436
|
+
# user branch, under its own role header.
|
|
437
437
|
emit_special(
|
|
438
438
|
self._im_start, msg_orig_idx, is_sampled=False, is_content=False
|
|
439
439
|
)
|
|
440
|
-
user_segments: list[tuple[str, bool]] = [("
|
|
440
|
+
user_segments: list[tuple[str, bool]] = [(f"{role}\n", False)]
|
|
441
441
|
if content:
|
|
442
442
|
user_segments.append((content, True))
|
|
443
443
|
# Reasoning-effort hint rides on the LAST user message only,
|
|
@@ -685,7 +685,13 @@ SCENARIOS = (
|
|
|
685
685
|
{"role": "system", "content": "Late instruction"},
|
|
686
686
|
{"role": "user", "content": "B"},
|
|
687
687
|
],
|
|
688
|
-
only_renderers={
|
|
688
|
+
only_renderers={
|
|
689
|
+
"laguna-xs-2.1",
|
|
690
|
+
"laguna-s-2.1",
|
|
691
|
+
"nemotron-3",
|
|
692
|
+
"nemotron-3-ultra",
|
|
693
|
+
"nemotron-3.5",
|
|
694
|
+
},
|
|
689
695
|
),
|
|
690
696
|
_scenario(
|
|
691
697
|
"tool-declare-message",
|
|
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
|
{renderers-0.1.13.dev19 → renderers-0.2.0}/examples/transformers/multiturn_generate_transformers.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
|
|
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
|