Ptpython: улучшенный REPL для Python

Kate

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

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

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



Продвинутая командная строка 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 вам понравится, вы, наверняка, найдёте в нём что-то такое, что пригодится именно вам.

Источник статьи: https://habr.com/ru/company/ruvds/blog/560734/
 
Сверху