pyplay is a command line tool that invokes the interactive Python shell, but starts it up with tab completion turned on, common paths added to sys.path, common modules preloaded and optionally some startup python commands run.
It is configurable, both at a system-wide level and a per project (directory) level.
Install from sources:
sudo python setup.py install
To start a pyplay shell, just enter a command like this:
pyplay # Start Python and handy modules pyplay --none # No extras pyplay -re yaml # All except re, then add yaml pyplay --none yaml # Nothing except yaml pyplay xyz test_foo # import xyz and test_foo
If you use pyplay a lot and always want to preload the same modules, you can set up your own custom configuration in a file called ~/.pyplay/config.yaml or ./pyplay/config.yaml like this:
# Is readline & tab completion on? readline: true # Added to the front of sys.path. pythonpath: - . - lib - tests # Modules to import by default. modules: - os - sys - yaml # Commands to run by default - from yaml import *
If you explicitly supply the PYPLAY_CONFIG_DIR environment variable, that directory will be used to find the config.yaml file. If you set PYPLAY_CONFIG_DIR to an empty string, no config file will be read, even if the one of them exists.
Also, PYPLAY_CONFIG_DIR, ~/.pyplay/ and ./pyplay/ will be added to the front of sys.path if they exist, so you can put modules that you want to play with in those directories.
- Clear the list of modules to import
- Add a module to the import list
- Remove a module from the import list
Here is what a session looks like on startup:
$ pyplay foo bar Python 2.6.2 (r262:71600, Apr 16 2009, 09:17:39) [GCC 4.0.1 (Apple Computer, Inc. build 5250)] on darwin Type "help", "copyright", "credits" or "license" for more information. *** Welcome to PyPlay version 0.3 -- Type h() for help. *** PyPlay tab completion enabled >>> import os >>> import sys >>> import re >>> import foo >>> import bar >>>
Pyplay adds some extra shell commands. The current commands are:
- Show the PyPlay help screen.
- Print a YAML dump of any object. (Requires the yaml module)
The interactive Python shell is a great tool for learning Python, because Python has such great introspection. The only things that bugged me about it are 1) I am always needing to set it up a certain way every time I use it, B) and that it doesn't have tab completion on by default. pyplay takes care of these issues nicely.
pyplay is my first (but definitely not last) Python module. I hope you find it useful. Please email me if you have any problems or suggestions.
Kind regards, Ingy dot Net
In a future release, you might see:
- Logging of shell commands
- Save readline history between sessions
- More PyPlay special commands