11from __future__ import annotations
22
33import re
4- from typing import TYPE_CHECKING
4+ from typing import TYPE_CHECKING , ClassVar
55
66from reactpy_router .converters import CONVERTERS
77from reactpy_router .types import MatchedRoute
@@ -17,16 +17,13 @@ class ReactPyResolver:
1717
1818 URL routing syntax for this resolver is based on Starlette, and supports a mixture of Starlette and Django parameter types."""
1919
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 :
2624 self .element = route .element
27- self .registered_converters = converters or CONVERTERS
2825 self .converter_mapping : ConverterMapping = {}
29- self .param_regex = re .compile (param_pattern )
26+ self .param_regex = re .compile (self . param_pattern )
3027 self .pattern = self .parse_path (route .path )
3128 self .key = self .pattern .pattern # Unique identifier for ReactPy rendering
3229
@@ -49,7 +46,7 @@ def parse_path(self, path: str) -> re.Pattern[str]:
4946
5047 # Check if a converter exists for the type
5148 try :
52- conversion_info = self .registered_converters [param_type ]
49+ conversion_info = self .converters [param_type ]
5350 except KeyError as e :
5451 msg = f"Unknown conversion type { param_type !r} in { path !r} "
5552 raise ValueError (msg ) from e
0 commit comments