1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298
|
pyte Changelog
==============
Here you can see the full list of changes between each pyte release.
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 ignore ``SI`` 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 encoded ``ST``
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 of ``Stream.attach``.
- Removed deprecated ``encoding`` parameter of ``ByteStream``.
- Fixed ``how == 3`` handling in ``DiffScreen.erase_in_display``.
- Deprecated ``DiffScreen``. Its functionality has been backported
to the base ``Screen`` class.
- Fixed a bug in ``DiffScreen.draw`` which incorrectly handled the
case when the input of ``draw`` required several lines.
- Fixed a bug in ``Screen`` which did not ignore ``ESC (`` 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 request ``ESC ] 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
from ``pymux`` project by Jonathan Slenders.
- Optimized ``Screen`` by changing ``Screen.buffer`` to dict-of-dicts. The
idea was borrowed from ``pymux`` project by Jonathan Slenders. The
implementation was done by @istarion.
- Further optimized ``Stream._parser_fsm`` by forcing static binding between
``Stream`` events and ``Screen`` methods. The code was backported from
``pmux`` project by Jonathan Slenders.
- Restricted ``Stream`` to a single listener and deprecated ``attach`` and
``detach``. The old logic can be emulated by a fanout proxy, forwarding
events to a list of its listeners.
- Replaced ``DebugStream`` with ``DebugScreen`` to workaround the single
listener limitation (previsouly ``DebugStream`` implicitly added a
listener when instantiated). Unlike other screens ``DebugScreen`` does
not maintain any state.
- Changed ``DebugScreen`` to emit JSON instead of custom text format.
- Removed overly generic ``Screen.__before__`` and ``Screen.__after__``.
- Renamed ``Screen.set_charset`` to a more appropriate
``Screen.define_charset``.
- Added support for ECMA-035 `DOCS` command to ``ByteStream`` which no longer
accepts ``encoding`` 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 in ``Screen.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`` and ``Screen.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 <https://github.com/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
by ``TERM=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.1
-------------
Bugfix release, released on January 10th 2015
- Fixed dependencies in setup.py.
Version 0.5.0
-------------
Released on January 10th 2015
- Deprecated ``Stream.consume`` in favour of ``Stream.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 <https://github.com/jquast/wcwidth>`_
library by Jeff Quast.
- Removed re-exports of abbreviated modules (e.g. ``mo`` as a synonym for
``modes``) from ``pyte``.
- Removed ``Screen.size`` which misleadingly returned constructor arguments
in reverse order. Please use ``Screen.columns`` and ``Screen.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 that ``ByteStream`` 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``, referencing ``str`` is relevant
for Python 3, but not Python 2.
Version 0.4.8
-------------
Released on January 13th 2014
- ``Screen`` does NOT inherit from builtin ``list``, use ``Screen.buffer``
to access individual characters directly. This is a backward INCOMPATIBLE
change.
- ``Char._asdict`` was broken on Python 3.3 because of the
changes in ``namedtuple`` 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 from ``HistoryScreen`` 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 to ``Screen`` -- 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, see
``HistoryScreen`` documentation for details.
- Fixed `DECTCEM` private mode handling -- when the mode is reset
``Screen.cursor.hidden`` is ``True`` otherwise it's ``False``.
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 with ``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 ``Cursor`` class.
- Added support for `DECSCNM` -- toggle screen-wide reverse-video mode.
- Added a couple of useful ``Screen`` subclasses: ``HistoryScreen``
which allows screen pagination and ``DiffScreen`` 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 on ``feed()``.
- 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 from
``list``; each character is represented by ``namedtuple`` 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.
|