1
1
from __future__ import annotations
2
2
3
3
import re
4
- from typing import TYPE_CHECKING
4
+ from typing import TYPE_CHECKING , ClassVar
5
5
6
6
from reactpy_router .converters import CONVERTERS
7
7
from reactpy_router .types import MatchedRoute
@@ -17,16 +17,13 @@ class ReactPyResolver:
17
17
18
18
URL routing syntax for this resolver is based on Starlette, and supports a mixture of Starlette and Django parameter types."""
19
19
20
- def __init__ (
21
- self ,
22
- route : Route ,
23
- param_pattern : str = r"{(?P<name>\w+)(?P<type>:\w+)?}" ,
24
- converters : dict [str , ConversionInfo ] | None = None ,
25
- ) -> None :
20
+ param_pattern : str = r"{(?P<name>\w+)(?P<type>:\w+)?}"
21
+ converters : ClassVar [dict [str , ConversionInfo ]] = CONVERTERS
22
+
23
+ def __init__ (self , route : Route ) -> None :
26
24
self .element = route .element
27
- self .registered_converters = converters or CONVERTERS
28
25
self .converter_mapping : ConverterMapping = {}
29
- self .param_regex = re .compile (param_pattern )
26
+ self .param_regex = re .compile (self . param_pattern )
30
27
self .pattern = self .parse_path (route .path )
31
28
self .key = self .pattern .pattern # Unique identifier for ReactPy rendering
32
29
@@ -49,7 +46,7 @@ def parse_path(self, path: str) -> re.Pattern[str]:
49
46
50
47
# Check if a converter exists for the type
51
48
try :
52
- conversion_info = self .registered_converters [param_type ]
49
+ conversion_info = self .converters [param_type ]
53
50
except KeyError as e :
54
51
msg = f"Unknown conversion type { param_type !r} in { path !r} "
55
52
raise ValueError (msg ) from e
0 commit comments