Skip to main content

Python REPL build on top of prompt_toolkit

Project description

Build Status

Latest Version

ptpython is an advanced Python REPL built on top of the prompt_toolkit library.

It works best on all Posix systems like Linux, BSD and OS X. But it should work as well on Windows. It works on all Python versions from 2.6 up to 3.4.

Installation

To install ptpython, type:

pip install ptpython

The REPL

Run ptpython to get an interactive Python prompt with syntax highlighting, code completion, etc…

https://github.com/jonathanslenders/ptpython/raw/master/docs/images/example1.png

By default, you will have Emacs key bindings, but if you prefer Vi bindings (like in the above screenshot) then run ptpython --vi.

If you want to embed the REPL inside your application at one point, do:

from ptpython.repl import embed
embed(globals(), locals())

Autocompletion

Tab and shift+tab complete the input. In Vi-mode, you can also use Ctrl+N and Ctrl+P.

There is even completion on file names inside strings:

https://github.com/jonathanslenders/ptpython/raw/master/docs/images/file-completion.png

Multiline editing

Usually, multi-line editing mode will automatically turn on when you press enter after a colon, however you can always turn it on by pressing F7.

To execute the input in multi-line mode, you can either press Alt+Enter, or Esc followed by Enter. (If you want the first to work in the OS X terminal, you have to check the “Use option as meta key” checkbox in your terminal settings. For iTerm2, you have to check “Left option acts as +Esc” in the options.)

https://github.com/jonathanslenders/ptpython/raw/master/docs/images/multiline.png

Syntax validation

Before execution, ptpython will see whether the input is syntactically correct Python code. If not, it will show a warning, and move the cursor to the error.

https://github.com/jonathanslenders/ptpython/raw/master/docs/images/validation.png

Other features

Running system commands: Press Meta-! in Emacs mode or just ! in Vi navigation mode to see the “Shell command” prompt. There you can enter system commands without leaving the REPL.

Selecting text: Press Control+Space in Emacs mode on V (major V) in Vi navigation mode.

Configurating

It is possible to create a ~/.ptpython/config.py file to customize the configuration.

Have a look at this example to see what is possible: config.py

You love IPython?

Run ptipython (prompt_toolkit - IPython), to get a nice interactive shell with all the power that IPython has to offer, like magic functions and shell integration. Make sure that IPython has been installed. (pip install ipython)

https://github.com/jonathanslenders/ptpython/raw/master/docs/images/ipython.png

You are using Django?

django-extensions has a shell_plus management command. When ptpython has been installed, it will by default use ptpython or ptipython.

PDB

There is an experimental PDB replacement: ptpdb.

About Windows support

prompt_toolkit works still a little better on systems like Linux and OS X than on Windows, but it certainly is usable. One thing that still needs attention is the colorscheme. Windows terminals don’t support all colors, so we have to create another colorscheme for Windows.

https://github.com/jonathanslenders/ptpython/raw/master/docs/images/windows.png

FAQ

Q

The Ctrl-S forward search doesn’t work and freezes my terminal.

A

Try to run stty -ixon in your terminal to disable flow control.

Q

The Meta-key doesn’t work.

A

For some terminals you have to enable the Alt-key to act as meta key, but you can also type Escape before any key instead.

Alternatives

Have a look at the alternatives.

If you find another alternative, you can create an issue and we’ll list it here. If you find a nice feature somewhere that is missing in ptpython, also create a GitHub issue and mabye we’ll implement it.

Special thanks to

  • Pygments: Syntax highlighter.

  • Jedi: Autocompletion library.

  • Docopt: Command-line interface description language.

  • wcwidth: Determine columns needed for a wide characters.

  • prompt_toolkit for the interface.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ptpython-0.23.tar.gz (42.0 kB view details)

Uploaded Source

Built Distributions

ptpython-0.23-py3-none-any.whl (45.0 kB view details)

Uploaded Python 3

ptpython-0.23-py2-none-any.whl (45.0 kB view details)

Uploaded Python 2

File details

Details for the file ptpython-0.23.tar.gz.

File metadata

  • Download URL: ptpython-0.23.tar.gz
  • Upload date:
  • Size: 42.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for ptpython-0.23.tar.gz
Algorithm Hash digest
SHA256 7ebd1f6e5dd1bf732466a1b3b18e5abc99bda6d062a95d78fd6f922050025301
MD5 8f6e2518eb5efd0af010a953579f7d27
BLAKE2b-256 d269ad9fdf5e220756b2833742dca717399be29a72a4d95ce1e73e018cebcafd

See more details on using hashes here.

File details

Details for the file ptpython-0.23-py3-none-any.whl.

File metadata

File hashes

Hashes for ptpython-0.23-py3-none-any.whl
Algorithm Hash digest
SHA256 367e6b672871edc1b277d041e6a79f91b58e8899d91caca9a54c6a1f70b1e26f
MD5 77cff4591d004f676d17ae6c535edd74
BLAKE2b-256 001dcf032c27bddabf5cdeba33f6af55c9d557530658964b16ecb4f4244c48d8

See more details on using hashes here.

File details

Details for the file ptpython-0.23-py2-none-any.whl.

File metadata

File hashes

Hashes for ptpython-0.23-py2-none-any.whl
Algorithm Hash digest
SHA256 ab1fe91945b7d4faa500f1e186eeb59081c08f8bb10f9c88f4e437c25243e321
MD5 77c0a09a032059eebdfebc002ca2a51a
BLAKE2b-256 34ef373b3b2dac2e6cf0fbb0b4267a2975b953e507565a081711702f3a8633b5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page