code: def vk_to_character(self, vk, modifiers=[]):
          
          if vk in self.non_layout_keys:
              # Not a character
              return self.non_layout_keys[vk]
          elif vk in self.layout_specific_keys:
              if 'shift' in modifiers:
                  return self.layout_specific_keys[vk][1]
              return self.layout_specific_keys[vk][0]
          else:
              # Invalid vk
              raise ValueError("Invalid scan code: {}".format(vk))
docs: Returns a character corresponding to the specified scan code (with given
          modifiers applied)