- PVSM.RU - https://www.pvsm.ru -

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

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

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

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

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


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

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

Что такое ptpython?

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

pip install ptpython

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

ptpython

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Настройка ptpython

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

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

Автор: ru_vds

Источник [2]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/razrabotka/364938

Ссылки в тексте:

[1] Ptpython: https://github.com/prompt-toolkit/ptpython

[2] Источник: https://habr.com/ru/post/560734/?utm_source=habrahabr&utm_medium=rss&utm_campaign=560734