11from abc import ABC , abstractmethod
22from collections .abc import ItemsView , Iterator , Mapping , Set
3- from typing import Any , List , Tuple , TypeVar , Union
3+ from typing import Any , TypeVar , Union
44
55T = TypeVar ("T" )
66V = TypeVar ("V" )
@@ -44,7 +44,7 @@ class ListBackedSet(Set[T], ABC):
4444 def __len__ (self ) -> int : ...
4545
4646 @abstractmethod
47- def __getitem__ (self , index : Union [int , slice ]) -> Union [T , List [T ]]: ...
47+ def __getitem__ (self , index : Union [int , slice ]) -> Union [T , list [T ]]: ...
4848
4949 @abstractmethod
5050 def __iter__ (self ) -> Iterator [T ]: ...
@@ -57,13 +57,13 @@ def _binary_search(self, item: Any) -> int:
5757
5858
5959class ArraySet (ListBackedSet [K ]):
60- __data : List [K ]
60+ __data : list [K ]
6161
6262 def __init__ (self ):
6363 raise NotImplementedError ("Use ArraySet.empty() or other class methods instead" )
6464
6565 @classmethod
66- def __create (cls , data : List [K ]) -> "ArraySet[K]" :
66+ def __create (cls , data : list [K ]) -> "ArraySet[K]" :
6767 instance = super ().__new__ (cls )
6868 instance .__data = data # noqa: SLF001
6969 return instance
@@ -80,7 +80,7 @@ def empty(cls) -> "ArraySet[K]":
8080 def __len__ (self ) -> int :
8181 return len (self .__data )
8282
83- def __getitem__ (self , index : Union [int , slice ]) -> Union [K , List [K ]]:
83+ def __getitem__ (self , index : Union [int , slice ]) -> Union [K , list [K ]]:
8484 return self .__data [index ]
8585
8686 def plusOrThis (self , element : K ) -> "ArraySet[K]" :
@@ -95,7 +95,7 @@ def plusOrThis(self, element: K) -> "ArraySet[K]":
9595
9696
9797class _ArrayMapKeys (ListBackedSet [K ]):
98- def __init__ (self , data : List [Union [K , V ]]):
98+ def __init__ (self , data : list [Union [K , V ]]):
9999 self .__data = data
100100
101101 def __len__ (self ) -> int :
@@ -118,8 +118,8 @@ def __iter__(self) -> Iterator[K]:
118118 return (self .__data [i ] for i in range (0 , len (self .__data ), 2 )) # type: ignore
119119
120120
121- class _ArrayMapEntries (ListBackedSet [Tuple [K , V ]], ItemsView [K , V ]):
122- def __init__ (self , data : List [Union [K , V ]]):
121+ class _ArrayMapEntries (ListBackedSet [tuple [K , V ]], ItemsView [K , V ]):
122+ def __init__ (self , data : list [Union [K , V ]]):
123123 self .__data = data
124124
125125 def __len__ (self ) -> int :
@@ -138,21 +138,21 @@ def __getitem__(self, index: Union[int, slice]): # type: ignore
138138 else :
139139 return (self .__data [2 * index ], self .__data [2 * index + 1 ])
140140
141- def __iter__ (self ) -> Iterator [Tuple [K , V ]]:
141+ def __iter__ (self ) -> Iterator [tuple [K , V ]]:
142142 return (
143143 (self .__data [i ], self .__data [i + 1 ]) for i in range (0 , len (self .__data ), 2 )
144144 ) # type: ignore
145145
146146
147147class ArrayMap (Mapping [K , V ]):
148- __data : List [Union [K , V ]]
148+ __data : list [Union [K , V ]]
149149 __keys : ListBackedSet [K ]
150150
151151 def __init__ (self ):
152152 raise NotImplementedError ("Use ArrayMap.empty() or other class methods instead" )
153153
154154 @classmethod
155- def __create (cls , data : List [Union [K , V ]]) -> "ArrayMap[K, V]" :
155+ def __create (cls , data : list [Union [K , V ]]) -> "ArrayMap[K, V]" :
156156 instance = cls .__new__ (cls )
157157 instance .__data = data # noqa: SLF001
158158 instance .__keys = _ArrayMapKeys (data ) # noqa: SLF001
@@ -195,7 +195,7 @@ def plus(self, key: K, value: V) -> "ArrayMap[K, V]":
195195 new_data .insert (insert_at * 2 + 1 , value )
196196 return ArrayMap .__create (new_data )
197197
198- def minus_sorted_indices (self , indices : List [int ]) -> "ArrayMap[K, V]" :
198+ def minus_sorted_indices (self , indices : list [int ]) -> "ArrayMap[K, V]" :
199199 new_data = self .__data [:]
200200 adjusted_indices = [i * 2 for i in indices ] + [i * 2 + 1 for i in indices ]
201201 adjusted_indices .sort (reverse = True )
0 commit comments