Это оригинальный код Python2:
def _MatchOrDefault(pattern, match_string, default=None, flag=re.L):
match = re.search(pattern, match_string, flag)
Но в Python3 он будет выдавать сообщение «ValueError: не может использовать флаг LOCALE с шаблоном str» для поиска строки.
Является лиследуя правильному пути, или существует более питонский способ рефакторинга, чтобы он был совместим как с python2, так и с python3?
import six
def _MatchOrDefault(pattern, match_string, default=None, flag=re.L):
if not flag:
if isinstance(match_string, six.text_type):
flag = re.UNICODE
else:
flag = re.L
match = re.search(pattern, match_string, flag)