11import enum
22import sre_compile
3+ import sre_constants
34import sys
45from _typeshed import ReadableBuffer
56from collections .abc import Callable , Iterator , Mapping
@@ -21,7 +22,6 @@ __all__ = [
2122 "finditer" ,
2223 "compile" ,
2324 "purge" ,
24- "template" ,
2525 "escape" ,
2626 "error" ,
2727 "A" ,
@@ -41,10 +41,17 @@ __all__ = [
4141 "Match" ,
4242 "Pattern" ,
4343]
44+ if sys .version_info < (3 , 13 ):
45+ __all__ += ["template" ]
4446
4547if sys .version_info >= (3 , 11 ):
4648 __all__ += ["NOFLAG" , "RegexFlag" ]
4749
50+ if sys .version_info >= (3 , 13 ):
51+ __all__ += ["PatternError" ]
52+
53+ PatternError = sre_constants .error
54+
4855_T = TypeVar ("_T" )
4956
5057@final
@@ -198,8 +205,9 @@ class RegexFlag(enum.IntFlag):
198205 VERBOSE = X
199206 U = sre_compile .SRE_FLAG_UNICODE
200207 UNICODE = U
201- T = sre_compile .SRE_FLAG_TEMPLATE
202- TEMPLATE = T
208+ if sys .version_info < (3 , 13 ):
209+ T = sre_compile .SRE_FLAG_TEMPLATE
210+ TEMPLATE = T
203211 if sys .version_info >= (3 , 11 ):
204212 NOFLAG = 0
205213
@@ -218,8 +226,9 @@ X = RegexFlag.X
218226VERBOSE = RegexFlag .VERBOSE
219227U = RegexFlag .U
220228UNICODE = RegexFlag .UNICODE
221- T = RegexFlag .T
222- TEMPLATE = RegexFlag .TEMPLATE
229+ if sys .version_info < (3 , 13 ):
230+ T = RegexFlag .T
231+ TEMPLATE = RegexFlag .TEMPLATE
223232if sys .version_info >= (3 , 11 ):
224233 NOFLAG = RegexFlag .NOFLAG
225234_FlagsType : TypeAlias = int | RegexFlag
@@ -287,4 +296,6 @@ def subn(
287296) -> tuple [bytes , int ]: ...
288297def escape (pattern : AnyStr ) -> AnyStr : ...
289298def purge () -> None : ...
290- def template (pattern : AnyStr | Pattern [AnyStr ], flags : _FlagsType = 0 ) -> Pattern [AnyStr ]: ...
299+
300+ if sys .version_info < (3 , 13 ):
301+ def template (pattern : AnyStr | Pattern [AnyStr ], flags : _FlagsType = 0 ) -> Pattern [AnyStr ]: ...
0 commit comments