Package: pygnurl
pygnurlis a dynamic GNU Readline interface. It provides:A Pythonic interface similar torlfor ease of useAn interface to custom bindable functionsAreadlinecompatibility layer for existing codeYou should usepygnurlif you specifically want to use GNU Readline from
your Python program. If you are just looking for tools to help you build a
command line interface, you may preferprompt_toolkit.Requirementspygnurldynamically loads a Readline library, so you need a version
matching the architecture of your Python interpreter (not necessarily your
system).Linux users should already have Readline as part of the standard library.pygnurluses this version by default.Windows users can get a pre-built 32-bit Readline DLL fromgnuwin32.More information on where to get Readline can be found on theReadline home
page.Quick Start GuideInstallpygnurlusingpip install pygnurl.Set thePYGNURL_LIBenvironment variable to the filename of your Readline
library. This will be loaded using the shared library search order rules of
your system. (Linux users can skip this step to use the system version).If your version of Python already has areadlinemodule, you will need to
do one of the following things to letpygnurloverride it:Add<site-packages>/pygnurl/modulesto yourPYTHONPATHenvironment
variableInstall usingeasy_installinstead ofpipIf you are using Python 3.4 or later, completion and history will be set up for
you automatically. If you are using an older version, you will need to set this
up yourself.>>> import rlcompleter
>>> import readline
>>> readline.parse_and_bind('tab: complete')
>>> r<tab><tab>Examplespygnurl/examples/startup.py- An example startup file suitable for everyday
use. Point thePYTHONSTARTUPenvironment variable at this file to
automatically get tab completion and saved history in your interpreter. (If you
are using Python 3.4 or later, you do not need to use this example.)pygnurl/examples/functions.py- An example startup file demostrating a
custom bindable command. You must also use this with thePYTHONSTARTUPenvironment variable. Runhelp(pygnurl.examples.functions)for more
information.pygnurl/examples/mycmd.py- A simple command line showing tab completion
capabilities. The argument tocatis completed based on your local
filesystem.Motivationpygnurlaims to provide full GNU Readline support across all platforms with
no compilation overhead. Any pre-built Readline library should be able to be
dropped in with no code modifications. If necessary, version- or
platform-specific compatibility fixes can be implemented in Python, not C.DevelopmentFor source code, questions and bug reports, visit the GitHub repository:https://github.com/evanunderscore/pygnurlAlternativesreadline- Part of the standard library. Python on Mac OS X may implement this
using libedit instead of GNU Readline and must be configured accordingly.pyreadline- A python implmentation of GNU readline.gnureadline- The standard Python readline extension statically linked against
the GNU readline library.rl- Alternative Python bindings for GNU Readline.prompt_toolkit- Library for building powerful interactive command lines in
Python.PlatformsLibraryInterfacepygnurlAnyDynamicExtendedreadlineUnix-likeStaticBasicpyreadlineWindowsPure PythonBasicgnureadlineUnix-likeStaticBasicrlUnix-likeStaticExtendedprompt_toolkitAnyPure PythonAlternativeKnown BugsANSI color codes in the IPython terminal are not able to be printed. As a
workaround, the codes are stripped and a plain prompt is displayed instead.libreadline6 from MinGW lags behind one keystroke when using the arrow keys.
This appears to be related to the Readline callback interface.