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

elParaguayo / qtile / 16553662486 / 1
83%
master: 83%

Build:
DEFAULT BRANCH: master
Ran 27 Jul 2025 05:53PM UTC
Files 153
Run time 4s
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: 68.251% (-0.02%) from 68.274%
16553662486.1

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)

14908 of 21843 relevant lines covered (68.25%)

0.68 hits per line

Source Files on job 3.13-wayland - 16553662486.1
  • Tree
  • List 153
  • Changed 20
  • Source Changed 0
  • Coverage Changed 20
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Build 16553662486
  • b667f9ef on github
  • Prev Job for on master (#16515720709.3)
  • Next Job for on master (#16742175719.2)
  • 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