From cc99aab607cd5310ae0dd9468475e1d084fa9eda Mon Sep 17 00:00:00 2001 From: Anas Khan <83116240+anxkhn@users.noreply.github.com> Date: Mon, 6 Jul 2026 19:41:57 +0530 Subject: [PATCH] fix: correct class name in SyntheticDataKit.chunk_data guard message (#6901) --- tests/test_synthetic_chunk_data.py | 26 ++++++++++++++++++++++++++ unsloth/dataprep/synthetic.py | 2 +- 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/tests/test_synthetic_chunk_data.py b/tests/test_synthetic_chunk_data.py index b9167d214..abc2c0144 100644 --- a/tests/test_synthetic_chunk_data.py +++ b/tests/test_synthetic_chunk_data.py @@ -104,10 +104,36 @@ def test_chunk_data_rejects_overlap_not_smaller_than_chunk(): os.unlink(path) +def test_chunk_data_uninitialized_error_names_real_class(): + # Without max_seq_length the guard tells the user which method to call first. + # The message must name the real class (SyntheticDataKit) so copying it works; + # a misspelling would raise NameError when the user follows it verbatim. + kit = SyntheticDataKit.__new__(SyntheticDataKit) + kit.tokenizer = _MockTokenizer() # max_seq_length intentionally unset + with tempfile.NamedTemporaryFile("w", suffix = ".txt", delete = False) as f: + f.write("word " * 50) + path = f.name + try: + try: + kit.chunk_data(filename = path) + raise AssertionError("expected RuntimeError when max_seq_length is unset") + except RuntimeError as e: + msg = str(e) + assert ( + "SyntheticDataKit.from_pretrained" in msg + ), f"error must name SyntheticDataKit.from_pretrained, got: {msg}" + assert ( + "SynthetidDataKit" not in msg + ), f"error must not misspell the class name, got: {msg}" + finally: + os.unlink(path) + + if __name__ == "__main__": test_chunk_data_keeps_single_chunk_document() test_chunk_data_still_splits_long_document() test_chunk_data_empty_document_yields_no_chunks() test_chunk_data_short_document_is_not_split_into_fragments() test_chunk_data_rejects_overlap_not_smaller_than_chunk() + test_chunk_data_uninitialized_error_names_real_class() print("OK") diff --git a/unsloth/dataprep/synthetic.py b/unsloth/dataprep/synthetic.py index 10690810f..6f025343f 100644 --- a/unsloth/dataprep/synthetic.py +++ b/unsloth/dataprep/synthetic.py @@ -391,7 +391,7 @@ class SyntheticDataKit: assert os.path.exists(filename) assert hasattr(self, "tokenizer") if not hasattr(self, "max_seq_length"): - raise RuntimeError("Please use SynthetidDataKit.from_pretrained(...) first!") + raise RuntimeError("Please use SyntheticDataKit.from_pretrained(...) first!") if not hasattr(self, "overlap") or not hasattr(self, "max_generation_tokens"): raise RuntimeError("Please use prepare_qa_generation first!")