4
4
import typing
5
5
6
6
from pyrsistent import pmap
7
+ from pyrsistent .typing import PMap
7
8
import attr
8
9
9
10
from jsonschema .exceptions import UndefinedTypeCheck
@@ -18,14 +19,8 @@ def _typed_pmap_converter(
18
19
str ,
19
20
typing .Callable [["TypeChecker" , typing .Any ], bool ],
20
21
],
21
- ) -> typing .Mapping [str , typing .Callable [["TypeChecker" , typing .Any ], bool ]]:
22
- return typing .cast (
23
- typing .Mapping [
24
- str ,
25
- typing .Callable [["TypeChecker" , typing .Any ], bool ],
26
- ],
27
- pmap (init_val ),
28
- )
22
+ ) -> PMap [str , typing .Callable [["TypeChecker" , typing .Any ], bool ]]:
23
+ return pmap (init_val )
29
24
30
25
31
26
def is_array (checker , instance ):
@@ -83,7 +78,7 @@ class TypeChecker:
83
78
The initial mapping of types to their checking functions.
84
79
"""
85
80
86
- _type_checkers : typing . Mapping [
81
+ _type_checkers : PMap [
87
82
str , typing .Callable [["TypeChecker" , typing .Any ], bool ],
88
83
] = attr .ib (
89
84
default = pmap (),
@@ -159,9 +154,8 @@ def redefine_many(self, definitions=()):
159
154
160
155
A new `TypeChecker` instance.
161
156
"""
162
- return attr .evolve (
163
- self , type_checkers = self ._type_checkers .update (definitions ),
164
- )
157
+ type_checkers = self ._type_checkers .update (definitions )
158
+ return attr .evolve (self , type_checkers = type_checkers )
165
159
166
160
def remove (self , * types ):
167
161
"""
@@ -184,13 +178,13 @@ def remove(self, *types):
184
178
if any given type is unknown to this object
185
179
"""
186
180
187
- checkers = self ._type_checkers
181
+ type_checkers = self ._type_checkers
188
182
for each in types :
189
183
try :
190
- checkers = checkers .remove (each )
184
+ type_checkers = type_checkers .remove (each )
191
185
except KeyError :
192
186
raise UndefinedTypeCheck (each )
193
- return attr .evolve (self , type_checkers = checkers )
187
+ return attr .evolve (self , type_checkers = type_checkers )
194
188
195
189
196
190
draft3_type_checker = TypeChecker (
0 commit comments