Commit c6e993a4 authored by Simon Chabot's avatar Simon Chabot
Browse files

fix(typing): explicitly define Match and Pattern on Import Error (python < 3.7)


for python < 3.6 those two types are not defined. In case of import error, let's
define them (in the exact same way they are defined in the re module of python
>= 3.7).
parent 126a77ff9f57
Pipeline #8765 passed with stages
in 1 minute and 59 seconds
......@@ -100,7 +100,17 @@ import re
import sys
import os.path as osp
from time import process_time, time
from re import Match # type: ignore
try:
from re import Match # type: ignore
except ImportError:
# Match is python > 3.6 only.
#
# To be compatible with python <= 3.6, and still provide some typing, we
# manually define Match, in the same manner it is defined in the re module
# of python > 3.7
# cf https://github.com/python/cpython/blob/3.7/Lib/re.py#L264
Match = type(re.sre_compile.compile("", 0).match("")) # type: ignore
import warnings
import types
import inspect
......
......@@ -46,7 +46,18 @@ __docformat__ = "restructuredtext en"
import sys
import re
import os.path as osp
from re import Pattern, Match # type: ignore
try:
from re import Pattern, Match # type: ignore
except ImportError:
# Pattern and Match are python > 3.6 only.
#
# To be compatible with python <= 3.6, and still provide some typing, we
# manually define Pattern and Match, in the same manner they are defined in
# the re module of python > 3.7
# cf https://github.com/python/cpython/blob/3.7/Lib/re.py#L264
Pattern = type(re.sre_compile.compile("", 0)) # type: ignore
Match = type(re.sre_compile.compile("", 0).match("")) # type: ignore
from warnings import warn
from unicodedata import normalize as _uninormalize
from typing import Any, Optional, Tuple, List, Callable, Dict, Union
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment