bpython is a fancy interface to the Python interpreter for Unix-like operating systems.
A few people asked for stuff like syntax highlighting and autocomplete for the Python interactive interpreter. IPython seems to offer this (plus you can get readline behaviour in the vanilla interpreter) but I tried IPython a couple of times. Perhaps I didn't really get it, but I get the feeling that the ideas behind IPython are pretty different to bpython. I didn't want to create a whole development environment; I simply wanted to provide a couple of neat features that already exist and turn them into something a little more interactive.
The idea is to provide the user with all the features in-line, much like modern IDEs, but in a simple, lightweight package that can be run in a terminal window, so curses seemed like the best choice. Sorry if you use Windows.
bpython doesn't attempt to create anything new or groundbreaking, it simply brings together a few neat ideas and focuses on practicality and usefulness. For this reason, the "Rewind" function should be taken with a pinch of salt, but personally I have found it to be very useful. I use bpython now whenever I would normally use the vanilla interpreter, e.g. for testing out solutions to people's problems on IRC, quickly testing a method of doing something without creating a temporary file, etc.
- In-line syntax highlighting.
- Readline-like autocomplete with suggestions displayed as you type.
- Expected parameter list for any Python function. New to 0.2.0: Now uses pydoc to attempt to divine params for C functions.
- "Rewind" function to pop the last line of code from memory and re-evaluate. Note: this is only really useful when laying out classes and functions, since a true "undo" function is impossible, so be careful when using this.
- Send the code you've entered off to a pastebin and display the pastebin URL for copying, etc.
- Save the code you've entered to a file.
- New to 0.3.0: Auto-indentation.