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

hardbyte / python-can / 22966168549 / 16
71%
main: 71%

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

11 Mar 2026 05:38PM UTC coverage: 61.808% (+0.1%) from 61.697%
22966168549.16

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)

6747 of 10916 relevant lines covered (61.81%)

0.62 hits per line

Source Files on job Unittests-macos-latest-pypy310 - 22966168549.16
  • Tree
  • List 91
  • Changed 1
  • Source Changed 1
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Build 22966168549
  • a624fd87 on github
  • Prev Job for on main (#22642564977.14)
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