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

hardbyte / python-can / 22966168549
71%

Build:
DEFAULT BRANCH: main
Ran 11 Mar 2026 05:40PM UTC
Jobs 21
Files 91
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

11 Mar 2026 05:38PM UTC coverage: 70.96% (+0.1%) from 70.862%
22966168549

push

github

web-flow
gs-usb WinUSB support and timeout=none is forever (#2031)

* Update gs_usb driver to support WinUSB by not forcing libusb1 backend

Replace GsUsb.scan() and GsUsb.find() calls with local helper functions
that call usb.core.find() without specifying a backend, allowing pyusb
to auto-detect the best available backend. This enables WinUSB support
on Windows in addition to libusbK.

Update documentation to reflect WinUSB support and add unit tests.

Co-authored-by: BenGardiner <243321+BenGardiner@users.noreply.github.com>

* Add pyusb as explicit dependency in gs-usb optional group

The gs_usb interface directly imports `usb` (pyusb) for USB device
discovery, so pyusb must be an explicit dependency rather than relying
on it being a transitive dependency of the gs-usb package.

Co-authored-by: BenGardiner <243321+BenGardiner@users.noreply.github.com>

* gs_usb: treat timeout=None as forever

pass '0' when timeout=None (as proposed by @zariiii9003
 in https://github.com/hardbyte/python-can/pull/2026#issuecomment-3941747658)

* add news fragment

* formatting fixes

* gs_usb module needed in tests deps now

* Fix gs_usb shutdown to always call parent BusABC.shutdown()

BusABC has a class-level _is_shutdown = True attribute. When __init__
was not called (as in test mocks), GsUsbBus.shutdown() resolved this
class attribute and returned early, never calling super().shutdown().

Restructure shutdown() to always call super().shutdown(), using the
pre-call _is_shutdown state only to guard interface-specific cleanup.

Co-authored-by: BenGardiner <243321+BenGardiner@users.noreply.github.com>

* note pyusb not WinUSB in news and news frags are a sentence not a list (@zariiii9003)

* put gs-usb dep into tox.ini (@zariiii9003)

* combine _scan_gs_usb_devices() and _find_gs_usb_device() (@zariiii9003)

* don't instantiate a GsUsb device for every one detected (@zariiii9003)

* remove gs-usb from mypy (@zariiii9003)

* gs_usb: explicitly handle timeout=None separate fro... (continued)

12 of 37 new or added lines in 1 file covered. (32.43%)

3 existing lines in 1 file now uncovered.

7746 of 10916 relevant lines covered (70.96%)

13.59 hits per line

New Missed Lines in Diff

Lines Coverage ∆ File
25
27.47
23.47% can/interfaces/gs_usb.py

Uncovered Existing Lines

Lines Coverage ∆ File
3
27.47
23.47% can/interfaces/gs_usb.py
Jobs
ID Job ID Ran Files Coverage
1 Unittests-ubuntu-latest-py314 - 22966168549.1 11 Mar 2026 05:41PM UTC 91
65.9
GitHub Action Run
2 Unittests-ubuntu-latest-py310 - 22966168549.2 11 Mar 2026 05:41PM UTC 91
66.14
GitHub Action Run
3 Unittests-ubuntu-latest-pypy310 - 22966168549.3 11 Mar 2026 05:42PM UTC 91
62.17
GitHub Action Run
4 Unittests-macos-latest-py310 - 22966168549.4 11 Mar 2026 05:40PM UTC 91
63.37
GitHub Action Run
5 Unittests-windows-latest-py311 - 22966168549.5 11 Mar 2026 05:41PM UTC 91
67.97
GitHub Action Run
6 Unittests-windows-latest-py314 - 22966168549.6 11 Mar 2026 05:40PM UTC 91
65.78
GitHub Action Run
7 Unittests-macos-latest-py311 - 22966168549.7 11 Mar 2026 05:42PM UTC 91
63.37
GitHub Action Run
8 Unittests-windows-latest-pypy310 - 22966168549.8 11 Mar 2026 05:52PM UTC 91
63.56
GitHub Action Run
9 Unittests-macos-latest-py314 - 22966168549.9 11 Mar 2026 05:40PM UTC 91
63.11
GitHub Action Run
10 Unittests-windows-latest-py312 - 22966168549.10 11 Mar 2026 05:41PM UTC 91
67.97
GitHub Action Run
11 Unittests-windows-latest-pypy311 - 22966168549.11 11 Mar 2026 05:44PM UTC 91
63.53
GitHub Action Run
12 Unittests-ubuntu-latest-py312 - 22966168549.12 11 Mar 2026 05:41PM UTC 91
66.14
GitHub Action Run
13 Unittests-windows-latest-py310 - 22966168549.13 11 Mar 2026 05:41PM UTC 91
68.1
GitHub Action Run
14 Unittests-ubuntu-latest-py311 - 22966168549.14 11 Mar 2026 05:41PM UTC 91
66.14
GitHub Action Run
15 Unittests-ubuntu-latest-pypy311 - 22966168549.15 11 Mar 2026 05:42PM UTC 91
62.17
GitHub Action Run
16 Unittests-macos-latest-pypy310 - 22966168549.16 11 Mar 2026 05:41PM UTC 91
61.81
GitHub Action Run
17 Unittests-windows-latest-py313 - 22966168549.17 11 Mar 2026 05:41PM UTC 91
67.85
GitHub Action Run
18 Unittests-macos-latest-py313 - 22966168549.18 11 Mar 2026 05:40PM UTC 91
63.37
GitHub Action Run
19 Unittests-ubuntu-latest-py313 - 22966168549.19 11 Mar 2026 05:41PM UTC 91
66.14
GitHub Action Run
20 Unittests-macos-latest-pypy311 - 22966168549.20 11 Mar 2026 05:43PM UTC 91
61.81
GitHub Action Run
21 Unittests-macos-latest-py312 - 22966168549.21 11 Mar 2026 05:41PM UTC 91
63.37
GitHub Action Run
Source Files on build 22966168549
  • Tree
  • List 91
  • Changed 3
  • Source Changed 1
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #22966168549
  • a624fd87 on github
  • Prev Build on main (#22642564977)
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