Skip to content

Commit 3a99c24

Browse files
authored
Merge pull request #1375 from phoneee/fix/sent-tokenize-exception-type
fix: catch TypeError instead of ValueError in sent_tokenize
2 parents 3152a36 + 628bb28 commit 3a99c24

2 files changed

Lines changed: 11 additions & 1 deletion

File tree

pythainlp/tokenize/core.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -452,7 +452,7 @@ def sent_tokenize(
452452
if isinstance(text, list):
453453
try:
454454
original_text = "".join(text)
455-
except ValueError:
455+
except TypeError:
456456
return []
457457
else:
458458
original_text = str(text)

tests/core/test_tokenize.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -339,6 +339,16 @@ def test_sent_tokenize(self):
339339
)
340340
with self.assertRaises(ValueError):
341341
sent_tokenize("ฉันไป กิน", engine="XX") # engine does not exist
342+
# Reproduce: list with non-string items should return []
343+
# instead of raising TypeError (str.join raises TypeError, not ValueError)
344+
self.assertEqual(
345+
sent_tokenize(["สวัสดี", 123], engine="whitespace+newline"), # type: ignore
346+
[],
347+
)
348+
self.assertEqual(
349+
sent_tokenize(["สวัสดี", None], engine="whitespace+newline"), # type: ignore
350+
[],
351+
)
342352

343353
def test_subword_tokenize(self):
344354
self.assertEqual(subword_tokenize(None), []) # type: ignore[arg-type]

0 commit comments

Comments
 (0)