Changelogs » Pyrepl

PyUp Safety actively tracks 267,270 Python packages for vulnerabilities and notifies you when to upgrade.



+ ^T at the start of a line should not crash.


+ Fix a couple of embarrassing typos in and
  + Ran pychecker over the rest.  Found a few problems, and that pychecker
  really doesn't like some of my idioms...
  + "import no_such_package.[TAB]" should no longer crash.


+ I learnt how to use distutils properly...
  + Another few days of pygame_console hacking; scrolling support is the


+ Moved to a package architecture.
  + Wrote a (very simple!) distutils script.
  + Changed the keyspec format to be more sensible.  See the docstring in
  pyrepl/ for more information.
  + Portability fixes (coping without FIONREAD, select.poll, sundry
  terminal capibilities, probably some other stuff).
  + 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).
  + Cancelling a command with ^C left an empty string in the history.
  No longer.  Fixing this proved to require making the history code
  more sensible, which was a good thing in itself.
  + reader.Reader has a new method, bind(), intended to be used by the
  + The $PYTHONSTARTUP file is executed in a namespace containing Reader.
  This means you can use the presence of the variable 'Reader' to tell
  whether you're executing in a pyrepl shell.
  + The $PYREPLSTARTUP env. var now overrides $PYTHONSTARTUP for pyrepl
  shells if set.
  + A prototype pygame console.  To use this, call python_reader.main(1)
  instead of just main() or main(0), or run 'pythoni pg'
  - input is a bit messy right now
  - printing large gobs of text is really slow
  - you can't ^C running commands (you have to find the controlling
  terminal and type ^C there).
  - during long running commands we don't pump pygame's event loop, which
  is naughty.  These last two are related and probably require threads
  (and much thought) to fix.
  - probably lots of other warts!


+ Rewrote the low level code to be (hopefully) more portable and
  (certainly) clearer.  Most of the code from 0.5.1 is still present,
  but it's been moved around and refactored (and the names have
  gotten more sensible).
  + The above process fixed a fair few bugs.
  + Implemented a few more emacs-mode bindings.
  + Nailed another couple of differences between my top-level and the
  the default one, including playing nice with Tk.
  + Implemented a saner way of handling window resizes (a sane way of
  handling signals!  Call the Unix police!)


+ Realizing that it wasn't going to run under 2.0 after all, I ripped
  out some of the 2.0 compatibility code.


was like :)