pyte Changelog¶
Here you can see the full list of changes between each pyte release.
Version 0.8.1-dev¶
- Yet another fix of
Screen.set_margins
for the case of CSI with no arguments. See issue #61 on GitHub. - Changed
Screen.erase_in_display
to accept additional positional arguments as some someclear
implementations include a;
after the first parameter causingpyte
to assume a0
second parameter. - Changed
Stream
FSM to reinit on error when parsing control sequence. - Added support for blink to the SGR handler. See PR #120 on GitHub. Thanks to @eight04!
- Changed
Stream
to skip XTerm-specificESC]...$[a-z]
sequences. See issue #117 on GitHub.
Version 0.8.0¶
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.
- Changed
Stream
to really ignoreSI
in UTF-8 mode. See PR #106 on GitHub. Thanks to @jwodder! - Fixed DECSCNM handling bug. The attributes of
Screen.default_char
were not reversed leaving all blank characters as-is. See PR #102 on GitHub. Thanks to @zblz! - Correctly terminate OSC mode in
Stream
on receipt of a C0 encodedST
character. - 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.
- Changed
Screen.select_graphic_rendition
to ignore malformed 256/24bit colours. See issue #115 on GitHub.
Version 0.7.0¶
Released on October 7th 2017.
This release is NOT backward compatible with 0.6.X branch!
- Removed deprecated
only
parameter ofStream.attach
. - Removed deprecated
encoding
parameter ofByteStream
. - Fixed
how == 3
handling inDiffScreen.erase_in_display
. - Deprecated
DiffScreen
. Its functionality has been backported to the baseScreen
class. - Fixed a bug in
DiffScreen.draw
which incorrectly handled the case when the input ofdraw
required several lines. - Fixed a bug in
Screen
which did not ignoreESC (
argument in UTF8 mode. See issue #88 on GitHub. - Changed
Screen.resize
to 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
Stream
to hang upon receiving a palette reset requestESC ] R
. - Changed
Screen.reset
not 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!
Version 0.6.0¶
Released on May 28th 2017
This release is NOT backward compatible with 0.5.X branch!
- Optimized
Stream.feed
for plain-text input. The code was backported frompymux
project by Jonathan Slenders. - Optimized
Screen
by changingScreen.buffer
to dict-of-dicts. The idea was borrowed frompymux
project by Jonathan Slenders. The implementation was done by @istarion. - Further optimized
Stream._parser_fsm
by forcing static binding betweenStream
events andScreen
methods. The code was backported frompmux
project by Jonathan Slenders. - Restricted
Stream
to a single listener and deprecatedattach
anddetach
. The old logic can be emulated by a fanout proxy, forwarding events to a list of its listeners. - Replaced
DebugStream
withDebugScreen
to workaround the single listener limitation (previsoulyDebugStream
implicitly added a listener when instantiated). Unlike other screensDebugScreen
does not maintain any state. - Changed
DebugScreen
to emit JSON instead of custom text format. - Removed overly generic
Screen.__before__
andScreen.__after__
. - Renamed
Screen.set_charset
to a more appropriateScreen.define_charset
. - Added support for ECMA-035 DOCS command to
ByteStream
which no longer acceptsencoding
as 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
Screen.select_graphic_rendition
. - Added support for
aixterm
colours inScreen.select_graphic_rendition
, see issue #57 on GitHub. - Changed
Screen.select_graphic_rendition
to ignore 0 if it is given along with other attributes, ie"0;1;2"
is now equivalent to"1;2"
. - Fixed rendering of multicolumn characters at ``Screen` boundaries. Thanks to @shaform! See PR #55 on GitHub.
- Fixed
Screen.display
in 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_up
andScreen.cursor_down
interact 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.
- Fixed
Screen.cursor_back
when called after the draw in the last column. - Fixed
Screen.inser_characters
when called with an argument larger than the number of columns. Thanks to @istarion! See PR #74 on GitHub. - Fixed
Screen.erase_in_display
which did not handle all values supported byTERM=linux
. See #80 on GitHub.
Version 0.5.2¶
Pi Day bugfix release, released on March 14th, 2016
- Fixed a bug in handling DA request. See issue #46 on GitHub.
Version 0.5.0¶
Released on January 10th 2015
- Deprecated
Stream.consume
in favour ofStream.feed
. The latter allows for a more efficient implementation because it operates on the whole input string. - Improved
Stream
performance 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.draw
now properly handles full/ambiguous-width characters. Thanks to the excellent wcwidth library by Jeff Quast.- Removed re-exports of abbreviated modules (e.g.
mo
as a synonym formodes
) frompyte
. - Removed
Screen.size
which misleadingly returned constructor arguments in reverse order. Please useScreen.columns
andScreen.lines
instead. - Fixed a bug in
ByteStream
which suppressed the exception if all of the decoders failed to process the input.
Version 0.4.10¶
Bugfix release, released on August 4th 2015
- Fixed a bug in
DiffScreen.draw
which marked the wrong line as changed when DECAWM was enabled. Stream
now recognizes ESC % sequences for selecting control character set. However, these operations are no-op in the current version in a sense thatByteStream
does not handle them to change encoding.
Version 0.4.9¶
Bugfix release, released on December 3rd 2014
- Fixed a bug in
Char
initialization, see issue #24 on GitHub for details. - Updated error message in
Stream
, referencingstr
is relevant for Python 3, but not Python 2.
Version 0.4.8¶
Released on January 13th 2014
Screen
does NOT inherit from builtinlist
, useScreen.buffer
to access individual characters directly. This is a backward INCOMPATIBLE change.Char._asdict
was broken on Python 3.3 because of the changes innamedtuple
implementation.LAT1_MAP
was an iterator because of the change in map semantics in Python 3.- Changed
Screen
to 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.
Version 0.4.7¶
Bugfix release, released on March 28th 2013
- Updated
pyte
and tests suite to work under Python 3.3. - Changed
Screen
so that LNM mode is reset by default, see http://www.vt100.net/docs/vt510-rm/LNM and issue #11 on GitHub for details.
Version 0.4.6¶
Bugfix release, released on February 29th 2012
Version 0.4.5¶
Technical release, released on September 1st 2011
- Added MANIFEST.in and CenOS spec file
Version 0.4.4¶
Bugfix release, released on July 17th 2011
- Removed
pdb
calls, left fromHistoryScreen
debugging – silly, I know :)
Version 0.4.3¶
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.
Version 0.4.2¶
Bugfix release, released on June 27th 2011
- Added a tiny debugging helper:
python -m pyte your escape codes
- Added
Screen.__{before,after}__()
hooks toScreen
– now subclasses can extend more than one command easily. - Fixed
HistoryScreen
– now not as buggy as it used to be: and allows for custom ratio aspect when browsing history, seeHistoryScreen
documentation for details. - Fixed DECTCEM private mode handling – when the mode is reset
Screen.cursor.hidden
isTrue
otherwise it’sFalse
.
Version 0.4.1¶
Bugfix release, released on June 21st 2011
- Minor examples and documentation update before the first public release.
Version 0.4.0¶
Released on June 21st 2011
- Improved cursor movement –
Screen
passes all but one tests in vttest. - Changed the way
Stream
interacts withScreen
– 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
Cursor
class. - Added support for DECSCNM – toggle screen-wide reverse-video mode.
- Added a couple of useful
Screen
subclasses:HistoryScreen
which allows screen pagination andDiffScreen
which tracks the changed lines.
Version 0.3.9¶
Released on May 31st 2011
- Added initial support for G0-1 charsets (mappings taken from
tty
kernel driver) and SI, SO escape sequences. - Changed
ByteStream
to support fallback encodings – it now takes a list of(encoding, errors)
pairs and traverses it left to right onfeed()
. - Switched to
unicode_literals
– one step closer to Python3.
Version 0.3.8¶
Released on May 23rd 2011
- Major rewrite of
Screen
internals – highlights: inherits fromlist
; each character is represented bynamedtuple
which also holds SGR data. - Numerous bugfixes, especially in methods, dealing with manipulating character attributes.
Version 0.3.7¶
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.