@@ -4,6 +4,7 @@ from typing import (
4
4
Any , Dict , FrozenSet , Iterable , List , Match ,
5
5
Optional , Pattern as _Pattern , Tuple , Union
6
6
)
7
+ import sys
7
8
from sre_constants import _NamedIntConstant as NIC , error as _Error
8
9
9
10
SPECIAL_CHARS : str
@@ -20,7 +21,7 @@ GLOBAL_FLAGS: int
20
21
21
22
class Verbose (Exception ): ...
22
23
23
- class Pattern :
24
+ class _State :
24
25
flags : int
25
26
groupdict : Dict [str , int ]
26
27
groupwidths : List [Optional [int ]]
@@ -33,6 +34,11 @@ class Pattern:
33
34
def checkgroup (self , gid : int ) -> bool : ...
34
35
def checklookbehindgroup (self , gid : int , source : Tokenizer ) -> None : ...
35
36
37
+ if sys .version_info >= (3 , 8 ):
38
+ State = _State
39
+ else :
40
+ Pattern = _State
41
+
36
42
37
43
_OpSubpatternType = Tuple [Optional [int ], int , int , SubPattern ]
38
44
_OpGroupRefExistsType = Tuple [int , SubPattern , SubPattern ]
@@ -43,10 +49,16 @@ _CodeType = Tuple[NIC, _AvType]
43
49
44
50
45
51
class SubPattern :
46
- pattern : Pattern
47
52
data : List [_CodeType ]
48
53
width : Optional [int ]
49
- def __init__ (self , pattern : Pattern , data : List [_CodeType ] = ...) -> None : ...
54
+
55
+ if sys .version_info >= (3 , 8 ):
56
+ state : State
57
+ def __init__ (self , state : State , data : List [_CodeType ] = ...) -> None : ...
58
+ else :
59
+ pattern : Pattern
60
+ def __init__ (self , pattern : Pattern , data : List [_CodeType ] = ...) -> None : ...
61
+
50
62
def dump (self , level : int = ...) -> None : ...
51
63
def __len__ (self ) -> int : ...
52
64
def __delitem__ (self , index : Union [int , slice ]) -> None : ...
@@ -75,7 +87,11 @@ class Tokenizer:
75
87
def error (self , msg : str , offset : int = ...) -> _Error : ...
76
88
77
89
def fix_flags (src : Union [str , bytes ], flag : int ) -> int : ...
78
- def parse (str : str , flags : int = ..., pattern : Pattern = ...) -> SubPattern : ...
79
90
_TemplateType = Tuple [List [Tuple [int , int ]], List [str ]]
80
- def parse_template (source : str , pattern : _Pattern [Any ]) -> _TemplateType : ...
91
+ if sys .version_info >= (3 , 8 ):
92
+ def parse (str : str , flags : int = ..., state : State = ...) -> SubPattern : ...
93
+ def parse_template (source : str , state : _Pattern [Any ]) -> _TemplateType : ...
94
+ else :
95
+ def parse (str : str , flags : int = ..., pattern : Pattern = ...) -> SubPattern : ...
96
+ def parse_template (source : str , pattern : _Pattern [Any ]) -> _TemplateType : ...
81
97
def expand_template (template : _TemplateType , match : Match [Any ]) -> str : ...
0 commit comments