Pyusb

Latest version: v1.3.1

Safety actively analyzes 706267 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

1.3.1

Fixed:

- core: fix a regression in `ctrl_transfer` where supplied read buffers were discarded (528, 530)

Full changelog: [v1.3.0...v1.3.1](https://github.com/pyusb/pyusb/compare/v1.3.0...v1.3.1)

1.3.0

Happy new year!

Changed:

- meta: bump the minimum required Python version to 3.9

Fixed:

- core: reset cached endpoints on alternate setting changes (pyusb380)
- core: only search for endpoints on the correct alternate settings (pyusb380)
- tree: guard finalizers against aborted initialization ([380 (comment)](https://github.com/pyusb/pyusb/issues/380#issuecomment-1084140904))
- version: handle when patch component is missing
- core: fix bMaxPower conversion for SuperSpeed devices (pyusb479)
- openusb: fix missing commas in \_\_all\_\_ list (pyusb501)
- libusb1: fix trailing comma in LIBUSB_TRANSFER_TYPE_CONTROL (pyusb501)
- legacy: Fix DeviceHandle finalizer checking for the wrong attribute (pyusb502)
- libloader: search in default homebrew prefix on apple silicon (pyusb511)

Full changelog: [`v1.2.1...v1.3.0`](https://github.com/pyusb/pyusb/compare/v1.2.1...v1.3.0)

1.2.1

Fixed:

- core: make Device hashable again (PR 376)

1.2.0

Added:

- core: implement `Device.__eq__()` (147)

Changed:

- libusb0: implement `is_kernel_driver_active()` for FreeBSD and DragonFly BSD (365)
- libusb0: implement `is_kernel_driver_active()` for Mac OS (374)

Fixed:

- setup: prevent installation on unsupported Python versions (PR 364)
- control: fix undefined `USBError` (372)
- tests: fix legacy/hardware tests for Python 3.9 (373)

1.1.1

_Note: This version was yanked on July 5, 2021, because it dropped support for Python 2.7/3.5 but failed to set python_requires='>=3.6.0'. For those on Python 3.6+, PyUSB v1.2.0 should be a safe replacement._

---

Patch release that fixes a couple of bugs; most notably it fixes compatibility with Python 3.9.

As of PyUSB 1.1.1 changes that break under Python 2.7 and 3.5 (both of which have reached end of life) are no longer considered regressions.

Users stuck on those Python versions, and distributions supporting such users, should evaluate each patch in this release individually.

1.1.0

Links

Releases

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.