1
0
Fork
You've already forked pyrepl
0
Pure python readline - works on Python 3, forked from: https://github.com/pypy/pyrepl
Python 100%
2024年01月18日 18:00:00 +00:00
.github/workflows ci: move to GitHub Actions ( #41 ) 2021年05月30日 15:57:20 +02:00
pyrepl add 3.12 support 2024年01月18日 18:00:00 +00:00
testing Do not call signal.SIG_DFL when forwarding SIGWINCH ( #30 ) 2021年04月11日 12:16:53 +02:00
.travis.yml ci: move to GitHub Actions ( #41 ) 2021年05月30日 15:57:20 +02:00
CHANGES add the fixed #4 to the changelog 2013年01月05日 00:54:56 +01:00
codecov.yml ci: codecov: disable comments 2019年10月16日 22:53:04 +02:00
CREDITS add some names to credits 2010年11月22日 22:54:15 +00:00
LICENSE shorten some repeated license statements 2013年01月05日 01:03:16 +01:00
MANIFEST.in add tests to sdist, addresses issue #7 2013年02月10日 00:55:02 +01:00
pyrepl.rst pyrepl.html to rst conversion 2012年05月03日 11:03:20 +02:00
pythoni move fix to python_reader instead 2004年12月09日 23:03:43 +00:00
pythoni1 Fix pythoni1 ( #11 ) 2019年05月12日 13:11:20 +02:00
README Switch to setupmeta, update maintainer etc ( #12 ) 2019年05月27日 23:17:29 +02:00
setup.py Revert "setup.py: use versioning=dev ( #16 )" ( #42 ) 2021年05月24日 15:48:18 +02:00
TODO Non-incremental history search isn't going to happen by if I have to do it. 2003年01月17日 13:31:31 +00:00
tox.ini ci: move to GitHub Actions ( #41 ) 2021年05月30日 15:57:20 +02:00

This is pyrepl, a readline-a-like in Python.
It requires python 2.7 (or newer) and features:
 * sane multi-line editing
 * history, with incremental search
 * completion, including displaying of available options
 * a fairly large subset of the readline emacs-mode keybindings
 (adding more is mostly just a matter of typing)
 * a liberal, Python-style, license
 * a new python top-level
 * no global variables, so you can run two or more independent readers
 without having their histories interfering.
 * no hogging of control -- it should be easy to integrate pyrepl into
 YOUR application's event loop.
 * generally speaking, a much more interactive experience than readline
 (it's a bit like a cross between readline and emacs's mini-buffer)
 * unicode support (given terminal support)
There are probably still a few little bugs & misfeatures, but _I_ like
it, and use it as my python top-level most of the time.
To get a feel for it, just execute:
$ python pythoni
(One point that may confuse: because the arrow keys are used to move
up and down in the command currently being edited, you need to use ^P
and ^N to move through the history)
If you like what you see, you can install it with the familiar
$ python setup.py install
which will also install the above "pythoni" script.
Summary of 0.8.4:
 + python3 support
 + support for more readline hooks
 + backport various fixes from pypy
 + gracefully break on sys.stdout.close()
Summary of 0.8.3:
 + First release from new home on bitbucket.
 + Various fixes to pyrepl.readline.
 + Allow pyrepl to run if unicodedata is unimportable.
Summary of 0.8.2:
 + This is the same version which is distributed with PyPy 1.4, which uses it
 as its default interactive interpreter:
 - have the possibility of having a "CPython-like" prompt, with ">>>" as
 PS1 and "..." as PS2
 - add the pyrepl.readline module, which exposes a subset of CPython's
 readline implemented on top of pyrepl
 + Add support for colored completions: see e.g. fancycomplete:
 http://bitbucket.org/antocuni/fancycompleter
Summary of 0.8.1:
 + Fixes 
 - in the area of unbound keys and unknown commands
 - in quoted-insert
 - in unicode support
 + make Reader and subclasses new-style classes
 - make the inheritance hierachy look like this
 Reader
 / \
 HistoricalReader CompletingReader
 \ /
 PythonicReader
 Turns out I've been wanting new-style classes since before they existed!
 - needed to slightly change the way keymaps are built
Summary of 0.8.0:
 + A whole bundle of things.
 - unicode support (although working out what encoding the terminal 
 is using can be "tricky")
 - internal rearchitecting 
 - probably a bunch of new bugs...
 + Development and web-presence moved to codespeak.net
Summary of new stuff in 0.7.1:
 + A non-broken setup.py...
Summary of new stuff in 0.7.0:
 + Moved to a package architecture.
 + Wrote a (very simple!) distutils setup.py script.
 + Changed the keyspec format to be more sensible. See the docstring
 in pyrepl/keymap.py for more information.
 + Portability fixes.
 + Various tortuous changes to use 2.2 features where possible but
 retaining 2.1 support (I hope; haven't got a 2.1 here to test with).
 + Jumping up and down on control-C now shouldn't dump you out of
 pyrepl (via a large hammer kind of approach).
 + Bug fixes, particularly in the history handling stuff.
 + reader.Reader has a new method, bind(), intended to be used by the
 user.
 + Changes to the init file handling.
 + Sundry code reorganization. Libraries built on top of pyrepl will
 probably require small modifications (but I'm not sure anyone has
 written any of these yet!).
 + A prototypical pygame console.
 -- see CHANGES for more details and older news