Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
e6eed46
Initial plan
Copilot Feb 3, 2026
032ba48
Add type hints to __main__, chat, el, and classify modules
Copilot Feb 3, 2026
4fd4bec
Add type hints to generate, summarize, and wsd modules
Copilot Feb 3, 2026
cb89da3
Add type hints to spell, tag, tokenize, coref, augment, and ulmfit mo…
Copilot Feb 3, 2026
96d6a5a
Add type hints to augment, util.trie, generate, wangchanberta, and tr…
Copilot Feb 3, 2026
f7bd342
Plan to complete remaining type hints to reach 100%
Copilot Feb 3, 2026
0fac874
Add complete type hints to pythainlp/transliterate/thaig2p.py
Copilot Feb 3, 2026
04aa163
Remove unnecessary type: ignore comment
Copilot Feb 3, 2026
4f0b747
Improve type hints specificity for dict and list types
Copilot Feb 3, 2026
0b6fe18
Add type hints to transliterate, tokenize, corpus, khavee, phayathaib…
Copilot Feb 3, 2026
2a4c4f3
Add complete type hints to thai2rom.py and thai2rom_onnx.py
Copilot Feb 3, 2026
49b13fb
Fix formatting: split long parameter lines in type hints
Copilot Feb 3, 2026
15cfa57
Add complete type hints with class attributes to thai2rom and thai2ro…
Copilot Feb 3, 2026
7d7fd60
Complete all remaining type hints to reach 100% coverage
Copilot Feb 3, 2026
983f33b
Clean up unused type: ignore comments
Copilot Feb 3, 2026
9e7faaa
Add complete type hints to final 17 functions for 100% coverage
Copilot Feb 3, 2026
d08f43f
Update analysis output files showing 100% type hint coverage
Copilot Feb 3, 2026
f61f97d
Add class attribute annotations to parse and spell modules (Phase 1)
Copilot Feb 3, 2026
9ad0a11
Add class attribute annotations to word_vector, phayathaibert, and co…
Copilot Feb 3, 2026
5aaaaeb
Add class-level and __init__ attribute annotations (Phase 3 - recogni…
Copilot Feb 3, 2026
245edb0
Add class annotations - Batch 1 & 2: Translation, tokenization, and M…
Copilot Feb 3, 2026
655d73e
Add class annotations - Batch 3: Core tokenizer & translation classes…
Copilot Feb 3, 2026
986f92f
Add class attribute type annotations to 25+ core classes
Copilot Feb 3, 2026
d2f3110
Fix mypy type errors in wangchanberta and transliterate modules
Copilot Feb 3, 2026
747bd9f
Fix code review issues: use Any instead of any, fix attribute names
Copilot Feb 3, 2026
0e31fed
Changes before error encountered
Copilot Feb 3, 2026
0220132
Merge dev branch with ThaiNNER refactoring, maintain type annotations
Copilot Feb 3, 2026
5981646
🎉 Achieve 100% class attribute annotation coverage
Copilot Feb 3, 2026
44bc38b
Merge dev branch - maintain type annotations with new features
Copilot Feb 3, 2026
e1683ff
Merge branch 'dev' into copilot/add-type-hints-to-submodules-one-more…
bact Feb 3, 2026
bae929f
Plan: Complete variable type annotations to reach 100% coverage
Copilot Feb 3, 2026
7b51394
Add type annotations to module variables - Part 1
Copilot Feb 3, 2026
f860fcb
Add type annotations to module variables - Part 2
Copilot Feb 3, 2026
a16a267
Add type annotations to module variables - Part 3
Copilot Feb 3, 2026
2000e09
Add 190+ module variable type annotations - improve coverage to 51.61%
Copilot Feb 3, 2026
99e9e98
Add type annotations to 150+ instance variables across 17 files
Copilot Feb 3, 2026
7eac90a
Add type annotations to 20+ more instance variables in 5 files
Copilot Feb 3, 2026
a6a5a13
Fix ThaiNNER model type annotation to use thai_nner.NNER instead of Any
Copilot Feb 3, 2026
b28af17
Final summary: Type annotation improvements - 100% functions, 56.56% …
Copilot Feb 3, 2026
964c1d4
Fix type annotations in coref/_fastcoref.py - replace Any with precis…
Copilot Feb 3, 2026
42e7df1
Fix type annotations in WangChanGLM - replace Any with PreTrainedMode…
Copilot Feb 3, 2026
e717065
Replace Any with precise types in wangchanberta, coref, and spell mod…
Copilot Feb 4, 2026
c382092
Replace Any with precise types in augment and translate modules - Bat…
Copilot Feb 4, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 0 additions & 56 deletions build_tools/analysis/output/functions_incomplete_hints.csv
Original file line number Diff line number Diff line change
@@ -1,57 +1 @@
Function Name,Submodule,Scope,Priority,Params Hinted,Has Return,References,Test Suite,File,Line
pythainlp.tokenize.nercut.segment,tokenize,public,medium,2/3,True,350,unknown,/home/runner/work/pythainlp/pythainlp/pythainlp/tokenize/nercut.py,22
pythainlp.classify.param_free.GzipModel.load,classify,public,medium,1/1,False,334,unknown,/home/runner/work/pythainlp/pythainlp/pythainlp/classify/param_free.py,101
pythainlp.transliterate.thaig2p_v2.transliterate,transliterate,public,medium,1/2,True,127,unknown,/home/runner/work/pythainlp/pythainlp/pythainlp/transliterate/thaig2p_v2.py,41
pythainlp.transliterate.umt5_thaig2p.transliterate,transliterate,public,medium,1/2,True,127,unknown,/home/runner/work/pythainlp/pythainlp/pythainlp/transliterate/umt5_thaig2p.py,41
pythainlp.transliterate.wunsen.WunsenTransliterate.transliterate,transliterate,public,medium,5/5,False,127,unknown,/home/runner/work/pythainlp/pythainlp/pythainlp/transliterate/wunsen.py,37
pythainlp.augment.lm.fasttext.FastTextAug.__init__,augment,public,medium,1/1,False,113,unknown,/home/runner/work/pythainlp/pythainlp/pythainlp/augment/lm/fasttext.py,17
pythainlp.augment.word2vec.bpemb_wv.BPEmbAug.__init__,augment,public,medium,3/3,False,113,unknown,/home/runner/work/pythainlp/pythainlp/pythainlp/augment/word2vec/bpemb_wv.py,16
pythainlp.classify.param_free.GzipModel.__init__,classify,public,medium,2/2,False,113,unknown,/home/runner/work/pythainlp/pythainlp/pythainlp/classify/param_free.py,24
pythainlp.coref._fastcoref.FastCoref.__init__,coref,public,medium,2/4,True,113,unknown,/home/runner/work/pythainlp/pythainlp/pythainlp/coref/_fastcoref.py,8
pythainlp.coref.han_coref.HanCoref.__init__,coref,public,medium,1/2,True,113,unknown,/home/runner/work/pythainlp/pythainlp/pythainlp/coref/han_coref.py,10
pythainlp.el.core.EntityLinker.__init__,el,public,medium,3/3,False,113,unknown,/home/runner/work/pythainlp/pythainlp/pythainlp/el/core.py,10
pythainlp.generate.core.Unigram.__init__,generate,public,medium,1/1,False,113,unknown,/home/runner/work/pythainlp/pythainlp/pythainlp/generate/core.py,33
pythainlp.generate.core.Bigram.__init__,generate,public,medium,1/1,False,113,unknown,/home/runner/work/pythainlp/pythainlp/pythainlp/generate/core.py,119
pythainlp.generate.core.Trigram.__init__,generate,public,medium,1/1,False,113,unknown,/home/runner/work/pythainlp/pythainlp/pythainlp/generate/core.py,206
pythainlp.spell.pn.NorvigSpellChecker.__init__,spell,public,medium,5/5,False,113,unknown,/home/runner/work/pythainlp/pythainlp/pythainlp/spell/pn.py,123
pythainlp.summarize.freq.FrequencySummarizer.__init__,summarize,public,medium,2/2,False,113,unknown,/home/runner/work/pythainlp/pythainlp/pythainlp/summarize/freq.py,20
pythainlp.summarize.keybert.KeyBERT.__init__,summarize,public,medium,1/1,False,113,unknown,/home/runner/work/pythainlp/pythainlp/pythainlp/summarize/keybert.py,27
pythainlp.summarize.mt5.mT5Summarizer.__init__,summarize,public,medium,7/7,False,113,unknown,/home/runner/work/pythainlp/pythainlp/pythainlp/summarize/mt5.py,12
pythainlp.tag.crfchunk.CRFchunk.__init__,tag,public,medium,1/1,False,113,unknown,/home/runner/work/pythainlp/pythainlp/pythainlp/tag/crfchunk.py,77
pythainlp.tokenize.core.Tokenizer.__init__,tokenize,public,medium,4/4,False,113,unknown,/home/runner/work/pythainlp/pythainlp/pythainlp/tokenize/core.py,925
pythainlp.tokenize.longest.LongestMatchTokenizer.__init__,tokenize,public,medium,1/1,False,113,unknown,/home/runner/work/pythainlp/pythainlp/pythainlp/tokenize/longest.py,49
pythainlp.translate.en_th.EnThTranslator.__init__,translate,public,medium,1/1,False,113,unknown,/home/runner/work/pythainlp/pythainlp/pythainlp/translate/en_th.py,68
pythainlp.translate.en_th.ThEnTranslator.__init__,translate,public,medium,1/1,False,113,unknown,/home/runner/work/pythainlp/pythainlp/pythainlp/translate/en_th.py,124
pythainlp.translate.tokenization_small100.SMALL100Tokenizer.__init__,translate,public,medium,1/11,True,113,unknown,/home/runner/work/pythainlp/pythainlp/pythainlp/translate/tokenization_small100.py,125
pythainlp.transliterate.thaig2p_v2.ThaiG2P.__init__,transliterate,public,medium,1/1,False,113,unknown,/home/runner/work/pythainlp/pythainlp/pythainlp/transliterate/thaig2p_v2.py,27
pythainlp.transliterate.umt5_thaig2p.Umt5ThaiG2P.__init__,transliterate,public,medium,1/1,False,113,unknown,/home/runner/work/pythainlp/pythainlp/pythainlp/transliterate/umt5_thaig2p.py,27
pythainlp.ulmfit.tokenizer.BaseTokenizer.__init__,ulmfit,public,medium,1/1,False,113,unknown,/home/runner/work/pythainlp/pythainlp/pythainlp/ulmfit/tokenizer.py,16
pythainlp.ulmfit.tokenizer.ThaiTokenizer.__init__,ulmfit,public,medium,1/1,False,113,unknown,/home/runner/work/pythainlp/pythainlp/pythainlp/ulmfit/tokenizer.py,32
pythainlp.util.trie.Trie.__init__,util,public,medium,1/1,False,113,unknown,/home/runner/work/pythainlp/pythainlp/pythainlp/util/trie.py,56
pythainlp.wangchanberta.core.ThaiNameTagger.__init__,wangchanberta,public,medium,2/2,False,113,unknown,/home/runner/work/pythainlp/pythainlp/pythainlp/wangchanberta/core.py,35
pythainlp.wsd.core._SentenceTransformersModel.__init__,wsd,public,medium,2/2,False,113,unknown,/home/runner/work/pythainlp/pythainlp/pythainlp/wsd/core.py,26
pythainlp.augment.lm.wangchanberta.Thai2transformersAug.generate,augment,public,medium,2/2,False,37,unknown,/home/runner/work/pythainlp/pythainlp/pythainlp/augment/lm/wangchanberta.py,34
pythainlp.classify.param_free.GzipModel.save,classify,public,medium,1/1,False,37,unknown,/home/runner/work/pythainlp/pythainlp/pythainlp/classify/param_free.py,89
pythainlp.util.date.convert_years,util,public,medium,1/3,True,24,unknown,/home/runner/work/pythainlp/pythainlp/pythainlp/util/date.py,119
pythainlp.summarize.keybert.KeyBERT.extract_keywords,summarize,public,medium,6/7,True,20,unknown,/home/runner/work/pythainlp/pythainlp/pythainlp/summarize/keybert.py,39
pythainlp.spell.symspellpy.correct_sent,spell,public,medium,1/2,True,19,unknown,/home/runner/work/pythainlp/pythainlp/pythainlp/spell/symspellpy.py,111
pythainlp.chat.core.ChatBotModel.load_model,chat,public,medium,6/7,False,18,unknown,/home/runner/work/pythainlp/pythainlp/pythainlp/chat/core.py,18
pythainlp.generate.wangchanglm.WangChanGLM.load_model,generate,public,medium,6/7,False,18,unknown,/home/runner/work/pythainlp/pythainlp/pythainlp/generate/wangchanglm.py,26
pythainlp.util.emojiconv.emoji_to_thai,util,public,medium,1/2,True,15,unknown,/home/runner/work/pythainlp/pythainlp/pythainlp/util/emojiconv.py,1835
pythainlp.util.date.thai_strptime,util,public,medium,4/5,False,12,unknown,/home/runner/work/pythainlp/pythainlp/pythainlp/util/date.py,212
pythainlp.ulmfit.core.document_vector,ulmfit,public,medium,2/4,False,11,unknown,/home/runner/work/pythainlp/pythainlp/pythainlp/ulmfit/core.py,175
pythainlp.augment.wordnet.postype2wordnet,augment,public,medium,2/2,False,6,unknown,/home/runner/work/pythainlp/pythainlp/pythainlp/augment/wordnet.py,104
pythainlp.ulmfit.tokenizer.BaseTokenizer.add_special_cases,ulmfit,public,medium,1/1,False,4,unknown,/home/runner/work/pythainlp/pythainlp/pythainlp/ulmfit/tokenizer.py,22
pythainlp.transliterate.thai2rom.ThaiTransliterator._prepare_sequence_in,transliterate,private,low,1/1,False,12,unknown,/home/runner/work/pythainlp/pythainlp/pythainlp/transliterate/thai2rom.py,61
pythainlp.transliterate.thai2rom_onnx.ThaiTransliterator_ONNX._prepare_sequence_in,transliterate,private,low,1/1,False,12,unknown,/home/runner/work/pythainlp/pythainlp/pythainlp/transliterate/thai2rom_onnx.py,59
pythainlp.transliterate.thaig2p.ThaiG2P._prepare_sequence_in,transliterate,private,low,1/1,False,12,unknown,/home/runner/work/pythainlp/pythainlp/pythainlp/transliterate/thaig2p.py,71
pythainlp.benchmarks.word_tokenization._find_word_boundaries,benchmarks,private,low,0/1,True,5,unknown,/home/runner/work/pythainlp/pythainlp/pythainlp/benchmarks/word_tokenization.py,239
pythainlp.transliterate.w2p.Thai_W2P._gru,transliterate,private,low,0/7,True,5,unknown,/home/runner/work/pythainlp/pythainlp/pythainlp/transliterate/w2p.py,121
pythainlp.tag.thainer._doc2features,tag,private,low,0/2,True,4,unknown,/home/runner/work/pythainlp/pythainlp/pythainlp/tag/thainer.py,25
pythainlp.generate.wangchanglm.WangChanGLM.gen_instruct,generate,public,low,9/9,False,3,unknown,/home/runner/work/pythainlp/pythainlp/pythainlp/generate/wangchanglm.py,68
pythainlp.corpus.wordnet.custom_lemmas,corpus,public,low,1/2,True,2,unknown,/home/runner/work/pythainlp/pythainlp/pythainlp/corpus/wordnet.py,437
pythainlp.generate.wangchanglm.WangChanGLM.instruct_generate,generate,public,low,9/10,False,2,unknown,/home/runner/work/pythainlp/pythainlp/pythainlp/generate/wangchanglm.py,124
pythainlp.summarize.freq.FrequencySummarizer.__rank,summarize,private,low,1/2,False,2,unknown,/home/runner/work/pythainlp/pythainlp/pythainlp/summarize/freq.py,26
pythainlp.translate.tokenization_small100.save_json,translate,public,low,1/2,True,2,unknown,/home/runner/work/pythainlp/pythainlp/pythainlp/translate/tokenization_small100.py,433
pythainlp.wsd.core._SentenceTransformersModel.change_device,wsd,public,low,1/1,False,2,unknown,/home/runner/work/pythainlp/pythainlp/pythainlp/wsd/core.py,37
pythainlp.translate.tokenization_small100.SMALL100Tokenizer._build_translation_inputs,translate,private,low,1/2,False,1,unknown,/home/runner/work/pythainlp/pythainlp/pythainlp/translate/tokenization_small100.py,384
Loading
Loading