From 4afff896faa97cc60f46020606f36f9f0ce2d809 Mon Sep 17 00:00:00 2001 From: Niloth-p <20315308+Niloth-p@users.noreply.github.com> Date: Mon, 10 Jun 2024 06:20:09 +0530 Subject: [PATCH 1/2] lint-hotkeys: Lint the validity of help categories. To check for typos. --- tools/lint-hotkeys | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/tools/lint-hotkeys b/tools/lint-hotkeys index 503a024e98..b4d905ab70 100755 --- a/tools/lint-hotkeys +++ b/tools/lint-hotkeys @@ -39,8 +39,8 @@ def lint_hotkeys_file() -> None: existing OUTPUT_FILE """ hotkeys_file_string = get_hotkeys_file_string() + error_flag = 0 if is_every_key_category_valid() else 1 # To lint keys description - error_flag = 0 categories = read_help_categories() for action in HELP_CATEGORIES: check_duplicate_keys_list: List[str] = [] @@ -91,6 +91,24 @@ def generate_hotkeys_file() -> None: print(f"Hot Keys list saved in {OUTPUT_FILE}") +def is_every_key_category_valid() -> bool: + """ + Check for typos in key categories in KEYS_FILE + """ + error_flag = False + for key, binding in KEY_BINDINGS.items(): + key_category = binding.get("key_category") + if key_category not in HELP_CATEGORIES: + print( + f"Invalid key_category '{key_category}' for key '{key}'." + f" Choose a category from:\n{', '.join(HELP_CATEGORIES.keys())}\n" + ) + error_flag = True + if not error_flag: + print("All key bindings have valid categories.") + return not error_flag + + def get_hotkeys_file_string() -> str: """ Construct string in form for output to OUTPUT_FILE based on help text From 82dccf2abef36b457546d04059b421e341de00b9 Mon Sep 17 00:00:00 2001 From: Niloth-p <20315308+Niloth-p@users.noreply.github.com> Date: Fri, 28 Jun 2024 05:27:29 +0530 Subject: [PATCH 2/2] refactor: lint-hotkeys: Make the integer error flag boolean. --- tools/lint-hotkeys | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tools/lint-hotkeys b/tools/lint-hotkeys index b4d905ab70..de8f062dc5 100755 --- a/tools/lint-hotkeys +++ b/tools/lint-hotkeys @@ -39,7 +39,7 @@ def lint_hotkeys_file() -> None: existing OUTPUT_FILE """ hotkeys_file_string = get_hotkeys_file_string() - error_flag = 0 if is_every_key_category_valid() else 1 + error_flag = not is_every_key_category_valid() # To lint keys description categories = read_help_categories() for action in HELP_CATEGORIES: @@ -53,7 +53,7 @@ def lint_hotkeys_file() -> None: f"Description - ({help_text}) for key combination - [{various_key_combinations}]\n" "It should contain only alphabets, spaces and special characters except ." ) - error_flag = 1 + error_flag = True # Check key combination duplication check_duplicate_keys_list = [ key for key in check_duplicate_keys_list if key not in KEYS_TO_EXCLUDE @@ -67,8 +67,8 @@ def lint_hotkeys_file() -> None: print( f"Duplicate key combination for keys {duplicate_keys} for category ({HELP_CATEGORIES[action]}) detected" ) - error_flag = 1 - if error_flag == 1: + error_flag = True + if error_flag: print(f"Rerun this command after resolving errors in config/{KEYS_FILE_NAME}") else: print("No hotkeys linting errors") @@ -76,7 +76,7 @@ def lint_hotkeys_file() -> None: print( f"Run './tools/{SCRIPT_NAME} --fix' to update {OUTPUT_FILE_NAME} file" ) - error_flag = 1 + error_flag = True sys.exit(error_flag)