From 2faa3ed6af4ad9363a1d20d55dd870a66dd76f9c Mon Sep 17 00:00:00 2001 From: Andrew Ekstedt Date: Sat, 20 Mar 2021 00:19:12 -0700 Subject: [PATCH] Avoid a warning about regex flags in Python 3.6 Python 3.6 deprecated using regex flag syntax (?x) to set flags in the middle of a pattern. Now you can only use it at the start of a pattern. Fortunately that same release added a new scoped-flag syntax, (?x:). (Wait, you say, it looks like our code *does* set flags at the start of the pattern? That's true, but the markdown module includes our regex in the middle of a larger one, so it's not actually at the start.) Fixes this warning (and a couple similar ones): DeprecationWarning: Flags not at the start of the expression '^(.?)(?x) \[ ([^]]' (truncated) self.compiled_re = re.compile(r"^(.?)%s(.)$" % pattern --- pokedex/db/markdown.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pokedex/db/markdown.py b/pokedex/db/markdown.py index f030ba7..4873118 100644 --- a/pokedex/db/markdown.py +++ b/pokedex/db/markdown.py @@ -11,6 +11,7 @@ which case it is replaced by the name of the thing linked to. """ from __future__ import absolute_import +import sys import re import markdown @@ -159,7 +160,10 @@ class PokedexLinkPattern(markdown.inlinepatterns.Pattern): Handles matches using factory """ - regex = u'(?x) \\[ ([^]]*) \\] \\{ ([-a-z0-9]+) : ([-a-z0-9 ]+) \\}' + if sys.version_info >= (3, 6): + regex = u'(?x: \\[ ([^]]*) \\] \\{ ([-a-z0-9]+) : ([-a-z0-9 ]+) \\} )' + else: + regex = u'(?x) \\[ ([^]]*) \\] \\{ ([-a-z0-9]+) : ([-a-z0-9 ]+) \\}' def __init__(self, factory, session, string_language=None, game_language=None): markdown.inlinepatterns.Pattern.__init__(self, self.regex)