From 7b89e8a46f3564ec734086b75a5da73e816f6b9c Mon Sep 17 00:00:00 2001 From: sezanzeb Date: Mon, 23 Nov 2020 18:47:57 +0100 Subject: [PATCH] optimized get_keycode --- keymapper/mapping.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/keymapper/mapping.py b/keymapper/mapping.py index 4e0eb4cd..69e510f5 100644 --- a/keymapper/mapping.py +++ b/keymapper/mapping.py @@ -31,13 +31,18 @@ from keymapper.paths import get_config_path def update_reverse_mapping(func): - """Generate a reverse mapping to optimize reverse lookups.""" + """Generate a reverse mapping to optimize reverse lookups. + + If _mapping contains `20: "a, A"`, + reverse mapping will contain `"a": 20, "A": 20` + """ def wrapper(self, *args, **kwargs): func(self, *args, **kwargs) - self._reverse_mapping = { - value: key for key, value - in self._mapping.items() - } + + self._reverse_mapping = {} + for key, value in self._mapping.items(): + for character in value.split(','): + self._reverse_mapping[character.strip()] = key return wrapper