From fc537554974714305d997a69b755c7bb83cdb74e Mon Sep 17 00:00:00 2001 From: Mary Vikhreva Date: Tue, 25 Sep 2018 22:59:36 +0300 Subject: [PATCH] fix: ignore_case in pattern_matching_skill (#477) * fix: ignore_case in pattern_matching_skill * fix: do not lowercase None pattern * fix: lowecase only nonregex patterns --- .../pattern_matching_skill/pattern_matching_skill.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/deeppavlov/skills/pattern_matching_skill/pattern_matching_skill.py b/deeppavlov/skills/pattern_matching_skill/pattern_matching_skill.py index f09f590934..dc2a269ba7 100644 --- a/deeppavlov/skills/pattern_matching_skill/pattern_matching_skill.py +++ b/deeppavlov/skills/pattern_matching_skill/pattern_matching_skill.py @@ -11,11 +11,16 @@ def __init__(self, responses, patterns=None, regex=False, ignore_case=True): self.responses = responses if isinstance(patterns, str): patterns = [patterns] - if patterns and regex: - patterns = [re.compile(pattern) for pattern in patterns] - self.patterns = patterns self.regex = regex self.ignore_case = ignore_case + if regex: + if patterns: + flags = re.IGNORECASE if ignore_case else 0 + patterns = [re.compile(pattern, flags) for pattern in patterns] + else: + if patterns and ignore_case: + patterns = [pattern.lower() for pattern in patterns] + self.patterns = patterns def __call__(self, utterances_batch, history_batch, states_batch): response = [random.choice(self.responses) for _ in utterances_batch]