• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

urwid / urwid / 37012579990
91%

Build:
DEFAULT BRANCH: master
Ran 02 Oct 2026 01:23PM UTC
Jobs 12
Files 68
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

02 Oct 2026 01:22PM UTC coverage: 86.24% (+0.04%) from 86.205%
37012579990

push

github

web-flow
Bound ANSI parser work on untrusted input (#1382)

ANSIText parses untrusted terminal output, and short sequences could
allocate gigabytes, raise, flood stderr or grow internal lists without
limit:

- Relative cursor moves advance at most 1024 cells per sequence, and
  absolute moves stop at row/column 1024.
- Padding inserted by cursor moves is limited to 1024 * 1024 cells plus
  8 per fed character over the parser's lifetime; an inserted empty row
  counts as 8 cells. Past the limit a character is written at the end
  of its row, a move below the last row stays on it, and the cut is
  recorded as a skipped sequence.
- CSI parameters over 256 characters are skipped, so int() never
  rejects one.
- OSC strings of 4096 characters or more are skipped, and the rest is
  discarded up to the terminator without buffering.
- Escape buffers and padding no longer grow quadratically in time.
- SGR 38/48 colours outside 0..255 are ignored instead of raising
  AttrSpecError; this also fixes the Terminal widget.
- ParsedLine.skipped keeps the first 65536 entries, per line in
  one_line mode and over the whole input otherwise.
- Skipped sequences are logged at DEBUG instead of WARNING/INFO.

| what | before | after | percent change |
| --- | --- | --- | --- |
| AnsiParser.feed peak memory, 1 MB, screen mode | 1225.9 MB | 120.9 MB | -90.1% |
| AnsiParser.feed peak memory, 1 MB, one_line | 161.0 MB | 66.8 MB | -58.5% |
| AnsiParser.feed time, 1 MB, screen mode | 57.79 s | 5.13 s | -91.1% |

4572 of 5504 branches covered (83.07%)

Branch coverage included in aggregate %.

57 of 59 new or added lines in 1 file covered. (96.61%)

11472 of 13100 relevant lines covered (87.57%)

9.78 hits per line

Uncovered Changes

Lines Coverage ∆ File
2
94.2
0.45% urwid/ansi_parser.py
Jobs
ID Job ID Ran Files Coverage
1 run-3.10-ubuntu-latest - 37012579990.1 02 Oct 2026 01:24PM UTC 68
84.88
GitHub Action Run
2 run-3.10-windows-latest - 37012579990.2 02 Oct 2026 01:25PM UTC 68
75.85
GitHub Action Run
3 run-3.14-ubuntu-latest - 37012579990.3 02 Oct 2026 01:23PM UTC 68
84.87
GitHub Action Run
4 run-3.9-ubuntu-latest - 37012579990.4 02 Oct 2026 01:24PM UTC 68
84.85
GitHub Action Run
5 run-3.14-windows-latest - 37012579990.5 02 Oct 2026 01:25PM UTC 68
75.84
GitHub Action Run
6 run-3.13-ubuntu-latest - 37012579990.6 02 Oct 2026 01:23PM UTC 68
84.87
GitHub Action Run
7 run-3.11-ubuntu-latest - 37012579990.7 02 Oct 2026 01:24PM UTC 68
84.87
GitHub Action Run
8 run-3.9-windows-latest - 37012579990.8 02 Oct 2026 01:25PM UTC 68
75.83
GitHub Action Run
9 run-3.13-windows-latest - 37012579990.9 02 Oct 2026 01:25PM UTC 68
75.84
GitHub Action Run
10 run-3.11-windows-latest - 37012579990.10 02 Oct 2026 01:25PM UTC 68
75.85
GitHub Action Run
11 run-3.12-windows-latest - 37012579990.11 02 Oct 2026 01:25PM UTC 68
75.85
GitHub Action Run
12 run-3.12-ubuntu-latest - 37012579990.12 02 Oct 2026 01:24PM UTC 68
84.87
GitHub Action Run
Source Files on build 37012579990
  • Tree
  • List 68
  • Changed 1
  • Source Changed 1
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #37012579990
  • 14c840ef on github
  • Prev Build on master (#36977875725)
  • Next Build on master (#37013991564)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc