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

tomerfiliba / plumbum / 22105423083
86%

Build:
DEFAULT BRANCH: master
Ran 17 Feb 2026 03:54PM UTC
Jobs 14
Files 45
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

17 Feb 2026 03:53PM UTC coverage: 85.181% (+0.2%) from 85.01%
22105423083

push

github

web-flow
feat: support async mode (#768)

* feat: support async mode

Now we can use Python's `async`/`await` syntax.

The implementation uses **delegation over inheritance** to maximize code reuse,
given async and sync code are incompatible.

Fix https://github.com/tomerfiliba/plumbum/issues/530

@moduon MT-6769

* fix(async): pipefail mode

Before this change, async pipelines were just a system shell with pipes.
This could have side effects, like problems in escaping arguments, or
systems with different default shells or versions.

To circumvent this issue, now async pipelines just execute the sync
version in another async thread.

Fixes https://github.com/tomerfiliba/plumbum/pull/768#discussion_r2733092592.

* test: flaky test can fail on race conditions

* fix(async): handle timeout exceptions correctly in async commands and pipelines

When async commands timeout, ProcessTimedOut was not being converted to
asyncio.TimeoutError, causing tests to fail. Additionally, when pipelines
timeout, source processes receive SIGPIPE when downstream processes are
killed, resulting in ProcessExecutionError(-13) instead of the expected
timeout exception.

Changes:
- Convert ProcessTimedOut to asyncio.TimeoutError in AsyncCommandMixin.run()
- Check for _timed_out flag in pipeline verification before validating
  return codes to properly detect timeouts across all pipeline stages
- Prevents SIGPIPE errors from masking timeout conditions in pipelines

Fixes test_timeout and test_pipeline_timeout in tests/test_async_local.py

1056 of 1513 branches covered (69.8%)

196 of 219 new or added lines in 7 files covered. (89.5%)

4679 of 5493 relevant lines covered (85.18%)

11.15 hits per line

New Missed Lines in Diff

Lines Coverage ∆ File
1
88.46
1.03% plumbum/machines/ssh_machine.py
11
91.97
plumbum/commands/async_.py
11
81.32
-2.55% plumbum/machines/remote.py
Jobs
ID Job ID Ran Files Coverage
1 test-ubuntu-latest-3.12 - 22105423083.1 17 Feb 2026 03:58PM UTC 45
83.6
GitHub Action Run
2 test-macos-latest-3.9 - 22105423083.2 17 Feb 2026 03:58PM UTC 45
83.32
GitHub Action Run
3 test-windows-latest-3.9 - 22105423083.3 17 Feb 2026 03:58PM UTC 45
65.79
GitHub Action Run
4 test-windows-latest-3.11 - 22105423083.4 17 Feb 2026 03:58PM UTC 45
65.86
GitHub Action Run
5 test-windows-latest-3.14 - 22105423083.5 17 Feb 2026 03:58PM UTC 45
65.66
GitHub Action Run
6 test-ubuntu-latest-3.9 - 22105423083.6 17 Feb 2026 03:58PM UTC 45
83.57
GitHub Action Run
7 test-ubuntu-latest-3.14 - 22105423083.7 17 Feb 2026 03:58PM UTC 45
83.53
GitHub Action Run
8 test-ubuntu-latest-3.10 - 22105423083.8 17 Feb 2026 03:58PM UTC 45
83.6
GitHub Action Run
9 test-macos-latest-3.11 - 22105423083.9 17 Feb 2026 03:58PM UTC 45
83.35
GitHub Action Run
10 test-ubuntu-latest-3.13 - 22105423083.10 17 Feb 2026 03:58PM UTC 45
83.57
GitHub Action Run
11 test-macos-latest-3.14 - 22105423083.11 17 Feb 2026 03:58PM UTC 45
83.31
GitHub Action Run
12 test-ubuntu-latest-pypy-3.11 - 22105423083.12 17 Feb 2026 03:58PM UTC 45
83.53
GitHub Action Run
13 test-ubuntu-latest-3.11 - 22105423083.13 17 Feb 2026 03:58PM UTC 45
83.37
GitHub Action Run
14 test-ubuntu-latest-3.15 - 22105423083.14 17 Feb 2026 03:58PM UTC 45
83.53
GitHub Action Run
Source Files on build 22105423083
  • Tree
  • List 45
  • Changed 7
  • Source Changed 0
  • Coverage Changed 7
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • aae4d819 on github
  • Prev Build on master (#21404934557)
  • Next Build on master (#22156965340)
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