From cd611199b13320c5e892c5db2ab366871cb8835e Mon Sep 17 00:00:00 2001 From: InspectorCaracal <51038201+InspectorCaracal@users.noreply.github.com> Date: Thu, 7 Apr 2022 13:17:22 -0600 Subject: [PATCH 1/4] cache regex tuples by id --- evennia/contrib/rpg/rpsystem/rpsystem.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/evennia/contrib/rpg/rpsystem/rpsystem.py b/evennia/contrib/rpg/rpsystem/rpsystem.py index 6a34d39ba..cb2302b3f 100644 --- a/evennia/contrib/rpg/rpsystem/rpsystem.py +++ b/evennia/contrib/rpg/rpsystem/rpsystem.py @@ -318,15 +318,15 @@ def regex_tuple_from_key_alias(obj): """ global _REGEX_TUPLE_CACHE - permutation_string = " ".join([obj.key] + obj.aliases.all()) - if permutation_string not in _REGEX_TUPLE_CACHE: + if obj.id not in _REGEX_TUPLE_CACHE: + permutation_string = " ".join([obj.key] + obj.aliases.all()) _REGEX_TUPLE_CACHE[permutation_string] = ( re.compile(ordered_permutation_regex(permutation_string), _RE_FLAGS), obj, obj.key, ) - return _REGEX_TUPLE_CACHE[permutation_string] + return _REGEX_TUPLE_CACHE[obj.id] def parse_language(speaker, emote): From 76940fd72fb1df15df5200d13b09ea292afb95c1 Mon Sep 17 00:00:00 2001 From: InspectorCaracal <51038201+InspectorCaracal@users.noreply.github.com> Date: Thu, 7 Apr 2022 13:42:05 -0600 Subject: [PATCH 2/4] missed a reference --- evennia/contrib/rpg/rpsystem/rpsystem.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/evennia/contrib/rpg/rpsystem/rpsystem.py b/evennia/contrib/rpg/rpsystem/rpsystem.py index cb2302b3f..d6085e1bf 100644 --- a/evennia/contrib/rpg/rpsystem/rpsystem.py +++ b/evennia/contrib/rpg/rpsystem/rpsystem.py @@ -321,7 +321,7 @@ def regex_tuple_from_key_alias(obj): if obj.id not in _REGEX_TUPLE_CACHE: permutation_string = " ".join([obj.key] + obj.aliases.all()) - _REGEX_TUPLE_CACHE[permutation_string] = ( + _REGEX_TUPLE_CACHE[obj.id] = ( re.compile(ordered_permutation_regex(permutation_string), _RE_FLAGS), obj, obj.key, From 3d94fab1f5cf849709a51cfb1ce151e77af942a7 Mon Sep 17 00:00:00 2001 From: InspectorCaracal <51038201+InspectorCaracal@users.noreply.github.com> Date: Thu, 7 Apr 2022 14:30:15 -0600 Subject: [PATCH 3/4] combine id and key+alias string for key --- evennia/contrib/rpg/rpsystem/rpsystem.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/evennia/contrib/rpg/rpsystem/rpsystem.py b/evennia/contrib/rpg/rpsystem/rpsystem.py index d6085e1bf..083d66497 100644 --- a/evennia/contrib/rpg/rpsystem/rpsystem.py +++ b/evennia/contrib/rpg/rpsystem/rpsystem.py @@ -318,15 +318,16 @@ def regex_tuple_from_key_alias(obj): """ global _REGEX_TUPLE_CACHE + permutation_string = " ".join([obj.key] + obj.aliases.all()) + cache_key = " ".join((obj.id, permutation_string)) - if obj.id not in _REGEX_TUPLE_CACHE: - permutation_string = " ".join([obj.key] + obj.aliases.all()) - _REGEX_TUPLE_CACHE[obj.id] = ( + if cache_key not in _REGEX_TUPLE_CACHE: + _REGEX_TUPLE_CACHE[cache_key] = ( re.compile(ordered_permutation_regex(permutation_string), _RE_FLAGS), obj, obj.key, ) - return _REGEX_TUPLE_CACHE[obj.id] + return _REGEX_TUPLE_CACHE[cache_key] def parse_language(speaker, emote): From 60ee5e01e8467636fa04fbd793163b92fdcf4b9f Mon Sep 17 00:00:00 2001 From: InspectorCaracal <51038201+InspectorCaracal@users.noreply.github.com> Date: Thu, 7 Apr 2022 17:05:34 -0600 Subject: [PATCH 4/4] key formatting --- evennia/contrib/rpg/rpsystem/rpsystem.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/evennia/contrib/rpg/rpsystem/rpsystem.py b/evennia/contrib/rpg/rpsystem/rpsystem.py index 083d66497..2c431280c 100644 --- a/evennia/contrib/rpg/rpsystem/rpsystem.py +++ b/evennia/contrib/rpg/rpsystem/rpsystem.py @@ -319,7 +319,7 @@ def regex_tuple_from_key_alias(obj): """ global _REGEX_TUPLE_CACHE permutation_string = " ".join([obj.key] + obj.aliases.all()) - cache_key = " ".join((obj.id, permutation_string)) + cache_key = f"{obj.id} {permutation_string}" if cache_key not in _REGEX_TUPLE_CACHE: _REGEX_TUPLE_CACHE[cache_key] = (