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

urwid / urwid / 34459162466
89%

Build:
DEFAULT BRANCH: master
Ran 10 Sep 2026 09:12AM UTC
Jobs 11
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

10 Sep 2026 09:10AM UTC coverage: 73.637% (+0.08%) from 73.553%
34459162466

push

github

web-flow
Speed up the widget render hot paths (#1290)

Columns.get_column_sizes fills lists instead of index-keyed dicts, the
Columns and Pile sizing flag combinations are module constants rather
than rebuilt per element, and CompositeCanvas.rows and cols accumulate
in place, not over a generator.

CanvasCache.invalidate, CanvasCache.cleanup and Canvas.set_cursor use
dict.pop instead of contextlib.suppress, and CanvasCache.store no
longer builds a walk_depends closure per stored canvas.

apply_target_encoding calls str.encode instead of codecs.encode, and
reads the SO/SI byte forms from constants in escape.py instead of
encoding them again for every rendered text segment.

LayoutSegment.__init__ dispatches on the segment length once and
unpacks directly, dropping an unreachable ValueError branch.

ProgressBar builds its label Text once per widget instead of once per
render and renders it through nocache_widget_render_instance: that
canvas is overwritten and discarded, so caching it only cost a weakref,
a store and a cleanup.

No public API changes. Canvas content, canvas types, warnings and
exception messages are unchanged, verified by differential runs over
727 ProgressBar cases, 7270 Columns and LayoutSegment cases, and 42
full-screen render cases.

| changed path | avg time before | avg time after | percent change |
| --- | --- | --- | --- |
| urwid/canvas.py | 1.95 us | 0.99 us | -49.4% |
| urwid/text_layout.py | 0.37 us | 0.29 us | -23.3% |
| urwid/util.py + urwid/display/escape.py | 0.90 us | 0.66 us | -26.2% |
| urwid/widget/columns.py | 13.72 us | 12.37 us | -9.8% |
| urwid/widget/pile.py | 24.15 us | 22.09 us | -8.5% |
| urwid/widget/progress_bar.py | 30.26 us | 17.20 us | -43.2% |
| (whole tree) TUI screen render | 26.91 ms | 25.34 ms | -5.9% |

3484 of 5254 branches covered (66.31%)

Branch coverage included in aggregate %.

85 of 89 new or added lines in 6 files covered. (95.51%)

1 existing line in 1 file now uncovered.

9616 of 12536 relevant lines covered (76.71%)

7.91 hits per line

Uncovered Changes

Lines Coverage ∆ File
3
83.94
0.0% urwid/text_layout.py
1
94.87
-2.1% urwid/widget/progress_bar.py

Coverage Regressions

Lines Coverage ∆ File
1
81.73
0.23% urwid/canvas.py
Jobs
ID Job ID Ran Files Coverage
1 run-3.9-ubuntu-latest - 34459162466.1 10 Sep 2026 09:12AM UTC 68
72.91
GitHub Action Run
2 run-3.12-ubuntu-latest - 34459162466.2 10 Sep 2026 09:12AM UTC 68
72.89
GitHub Action Run
3 run-3.14-ubuntu-latest - 34459162466.3 10 Sep 2026 09:12AM UTC 68
72.89
GitHub Action Run
4 run-3.10-ubuntu-latest - 34459162466.4 10 Sep 2026 09:12AM UTC 68
72.9
GitHub Action Run
5 run-3.13-ubuntu-latest - 34459162466.5 10 Sep 2026 09:12AM UTC 68
72.89
GitHub Action Run
6 run-3.11-windows-latest - 34459162466.6 10 Sep 2026 09:12AM UTC 68
64.7
GitHub Action Run
7 run-3.13-windows-latest - 34459162466.7 10 Sep 2026 09:13AM UTC 68
64.7
GitHub Action Run
8 run-3.9-windows-latest - 34459162466.8 10 Sep 2026 09:13AM UTC 68
64.71
GitHub Action Run
9 run-3.12-windows-latest - 34459162466.9 10 Sep 2026 09:12AM UTC 68
64.7
GitHub Action Run
10 run-3.10-windows-latest - 34459162466.10 10 Sep 2026 09:12AM UTC 68
64.7
GitHub Action Run
11 run-3.11-ubuntu-latest - 34459162466.11 10 Sep 2026 09:12AM UTC 68
72.89
GitHub Action Run
Source Files on build 34459162466
  • Tree
  • List 68
  • Changed 8
  • Source Changed 7
  • Coverage Changed 8
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #34459162466
  • 6b11abd4 on github
  • Prev Build on master (#34120024352)
  • Next Build on master (#34605256148)
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