Skip to content

Commit dc03265

Browse files
committed
Add type annotations
1 parent d89793e commit dc03265

File tree

1 file changed

+10
-8
lines changed

1 file changed

+10
-8
lines changed

bpython/keys.py

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,16 +20,18 @@
2020
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
2121
# THE SOFTWARE.
2222

23-
2423
import string
24+
from typing import TypeVar, Generic, Tuple, Dict
25+
26+
T = TypeVar("T")
2527

2628

27-
class KeyMap:
28-
def __init__(self, default=""):
29-
self.map = {}
29+
class KeyMap(Generic[T]):
30+
def __init__(self, default: T) -> None:
31+
self.map: Dict[str, T] = {}
3032
self.default = default
3133

32-
def __getitem__(self, key):
34+
def __getitem__(self, key: str) -> T:
3335
if not key:
3436
# Unbound key
3537
return self.default
@@ -40,14 +42,14 @@ def __getitem__(self, key):
4042
f"Configured keymap ({key}) does not exist in bpython.keys"
4143
)
4244

43-
def __delitem__(self, key):
45+
def __delitem__(self, key: str):
4446
del self.map[key]
4547

46-
def __setitem__(self, key, value):
48+
def __setitem__(self, key: str, value: T):
4749
self.map[key] = value
4850

4951

50-
cli_key_dispatch = KeyMap(tuple())
52+
cli_key_dispatch: KeyMap[Tuple[str, ...]] = KeyMap(tuple())
5153
urwid_key_dispatch = KeyMap("")
5254

5355
# fill dispatch with letters

0 commit comments

Comments
 (0)