Roi Dayan <r...@nvidia.com> writes: > On 12/03/2025 14:40, Aaron Conole wrote: >> Roi Dayan via dev <ovs-dev@openvswitch.org> writes: >> >>> Load dictionary_code.txt in addition to the default dictionary. >>> Add a new command line argument --dictionaries to be able >>> to specify codespell dictionaries. >>> >>> Signed-off-by: Roi Dayan <r...@nvidia.com> >>> Acked-by: Salem Sol <sal...@nvidia.com> >>> --- >> >> Thanks for the update, it's close. I got a bit confused when trying to >> test with this - it seems the order of arguments is dependent: >> >> -S -D dictionary.txt -D dictionary_rare.txt >> >> will not load the new dictionaries, and we have to add -S at the end. >> >> BUT, I think the following incremental could work to resolve that. >> WDYT? Otherwise, we'll need to document that spellchecking needs to be >> after the dictionaries are specified. > > I think the real issue is calling open_spell_check_dict() while parsing the > arguments. > I think of a nicer diff below which will also fix if you add -S multiple > times really instead of calling open_spell_check_dict() multiple times. > what do you think?
LGTM > I think maintaining the arguments could be easier with later moving from using > getopt to python argparse. > > @@ -1263,11 +1264,7 @@ if __name__ == '__main__': > elif o in ("-f", "--check-file"): > checking_file = True > elif o in ("-S", "--spellcheck"): > - if not open_spell_check_dict(): > - print("WARNING: The enchant library isn't available.") > - print(" Please install python enchant.") > - else: > - spellcheck = True > + spellcheck = True > elif o in ("-q", "--quiet"): > quiet = True > else: > @@ -1277,6 +1274,11 @@ if __name__ == '__main__': > if sys.stdout.isatty(): > colors = True > > + if spellcheck and not open_spell_check_dict(): > + print("WARNING: The enchant library isn't available.") > + print(" Please install python enchant.") > + spellcheck = False > + > if n_patches: > status = 0 > > > > >> >> diff --git a/utilities/checkpatch.py b/utilities/checkpatch.py >> index dd68e307a5..6a456931a7 100755 >> --- a/utilities/checkpatch.py >> +++ b/utilities/checkpatch.py >> @@ -40,11 +40,9 @@ missing_authors = [] >> codespell_dictionaries = ['dictionary.txt', 'dictionary_code.txt'] >> __codespell_dict_reset_once = True >> >> +codespell_files = [] >> >> -def open_spell_check_dict(): >> - import enchant >> - >> - codespell_files = [] >> +def load_codespell_files(): >> try: >> import codespell_lib >> codespell_dir = os.path.dirname(codespell_lib.__file__) >> @@ -55,6 +53,22 @@ def open_spell_check_dict(): >> except: >> pass >> >> + >> +def load_codespell_words(): >> + global spell_check_dict, codespell_files >> + >> + for fn in codespell_files: >> + with open(fn) as f: >> + for line in f.readlines(): >> + words = line.strip().split('>')[1].strip(', ').split(',') >> + for word in words: >> + if spell_check_dict: >> + spell_check_dict.add_to_session(word.strip()) >> + >> + >> +def open_spell_check_dict(): >> + import enchant >> + >> try: >> extra_keywords = ['ovs', 'vswitch', 'vswitchd', 'ovs-vswitchd', >> 'netdev', 'selinux', 'ovs-ctl', 'dpctl', 'ofctl', >> @@ -125,13 +139,6 @@ def open_spell_check_dict(): >> >> spell_check_dict = enchant.Dict("en_US") >> >> - for fn in codespell_files: >> - with open(fn) as f: >> - for line in f.readlines(): >> - words = line.strip().split('>')[1].strip(', >> ').split(',') >> - for word in words: >> - spell_check_dict.add_to_session(word.strip()) >> - >> for kw in extra_keywords: >> spell_check_dict.add_to_session(kw) >> >> @@ -1274,6 +1281,9 @@ if __name__ == '__main__': >> print("Unknown option '%s'" % o) >> sys.exit(EXIT_FAILURE) >> >> + load_codespell_files() >> + load_codespell_words() >> + >> if sys.stdout.isatty(): >> colors = True >> >> _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev