def read_hotkey(suppress=True):
queue = _queue.Queue()<EOL>fn = lambda e: queue.put(e) or e.event_type == KEY_DOWN<EOL>hooked = hook(fn, suppress=suppress)<EOL>while True:<EOL><INDENT>event = queue.get()<EOL>if event.event_type == KEY_UP:<EOL><INDENT>unhook(hooked)<EOL>with _pressed_events_lock:<EOL><INDENT>names = [e.name for e in _pressed_events.values()] + [event.name]<EOL><DEDENT>return get_hotkey_name(names)<EOL><DEDENT><DEDENT>
Similar to `read_key()`, but blocks until the user presses and releases a
hotkey (or single key), then returns a string representing the hotkey
pressed.

Example:

    read_hotkey()
    # "ctrl+shift+p"