Here you can see the full list of changes between each pyte release.
- Yet another fix of
Screen.set_marginsfor the case of CSI with no arguments. See issue #61 on GitHub.
Screen.erase_in_displayto accept additional positional arguments as some some
clearimplementations include a
;after the first parameter causing
pyteto assume a
StreamFSM to reinit on error when parsing control sequence.
- Added support for blink to the SGR handler. See PR #120 on GitHub. Thanks to @eight04!
Streamto skip XTerm-specific
ESC]...$[a-z]sequences. See issue #117 on GitHub.
Released on April 6th, 2018.
This release is NOT backward compatible with 0.7.X branch!
- Modified the logic around tracking position in the
HistoryScreen, allowing the full history to be accessed. See PR #96 on GitHub.
- Send C0 encoded CSI instead of C1, avoiding compatibility issues with unicode. See issue #99 on GitHub.
Streamto really ignore
SIin UTF-8 mode. See PR #106 on GitHub. Thanks to @jwodder!
- Fixed DECSCNM handling bug. The attributes of
Screen.default_charwere not reversed leaving all blank characters as-is. See PR #102 on GitHub. Thanks to @zblz!
- Correctly terminate OSC mode in
Streamon receipt of a C0 encoded
- Allowed resetting cursor attributes in the middle of the SGR sequence. See PR#109 on GiHub. Thanks @andreivasiliu!
- On exit from DECCOLM mode, restore the terminal width from before entering DECCOLM mode.
Screen.select_graphic_renditionto ignore malformed 256/24bit colours. See issue #115 on GitHub.
Released on October 7th 2017.
This release is NOT backward compatible with 0.6.X branch!
- Removed deprecated
- Removed deprecated
how == 3handling in
DiffScreen. Its functionality has been backported to the base
- Fixed a bug in
DiffScreen.drawwhich incorrectly handled the case when the input of
drawrequired several lines.
- Fixed a bug in
Screenwhich did not ignore
ESC (argument in UTF8 mode. See issue #88 on GitHub.
Screen.resizeto do nothing if the requested size matches the current one.
- Disallowed private mode for
Screen.report_device_attributes. This was causing an infinite loop in Emacs and Vim. See issue #81 on GitHub.
- Fixed a bug in OSC parsing, which caused
Streamto hang upon receiving a palette reset request
ESC ] R.
Screen.resetnot to reset DECOM. See discussion in issue #95 on Github.
- Changed the first tabstop to be at the 9-th column. See PR #98 on GitHub. Thanks to @gordon-quad!
Released on May 28th 2017
This release is NOT backward compatible with 0.5.X branch!
Stream.feedfor plain-text input. The code was backported from
pymuxproject by Jonathan Slenders.
Screen.bufferto dict-of-dicts. The idea was borrowed from
pymuxproject by Jonathan Slenders. The implementation was done by @istarion.
- Further optimized
Stream._parser_fsmby forcing static binding between
Screenmethods. The code was backported from
pmuxproject by Jonathan Slenders.
Streamto a single listener and deprecated
detach. The old logic can be emulated by a fanout proxy, forwarding events to a list of its listeners.
DebugScreento workaround the single listener limitation (previsouly
DebugStreamimplicitly added a listener when instantiated). Unlike other screens
DebugScreendoes not maintain any state.
DebugScreento emit JSON instead of custom text format.
- Removed overly generic
Screen.set_charsetto a more appropriate
- Added support for ECMA-035 DOCS command to
ByteStreamwhich no longer accepts
encodingas an argument and instead sets it as instructed by DOCS. The default encoding is assumed to be UTF-8.
- Added support for OSC sequences allowing to set terminal title and icon name.
- Allowed 256 and 24bit colours in
- Added support for
Screen.select_graphic_rendition, see issue #57 on GitHub.
Screen.select_graphic_renditionto ignore 0 if it is given along with other attributes, ie
"0;1;2"is now equivalent to
- Fixed rendering of multicolumn characters at ``Screen` boundaries. Thanks to @shaform! See PR #55 on GitHub.
Screen.displayin the case of multicolumn characters. See issue #52 on GitHub.
- Fixed DECSTBM handling in case of missing arguments. See issue #61 on GitHub.
- Fixed the way
Screen.cursor_downinteract with the scrolling region. See #63 on GitHub.
- Added a minimal web terminal example by @demiurg906. For a faster and more fully-featured version, see demiurg906/pyte_gui.
Screen.cursor_backwhen called after the draw in the last column.
Screen.inser_characterswhen called with an argument larger than the number of columns. Thanks to @istarion! See PR #74 on GitHub.
Screen.erase_in_displaywhich did not handle all values supported by
TERM=linux. See #80 on GitHub.
Pi Day bugfix release, released on March 14th, 2016
- Fixed a bug in handling DA request. See issue #46 on GitHub.
Bugfix release, released on January 10th 2015
- Fixed dependencies in setup.py.
Released on January 10th 2015
Stream.consumein favour of
Stream.feed. The latter allows for a more efficient implementation because it operates on the whole input string.
Streamperformance by converting FSM to a coroutine as suggested by Jonathan Slenders in issue #41 on GitHub.
- Added support for DA (device attributes) and DSR (device status report). The implementation is based on the code by Jonathan Slenders. See issue #41 on GitHub.
Screen.drawnow properly handles full/ambiguous-width characters. Thanks to the excellent wcwidth library by Jeff Quast.
- Removed re-exports of abbreviated modules (e.g.
moas a synonym for
Screen.sizewhich misleadingly returned constructor arguments in reverse order. Please use
- Fixed a bug in
ByteStreamwhich suppressed the exception if all of the decoders failed to process the input.
Bugfix release, released on August 4th 2015
- Fixed a bug in
DiffScreen.drawwhich marked the wrong line as changed when DECAWM was enabled.
Streamnow recognizes ESC % sequences for selecting control character set. However, these operations are no-op in the current version in a sense that
ByteStreamdoes not handle them to change encoding.
Bugfix release, released on December 3rd 2014
- Fixed a bug in
Charinitialization, see issue #24 on GitHub for details.
- Updated error message in
stris relevant for Python 3, but not Python 2.
Released on January 13th 2014
Screendoes NOT inherit from builtin
Screen.bufferto access individual characters directly. This is a backward INCOMPATIBLE change.
Char._asdictwas broken on Python 3.3 because of the changes in
LAT1_MAPwas an iterator because of the change in map semantics in Python 3.
Screento issues a CR in addition to LF when DECAWM mode is set and the cursor is at the right border of the screen. See http://www.vt100.net/docs/vt510-rm/DECAWM and issue #20 on GitHub for details.
Bugfix release, released on March 28th 2013
pyteand tests suite to work under Python 3.3.
Screenso that LNM mode is reset by default, see http://www.vt100.net/docs/vt510-rm/LNM and issue #11 on GitHub for details.
Bugfix release, released on February 29th 2012
Technical release, released on September 1st 2011
- Added MANIFEST.in and CenOS spec file
Bugfix release, released on July 17th 2011
pdbcalls, left from
HistoryScreendebugging – silly, I know :)
Bugfix release, released on July 12th 2011
- Fixed encoding issues in
DebugStream– Unicode was not converted to bytes properly.
- Fixed G0-1 charset handling and added VAX42 charset for the ancient stuff to work correctly.
Bugfix release, released on June 27th 2011
- Added a tiny debugging helper:
python -m pyte your escape codes
Screen– now subclasses can extend more than one command easily.
HistoryScreen– now not as buggy as it used to be: and allows for custom ratio aspect when browsing history, see
HistoryScreendocumentation for details.
- Fixed DECTCEM private mode handling – when the mode is reset
Bugfix release, released on June 21st 2011
- Minor examples and documentation update before the first public release.
Released on June 21st 2011
- Improved cursor movement –
Screenpasses all but one tests in vttest.
- Changed the way
Screen– event handlers are now implicitly looked up in screen’s
__dict__, not connected manually.
- Changed cursor API – cursor position and attributes are encapsulated
in a separate
- Added support for DECSCNM – toggle screen-wide reverse-video mode.
- Added a couple of useful
HistoryScreenwhich allows screen pagination and
DiffScreenwhich tracks the changed lines.
Released on May 31st 2011
- Added initial support for G0-1 charsets (mappings taken from
ttykernel driver) and SI, SO escape sequences.
ByteStreamto support fallback encodings – it now takes a list of
(encoding, errors)pairs and traverses it left to right on
- Switched to
unicode_literals– one step closer to Python3.
Released on May 23rd 2011
- Major rewrite of
Screeninternals – highlights: inherits from
list; each character is represented by
namedtuplewhich also holds SGR data.
- Numerous bugfixes, especially in methods, dealing with manipulating character attributes.
First release after the adoption – skipped a few version to reflect that. Released on May 16th 2011
- Added support for ANSI color codes, as listed in
man console_codes. Not implemented yet: setting alternate font, setting and resetting mappings, blinking text.
- Added a couple of trivial usage examples in the examples/ dir.