renderers 0.1.8.dev36__tar.gz → 0.1.8.dev39__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.
Files changed (64) hide show
  1. {renderers-0.1.8.dev36 → renderers-0.1.8.dev39}/PKG-INFO +1 -1
  2. {renderers-0.1.8.dev36 → renderers-0.1.8.dev39}/pyproject.toml +12 -1
  3. {renderers-0.1.8.dev36 → renderers-0.1.8.dev39}/renderers/_version.py +2 -2
  4. {renderers-0.1.8.dev36 → renderers-0.1.8.dev39}/renderers/base.py +6 -5
  5. {renderers-0.1.8.dev36 → renderers-0.1.8.dev39}/.github/workflows/publish-dev.yml +0 -0
  6. {renderers-0.1.8.dev36 → renderers-0.1.8.dev39}/.github/workflows/publish.yml +0 -0
  7. {renderers-0.1.8.dev36 → renderers-0.1.8.dev39}/.github/workflows/style.yml +0 -0
  8. {renderers-0.1.8.dev36 → renderers-0.1.8.dev39}/.github/workflows/test.yml +0 -0
  9. {renderers-0.1.8.dev36 → renderers-0.1.8.dev39}/.gitignore +0 -0
  10. {renderers-0.1.8.dev36 → renderers-0.1.8.dev39}/.pre-commit-config.yaml +0 -0
  11. {renderers-0.1.8.dev36 → renderers-0.1.8.dev39}/LICENSE +0 -0
  12. {renderers-0.1.8.dev36 → renderers-0.1.8.dev39}/README.md +0 -0
  13. {renderers-0.1.8.dev36 → renderers-0.1.8.dev39}/docs/renderer-config.md +0 -0
  14. {renderers-0.1.8.dev36 → renderers-0.1.8.dev39}/examples/README.md +0 -0
  15. {renderers-0.1.8.dev36 → renderers-0.1.8.dev39}/examples/sglang/multiturn_generate_sglang.py +0 -0
  16. {renderers-0.1.8.dev36 → renderers-0.1.8.dev39}/examples/sglang/online_multiturn_sglang.py +0 -0
  17. {renderers-0.1.8.dev36 → renderers-0.1.8.dev39}/examples/tinker/multiturn_generate_tinker.py +0 -0
  18. {renderers-0.1.8.dev36 → renderers-0.1.8.dev39}/examples/transformers/multiturn_generate_transformers.py +0 -0
  19. {renderers-0.1.8.dev36 → renderers-0.1.8.dev39}/examples/vllm/multiturn_generate_vllm.py +0 -0
  20. {renderers-0.1.8.dev36 → renderers-0.1.8.dev39}/renderers/__init__.py +0 -0
  21. {renderers-0.1.8.dev36 → renderers-0.1.8.dev39}/renderers/client.py +0 -0
  22. {renderers-0.1.8.dev36 → renderers-0.1.8.dev39}/renderers/configs.py +0 -0
  23. {renderers-0.1.8.dev36 → renderers-0.1.8.dev39}/renderers/deepseek_v3.py +0 -0
  24. {renderers-0.1.8.dev36 → renderers-0.1.8.dev39}/renderers/default.py +0 -0
  25. {renderers-0.1.8.dev36 → renderers-0.1.8.dev39}/renderers/glm45.py +0 -0
  26. {renderers-0.1.8.dev36 → renderers-0.1.8.dev39}/renderers/glm5.py +0 -0
  27. {renderers-0.1.8.dev36 → renderers-0.1.8.dev39}/renderers/gpt_oss.py +0 -0
  28. {renderers-0.1.8.dev36 → renderers-0.1.8.dev39}/renderers/kimi_k2.py +0 -0
  29. {renderers-0.1.8.dev36 → renderers-0.1.8.dev39}/renderers/kimi_k25.py +0 -0
  30. {renderers-0.1.8.dev36 → renderers-0.1.8.dev39}/renderers/laguna_xs2.py +0 -0
  31. {renderers-0.1.8.dev36 → renderers-0.1.8.dev39}/renderers/minimax_m2.py +0 -0
  32. {renderers-0.1.8.dev36 → renderers-0.1.8.dev39}/renderers/nemotron3.py +0 -0
  33. {renderers-0.1.8.dev36 → renderers-0.1.8.dev39}/renderers/parsers.py +0 -0
  34. {renderers-0.1.8.dev36 → renderers-0.1.8.dev39}/renderers/parsing.py +0 -0
  35. {renderers-0.1.8.dev36 → renderers-0.1.8.dev39}/renderers/qwen3.py +0 -0
  36. {renderers-0.1.8.dev36 → renderers-0.1.8.dev39}/renderers/qwen35.py +0 -0
  37. {renderers-0.1.8.dev36 → renderers-0.1.8.dev39}/renderers/qwen36.py +0 -0
  38. {renderers-0.1.8.dev36 → renderers-0.1.8.dev39}/renderers/qwen3_vl.py +0 -0
  39. {renderers-0.1.8.dev36 → renderers-0.1.8.dev39}/tests/conftest.py +0 -0
  40. {renderers-0.1.8.dev36 → renderers-0.1.8.dev39}/tests/test_bridge.py +0 -0
  41. {renderers-0.1.8.dev36 → renderers-0.1.8.dev39}/tests/test_build_helpers.py +0 -0
  42. {renderers-0.1.8.dev36 → renderers-0.1.8.dev39}/tests/test_client.py +0 -0
  43. {renderers-0.1.8.dev36 → renderers-0.1.8.dev39}/tests/test_gpt_oss_harmony_parity.py +0 -0
  44. {renderers-0.1.8.dev36 → renderers-0.1.8.dev39}/tests/test_incremental.py +0 -0
  45. {renderers-0.1.8.dev36 → renderers-0.1.8.dev39}/tests/test_is_content.py +0 -0
  46. {renderers-0.1.8.dev36 → renderers-0.1.8.dev39}/tests/test_kimi_k25_tool_schema.py +0 -0
  47. {renderers-0.1.8.dev36 → renderers-0.1.8.dev39}/tests/test_load_tokenizer.py +0 -0
  48. {renderers-0.1.8.dev36 → renderers-0.1.8.dev39}/tests/test_load_tokenizer_fastokens.py +0 -0
  49. {renderers-0.1.8.dev36 → renderers-0.1.8.dev39}/tests/test_message_indices.py +0 -0
  50. {renderers-0.1.8.dev36 → renderers-0.1.8.dev39}/tests/test_message_tool_names.py +0 -0
  51. {renderers-0.1.8.dev36 → renderers-0.1.8.dev39}/tests/test_multimodal.py +0 -0
  52. {renderers-0.1.8.dev36 → renderers-0.1.8.dev39}/tests/test_parse_response.py +0 -0
  53. {renderers-0.1.8.dev36 → renderers-0.1.8.dev39}/tests/test_parse_response_robustness.py +0 -0
  54. {renderers-0.1.8.dev36 → renderers-0.1.8.dev39}/tests/test_parsers.py +0 -0
  55. {renderers-0.1.8.dev36 → renderers-0.1.8.dev39}/tests/test_preserve_thinking.py +0 -0
  56. {renderers-0.1.8.dev36 → renderers-0.1.8.dev39}/tests/test_qwen35_size_coverage.py +0 -0
  57. {renderers-0.1.8.dev36 → renderers-0.1.8.dev39}/tests/test_render_ids.py +0 -0
  58. {renderers-0.1.8.dev36 → renderers-0.1.8.dev39}/tests/test_renderer_config.py +0 -0
  59. {renderers-0.1.8.dev36 → renderers-0.1.8.dev39}/tests/test_renderer_config_parity.py +0 -0
  60. {renderers-0.1.8.dev36 → renderers-0.1.8.dev39}/tests/test_roundtrip.py +0 -0
  61. {renderers-0.1.8.dev36 → renderers-0.1.8.dev39}/tests/test_sampled_mask.py +0 -0
  62. {renderers-0.1.8.dev36 → renderers-0.1.8.dev39}/tests/test_tokens_per_message.py +0 -0
  63. {renderers-0.1.8.dev36 → renderers-0.1.8.dev39}/tests/test_tool_arg_type_preservation.py +0 -0
  64. {renderers-0.1.8.dev36 → renderers-0.1.8.dev39}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: renderers
3
- Version: 0.1.8.dev36
3
+ Version: 0.1.8.dev39
4
4
  Summary: Chat template renderers — deterministic message-to-token conversion for LLM training
5
5
  License-Expression: Apache-2.0
6
6
  License-File: LICENSE
@@ -79,13 +79,24 @@ dev = [
79
79
  ]
80
80
 
81
81
  [tool.uv]
82
+ # Enforce a uv version that supports the friendly-duration form
83
+ # (`"7 days"`) in the static pyproject parser. Older uvs silently parse
84
+ # the value as an RFC 3339 date, emit a TOML parse warning, and proceed
85
+ # *without* the cooldown — bypassing this security policy.
86
+ required-version = ">=0.11.1"
82
87
  exclude-newer = "7 days"
88
+
89
+ [tool.uv.exclude-newer-package]
83
90
  # fastokens 0.2.0 was published on 2026-05-17 and contains the
84
91
  # ``unpatch_transformers`` fix (crusoecloud/fastokens#32) needed for
85
92
  # MiniMax-M2's slow→fast tokenizer conversion path. Exempting it from
86
93
  # the project-wide 7-day cutoff lets the lockfile pick it up immediately
87
94
  # while the rest of the dependency graph stays gated.
88
- exclude-newer-package = { fastokens = false, "prime-pydantic-config" = false }
95
+ fastokens = false
96
+ # PrimeIntellect-published packages in this project's dependency closure —
97
+ # fast-track so first-party releases can land same-day. Only packages that
98
+ # appear in `uv tree` are listed.
99
+ prime-pydantic-config = false
89
100
 
90
101
  [tool.ty.environment]
91
102
  python-version = "3.13"
@@ -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.8.dev36'
22
- __version_tuple__ = version_tuple = (0, 1, 8, 'dev36')
21
+ __version__ = version = '0.1.8.dev39'
22
+ __version_tuple__ = version_tuple = (0, 1, 8, 'dev39')
23
23
 
24
24
  __commit_id__ = commit_id = None
@@ -1677,7 +1677,6 @@ def _get_offset_tokenizer(tokenizer):
1677
1677
  cached = _offset_tokenizers.get(name_or_path)
1678
1678
  if cached is not None:
1679
1679
  return cached
1680
- from transformers import AutoTokenizer
1681
1680
 
1682
1681
  kwargs: dict[str, Any] = {}
1683
1682
  revision = TRUSTED_REVISIONS.get(name_or_path)
@@ -1687,10 +1686,12 @@ def _get_offset_tokenizer(tokenizer):
1687
1686
  kwargs = {"trust_remote_code": False}
1688
1687
  # Explicitly vanilla — we want HF's Rust tokenizer with offset
1689
1688
  # tracking, not the fastokens shim. ``load_tokenizer`` would
1690
- # patch fastokens in by default; calling
1691
- # ``AutoTokenizer.from_pretrained`` directly here keeps the
1692
- # fastokens patch out of this code path entirely.
1693
- offset_tok = AutoTokenizer.from_pretrained(name_or_path, **kwargs)
1689
+ # patch fastokens in by default; routing through
1690
+ # ``_load_tokenizer_via_auto`` keeps the fastokens patch out
1691
+ # of this code path while still applying the config-build
1692
+ # fallback (RoPE-validation failures on nested
1693
+ # ``rope_parameters``, etc.).
1694
+ offset_tok = _load_tokenizer_via_auto(name_or_path, **kwargs)
1694
1695
  if not getattr(offset_tok, "is_fast", False):
1695
1696
  raise RuntimeError(
1696
1697
  f"Vanilla tokenizer for {name_or_path!r} is not a fast "
File without changes
File without changes