Навигация по терминалу для консольного приложения Python
У меня консольное приложение, сначала пользователь авторизуется, затем ему в консоли выпадает список доступных для него команд.
Условно это так:
print('''
command1
command2
''')
Каждая команда вызывает функцию, это реализовано так:
command_dict = {'command1': get_command1, 'command2': get_command2}
command_dict[input('Введите команду: ')]()
Пользователь вводит команду, например command2 (Получение из бд списка всех юзеров), выполняется функция get_command2 и выводит на экран какие-то данные (допустим).
Можно в терминале как-то обрабатывать нажатия клавиш? стрелки вверх и вниз, ентер, эскейп. Чтобы навигация осуществлялась нажатием клавиш на клавиатуре прямо в терминале. Я видел такое, когда создаешь докер командной Docker init, там прям указатель бегает по строкам терминала когда кнопки вверх / вниз нажимаешь. Моё "меню" сильно больше и содержит вложенные меню, поэтому такая топорная навигация как сейчас - становится запарной. Как это дело привязать к клавишам? Может библиотеки есть какие-то?
Сам в гугле нашёл только графические библиотеки, но мне это не подходит.