Add interactive filter UI and finish the Python 3 port

Logs now render in a full-screen view above a bottom prompt line when both
stdin and stdout are a terminal; typing live-filters the scrollback to lines
containing every typed word, case-insensitively. --plain restores the
previous streaming output, and piped usage is unaffected either way.

Also finishes the Python 3 port that #177 and #173 started:

- print(linebuf.encode('utf-8')) printed the bytes repr of every line instead
  of the line itself
- named_processes was still a lazily-exhausted map() object after #177
  wrapped catchall_package in list()
- piping adb logcat into pidcat crashed, since FakeStdinProcess read
  sys.stdin (str) where the rest of the script expected bytes
- indent_wrap could hang given a non-positive wrap area
- the shebang invoked python, which does not exist on systems that only ship
  python3
This commit is contained in:
2026-07-20 09:23:55 -04:00
parent 61cd1ee1be
commit 468f625df4
3 changed files with 288 additions and 75 deletions
+17
View File
@@ -1,6 +1,23 @@
Change Log
==========
Unreleased
----------------------------
* New: Interactive full-screen filter UI, on by default when both stdin and stdout are a
terminal. Logs render above a bottom prompt line; typing live-filters the scrollback to
lines containing every typed word, case-insensitively. `--plain` restores the previous
streaming output; piped usage is unaffected.
* Fix: `print(linebuf.encode('utf-8'))` printed the Python 3 bytes repr of every line
instead of the line itself.
* Fix: `named_processes` was still a lazily-exhausted `map()` object after the Python 3
port wrapped `catchall_package` in `list()`.
* Fix: piping `adb logcat` into `pidcat` crashed under Python 3, since `FakeStdinProcess`
read `sys.stdin` (str) where the rest of the script expected bytes.
* Fix: `indent_wrap` could hang given a non-positive wrap area, e.g. an unsized terminal.
* Fix: shebang invoked `python`, which no longer exists on systems that only ship `python3`.
Version 2.1.0 *(2016-09-07)*
----------------------------