4343
4444
4545_T = t .TypeVar ("_T" )
46- _T_K = t .Union [int , str ]
46+ _K = t .Union [int , str ]
4747
4848
4949class Record (tuple , Mapping ):
@@ -119,7 +119,7 @@ def __iter__(self) -> t.Iterator[t.Any]:
119119 yield v
120120
121121 def __getitem__ ( # type: ignore[override]
122- self , key : t .Union [_T_K , slice ]
122+ self , key : t .Union [_K , slice ]
123123 ) -> t .Any :
124124 if isinstance (key , slice ):
125125 keys = self .__keys [key ]
@@ -158,7 +158,7 @@ def get(self, key: str, default: t.Optional[object] = None) -> t.Any:
158158 else :
159159 return default
160160
161- def index (self , key : _T_K ) -> int : # type: ignore[override]
161+ def index (self , key : _K ) -> int : # type: ignore[override]
162162 """ Return the index of the given item.
163163
164164 :param key: a key
@@ -172,13 +172,13 @@ def index(self, key: _T_K) -> int: # type: ignore[override]
172172 elif isinstance (key , str ):
173173 try :
174174 return self .__keys .index (key )
175- except ValueError :
176- raise KeyError (key )
175+ except ValueError as exc :
176+ raise KeyError (key ) from exc
177177 else :
178178 raise TypeError (key )
179179
180180 def value (
181- self , key : _T_K = 0 , default : t .Optional [object ] = None
181+ self , key : _K = 0 , default : t .Optional [object ] = None
182182 ) -> t .Any :
183183 """ Obtain a single value from the record by index or key. If no
184184 index or key is specified, the first value is returned. If the
@@ -203,7 +203,7 @@ def keys(self) -> t.List[str]: # type: ignore[override]
203203 """
204204 return list (self .__keys )
205205
206- def values (self , * keys : _T_K ) -> t .List [t .Any ]: # type: ignore[override]
206+ def values (self , * keys : _K ) -> t .List [t .Any ]: # type: ignore[override]
207207 """ Return the values of the record, optionally filtering to
208208 include only certain values by index or key.
209209
@@ -242,7 +242,7 @@ def items(self, *keys):
242242 return list ((self .__keys [i ], self ._super_getitem_single (i ))
243243 for i in range (len (self )))
244244
245- def data (self , * keys : _T_K ) -> t .Dict [str , t .Any ]:
245+ def data (self , * keys : _K ) -> t .Dict [str , t .Any ]:
246246 """ Return the keys and values of this record as a dictionary,
247247 optionally including only certain values by index or key. Keys
248248 provided in the items that are not in the record will be
@@ -293,14 +293,14 @@ def transform(self, x):
293293 elif isinstance (x , str ):
294294 return x
295295 elif isinstance (x , Sequence ):
296- t = type (x )
297- return t (map (self .transform , x ))
296+ typ = type (x )
297+ return typ (map (self .transform , x ))
298298 elif isinstance (x , Set ):
299- t = type (x )
300- return t (map (self .transform , x ))
299+ typ = type (x )
300+ return typ (map (self .transform , x ))
301301 elif isinstance (x , Mapping ):
302- t = type (x )
303- return t ((k , self .transform (v )) for k , v in x .items ())
302+ typ = type (x )
303+ return typ ((k , self .transform (v )) for k , v in x .items ())
304304 else :
305305 return x
306306
@@ -310,12 +310,12 @@ class RecordTableRowExporter(DataTransformer):
310310
311311 def transform (self , x ):
312312 assert isinstance (x , Mapping )
313- t = type (x )
314- return t (item
315- for k , v in x .items ()
316- for item in self ._transform (
317- v , prefix = k .replace ("\\ " , "\\ \\ " ).replace ("." , "\\ ." )
318- ).items ())
313+ typ = type (x )
314+ return typ (item
315+ for k , v in x .items ()
316+ for item in self ._transform (
317+ v , prefix = k .replace ("\\ " , "\\ \\ " ).replace ("." , "\\ ." )
318+ ).items ())
319319
320320 def _transform (self , x , prefix ):
321321 if isinstance (x , Node ):
@@ -345,8 +345,8 @@ def _transform(self, x, prefix):
345345 ).items ()
346346 )
347347 elif isinstance (x , Mapping ):
348- t = type (x )
349- return t (
348+ typ = type (x )
349+ return typ (
350350 item
351351 for k , v in x .items ()
352352 for item in self ._transform (
0 commit comments