[Перевод] Ptpython: улучшенный REPL для Python

Возникало ли у вас когда-нибудь желание быстро испытать какую-нибудь свежую идею, прибегнув к интерфейсу командной строки Python, к REPL? Вероятно, если речь идёт об эксперименте буквально с несколькими строками кода, вам просто не захочется создавать для этого новый «блокнот» Jupyter.

Но в подобной ситуации, возможно, вас не особенно порадует и перспектива использования классической консоли Python, так как она, в отличие от Jupyter Notebook, не поддерживает автодополнение ввода и не умеет работать с документационными строками. В REPL, кроме того, нельзя, после нажатия на Enter, исправлять ошибки в коде.

Что если можно было бы превратить довольно-таки скучную командную строку Python в многофункциональный инструмент, вроде того, запись работы с которым показана ниже?

1*l7AiHw8xSMjMy9SDl3VozQ.gif

Продвинутая командная строка Python

Собственно, именно на тех, у кого возникает подобное желание, и ориентирован проект ptpython.

Что такое ptpython?


Ptpython можно назвать улучшенным интерфейсом командной строки Python. Установить его можно так:
pip install ptpython

А для того чтобы его запустить — достаточно воспользоваться следующей командой:
ptpython

Возможности по вводу данных


▍Проверка вводимых данных


Если, работая в классической командной строке Python, допустить ошибку при вводе команды, то, после нажатия на Enter, нельзя вернуться к неправильному коду и его исправить.
bb39088724c58bbf3cd65820fa772df6.png

Ошибка, допущенная в обычной командной строке Python

Но ptpython позволяет проверить то, что введено с клавиатуры, ещё до нажатия на Enter. На следующем анимированном изображении показано, что пропущенная закрывающая скобка вызывает появление сообщения об ошибке. Эту ошибку можно тут же исправить.

1*O0-CuF2wMIc9mbcFSf4qGA.gif

Исправление ошибки при работе в ptpython 

▍Автодополнение ввода, основанное на исторических данных


Если вы когда-нибудь подумывали о том, что при работе с командной строкой Python не помешали бы возможности по автодополнению ввода, основанному на исторических данных, то знайте, что ptpython это поддерживает.
1*u4Ixjn3qXI_NtEu2LnhQdA.gif

Автодополнение ввода, основанное на исторических данных

Но эта возможность ptpython, по умолчанию, не включена. Правда, для того чтобы включить её, достаточно, воспользовавшись клавишей F2, вызвать меню, в котором, пользуясь клавишами-стрелками, надо найти опцию Auto suggestion и перевести её в состояние on. Для закрытия меню надо нажать на Enter.

b5697c82f7b1ea91b039d74bf02db271.png

Включение автодополнения ввода

После включения опции Auto suggestion у вас должно заработать автодополнение ввода, основанное на истории. Для того чтобы воспользоваться тем, что предлагает ptpython, достаточно нажать клавишу-стрелку Вправо.

▍Использование подсказок при вводе кода


Если при работе с объектом ввести точку — будет выведен список его свойств и методов.
1*GY8iDr8Dw2fttehQsDkRvw.gif

Подсказки, выводимые после ввода точки

Для выбора нужного варианта используются клавиши-стрелки, а после выбора подходящего варианта можно продолжить ввод своего кода.

▍Вставка данных из истории команд


Посмотреть историю команд можно, нажав клавишу F3. Для того чтобы выделить код, который надо скопировать в рабочую область из панели истории, нужно перейти на соответствующую строку клавишами-стрелками и нажать на клавишу Пробел.

После того, как выбор нужного участка кода завершён, достаточно нажать на Enter и соответствующий код будет вставлен в рабочую область.

1*ykG2O_EUoSiVW1jddaYokw.gif

Копирование кода из панели истории

Обратите внимание на то, что код в рабочую область будет вставлен в порядке его выполнения.

▍Режим вставки


Возникало ли у вас когда-нибудь желание отредактировать код, вставленный в командную строку Python? В обычном Python REPL сделать этого нельзя.
5d05ff27c622af648edd56d7c6874f75.png

Работа в обычной командной строке Python

А ptpython позволяет редактировать вставленный код, доводя его до нужного состояния.

1*XRp0EIFonn-nxFgcI_aDzw.gif

Редактирование вставленного кода в ptpython

Для того чтобы включить режим вставки — достаточно нажать на клавишу F6. Когда этот режим активирован — код, при нажатии на Enter, выполняться не будет. А после того, как код будет готов к выполнению — нужно снова нажать F6 для выключения режима вставки, а потом дважды нажать на Enter.

Возможности по выводу данных


▍Просмотр сигнатур функций и документационных строк


Ptpython позволяет просматривать сведения о параметрах функций и конструкторов.
fd6cbb10025047e3452746449945bf1b.png

Просмотр сведений о конструкторе DataFrame

Ещё можно смотреть документационные строки классов и функций. Для включения этой возможности нужно открыть меню (F2), а потом включить опцию Show docstring.

5f028abe51501cd2f165468aa6d7292e.png

Включение вывода документационных строк

Теперь можно просматривать документацию по используемым программным конструкциям.

b88fd8cc3dbc4fc539c7dc519c70d53a.png

Вывод документации

▍Выделение парных скобок


Для того чтобы повысить удобство работы со сложными конструкциями, в которых используются скобки, ptpython умеет выделять парные скобки.
8c5bffb150f541760944cbd5a3e254b4.png

Выделение парных скобок

▍Добавление пустой строки после введённых или выведенных данных


Если нужно улучшить читабельность кода — можно сделать так, чтобы после выводимых или вводимых данных автоматически добавлялись бы пустые строки.
e6026469f503c20934bc156c98fd1ec8.png

Улучшение читабельности кода за счёт пустых строк

Для того чтобы включить эту возможность — нужно, вызвав меню клавишей F2, включить опции Blank line after input и Blank line after output.

82f05e33edbe16212a87546b50d81166.png

Включение опций Blank line after input и Blank line after output

Выделение синтаксических конструкций


Ptpython, кроме прочего, поддерживает подсветку синтаксиса.
2a5f87e5252d5b3988bfe0c29e20adee.png

Подсветка синтаксиса

Для переключения цветовых тем можно воспользоваться клавишей-стрелкой Вправо, нажимая её до тех пор, пока не будет выбрана подходящая тема.

В системе имеется 39 тем. Если, например, вам хочется выбрать такую же цветовую схему, которая используется в Sublime Text — знайте, что она имеет код monokai. Этот код нужно ввести в опции меню Code, которую можно найти в разделе Colors.

7792342a9e60d2a7e1d9b4b9ad54f1cf.png

Настройка темы в меню

Магические команды IPython


Ptpython поддерживает магические команды IPython. Для того чтобы получить доступ к возможностям IPython, нужно воспользоваться командой ptipython.
bac96be09a164993a4057ea1817f7056.png

Возможности IPython
fa55488b5fc2fe1b1df9500f333cf89c.png

Возможности IPython

Настройка ptpython


Те изменения, которые вносят в настройки ptpython во время работы, исчезают после окончания сеанса работы с программой.

Настройки, которые используются в каждом сеансе, должны быть описаны в файле $XDG_CONFIG_HOME/ptpython/config.py. В Linux путь к нему выглядит как ~/.config/ptpython/config.py.

Вот файл, который содержит все те полезные настройки программы, о которых мы говорили выше.

Итоги


В этом материале мы рассмотрели лишь мои любимые возможности ptpython. А их, на самом деле, гораздо больше. Если ptpython вам понравится, вы, наверняка, найдёте в нём что-то такое, что пригодится именно вам.

Планируете ли вы пользоваться ptpython?

72c231bb14cabc532efed2135b0126e7.jpg

oug5kh6sjydt9llengsiebnp40w.png

© Habrahabr.ru