@@ -92,7 +92,7 @@ def keycodes(self, char):
9292
9393 return codes
9494
95- def _above128charval_to_keycode (self , char_val ):
95+ def _above128char_to_keycode (self , char ):
9696 """Return keycode for above 128 ascii codes.
9797
9898 Since the values are sparse, this may be more space efficient than bloating the table above
@@ -101,12 +101,15 @@ def _above128charval_to_keycode(self, char_val):
101101 :param char_val: ascii char value
102102 :return: keycode, with modifiers if needed
103103 """
104- if char_val in self .HIGHER_ASCII :
105- return self .HIGHER_ASCII [char_val ]
106- if ord (char_val ) in self .HIGHER_ASCII :
107- return self .HIGHER_ASCII [char_val ]
104+ if char in self .HIGHER_ASCII :
105+ return self .HIGHER_ASCII [char ]
106+ if ord (char ) in self .HIGHER_ASCII :
107+ return self .HIGHER_ASCII [ord ( char ) ]
108108
109- raise ValueError ("Unsupported non-ASCII character \\ x{}." .format (ord (char_val )))
109+ raise ValueError (
110+ "Unsupported non-ASCII character {} \\ x{}."
111+ .format (str (char ), ord (char ))
112+ )
110113
111114 def _char_to_keycode (self , char ):
112115 """Return the HID keycode for the given ASCII character, with the SHIFT_FLAG possibly set.
@@ -115,9 +118,12 @@ def _char_to_keycode(self, char):
115118 You must clear this bit before passing the keycode in a USB report.
116119 """
117120 char_val = ord (char )
118- if char_val > 128 :
119- return self ._above128charval_to_keycode (char )
121+ if char_val > len ( self . ASCII_TO_KEYCODE ) :
122+ return self ._above128char_to_keycode (char )
120123 keycode = self .ASCII_TO_KEYCODE [char_val ]
121124 if keycode == 0 :
122- raise ValueError ("No keycode available for character." )
125+ raise ValueError (
126+ "No keycode available for character {} \\ x{}."
127+ .format (str (char ), char_val )
128+ )
123129 return keycode
0 commit comments