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

elParaguayo / qtile / 16553662486
83%

Build:
DEFAULT BRANCH: master
Ran 27 Jul 2025 05:44PM UTC
Jobs 4
Files 153
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

27 Jul 2025 01:23AM UTC coverage: 77.884% (+0.7%) from 77.187%
16553662486

push

github

tych0
drop DefaultEventLoopPolicy

python3.14 depreciates event loop policies entirely, in favor of just
manually specifying the event loop as an argument to asyncio.run().

we were really using the event loop policy as a hack for not having a
global variable, so let's switch to a global variable instead, and use it
in the one place we need it.

we have to drop two verisons of python because they do not have the
loop_factory= argument to asyncio:

    raise AssertionError(f"Error launching qtile, traceback:\n{error}")
    AssertionError: Error launching qtile, traceback:
    Traceback (most recent call last):
      File "/home/runner/work/qtile/qtile/test/helpers.py", line 207, in run_qtile
        ).loop()
      File "/home/runner/work/qtile/qtile/libqtile/core/manager.py", line 216, in loop
        asyncio.run(self.async_loop(), loop_factory=lambda: libqtile.event_loop)
    TypeError: run() got an unexpected keyword argument 'loop_factory'

but maybe that's ok: 3.10 is outside of our last-three-versions policy, and
3.11 will be outside it in a few months when 3.14 is released.

There is another option here: since the motivation for this was really
#2620, we could "just" switch the battery to running in-loop, which would
mean that it is not run via run_in_executor() i.e. in a separate thread.
That means that get_running_loop() would return the right loop, and we
wouldn't need this hack at all.

(It also means that the battery could potentially block the UI while
reading from e.g. procfs/sysfs files, but that seems unlikely. Perhaps it
also suggests another widget type: something with an `async def poll()`,
which could run in the main loop and avoid both of these problems.)

The only other widget which uses send_notification() is pomodoro, which
doesn't read any files at all and just uses gettimeofday(), which is a VDSO
i.e. memory access, that should also not block, so if we convert the
battery widget, we should do this one as well.

Finally, we suggest us... (continued)

6 of 8 new or added lines in 3 files covered. (75.0%)

368 existing lines in 14 files now uncovered.

16858 of 21645 relevant lines covered (77.88%)

2.76 hits per line

New Missed Lines in Diff

Lines Coverage ∆ File
2
70.66
1.72% libqtile/utils.py

Uncovered Existing Lines

Lines Coverage ∆ File
2
92.26
0.65% libqtile/widget/systray.py
4
48.48
0.72% libqtile/widget/statusnotifier.py
6
88.89
-1.11% libqtile/widget/image.py
6
91.18
-0.76% libqtile/widget/vertical_clock.py
8
83.59
1.29% libqtile/widget/currentlayout.py
21
85.84
-0.16% libqtile/widget/bluetooth.py
22
75.38
-1.0% libqtile/widget/launchbar.py
23
91.96
1.64% libqtile/bar.py
28
80.2
-0.99% libqtile/widget/groupbox.py
30
85.65
0.75% libqtile/layout/tree.py
38
83.09
-1.5% libqtile/widget/tasklist.py
49
54.97
-0.49% libqtile/widget/prompt.py
53
86.13
0.95% libqtile/widget/base.py
78
2.37
0.0% libqtile/widget/graph.py
Jobs
ID Job ID Ran Files Coverage
1 3.13-wayland - 16553662486.1 27 Jul 2025 05:53PM UTC 153
68.25
GitHub Action Run
2 3.13-x11 - 16553662486.2 27 Jul 2025 05:53PM UTC 153
68.76
GitHub Action Run
3 3.12-x11 - 16553662486.3 27 Jul 2025 05:53PM UTC 153
69.32
GitHub Action Run
4 3.12-wayland - 16553662486.4 27 Jul 2025 05:53PM UTC 153
68.76
GitHub Action Run
Source Files on build 16553662486
  • Tree
  • List 153
  • Changed 69
  • Source Changed 0
  • Coverage Changed 69
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • b667f9ef on github
  • Prev Build on master (#16515720709)
  • Next Build on master (#16742175719)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc