Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: master
Commits on Apr 17, 2015
  1. Merge pull request #96 from MattHeard/patch-1

    Fixed minor docstring typo.
  2. @MattHeard

    Fixed minor docstring typo

    MattHeard authored
Commits on Mar 5, 2015
  1. Merge pull request #93 from damib/master

    Claim interface only for standard control transfer requests.
Commits on Feb 24, 2015
  1. @damib

    Claim interface only for standard control transfer requests.

    damib authored
    wIndex is the interface number to be claimed only for
    standard request types. For example Silicon Labs cp2103 defines
    a vendor control transfer to set some GPIO pins though wIndex
    parameter (se AN571 page 17).
Commits on Feb 15, 2015
  1. Thanks to Maximilian Köhl and Matthew Chan.

    Maximilian Köhl.: PR #90
    Matthew Chan: PR #91
  2. Merge pull request #91 from tuzzer/master

    util: change tostring() to tobytes() when running with Python 3.2+
Commits on Feb 10, 2015
  1. @tuzzer

    util: change tostring() to tobytes() when running with Python 3.2+

    tuzzer authored
    This removes the DeprecationWarning that warns that tostring() is
    obsolete when running with Python 3.2+
Commits on Feb 8, 2015
  1. Merge pull request #90 from koehlma/master

    libusb1: fix seg fault when get_device_speed is called
Commits on Feb 7, 2015
  1. @koehlma
Commits on Feb 1, 2015
  1. core: Fix seg fault when dispose is called after device disconnection.

    When dispose is called after the device is diconnected,
    release_interface might fail (see commit 5e9ef15), then the interface
    stays in the claimed interfaces set. When the device is destroyed, its
    __del__ method will call dispose again and, since the interface is
    still marked as claimed, a new call to release_interface will be made
    with an invalid device handle, causing a segmentation fault.
    We fix that by always removing the interface from the claimed set.
    closes #89.
Commits on Jan 30, 2015
  1. Thanks to Deliang Fan for PR #88.

Commits on Jan 27, 2015
  1. Merge pull request #88 from DeliangFan/speed

    Support for getting usb device speed
  2. Support for getting usb device speed

    fandeliang authored
    In some cases, we need to get the usb device speed type to attach
    it to specific usb controller. Fortunately, it's easy to get usb
    device speed information with libusb1.0.
Commits on Jan 20, 2015
  1. core: Handle exceptions when releasing the interfaces.

    At object destruction, claimed interfaces are released. If the device
    is disconnected, the call to release_interface may fail and raise an
    closes #84.
Commits on Jan 17, 2015
  1. libusb1: fix hanging when the device is disconnected in a iso transfer.

    If the device is disconnected when a isochronous transfer is ongoing,
    it might raise an exception in the callback and the 'callback done'
    signaling flag is never set. This causes the program to hang
    We move the error handling to the caller function, after the callback
    returns. In this way, the exception is raised in the main thread and
    client software is notified about the exceptional situation.
    closes #85.
Commits on Jan 4, 2015
  1. Braino.

  2. Use libusb_strerror when the function is available.

    libusb_strerror returns a string containing the error message for the
    given error code. When the function is not available, we fallback to
    our own internal error code mapping strategy.
    closes #69.
  3. Implement "backend" property.

    The "backend" property returns the backend used by the device.
    closes #71.
Commits on Jan 1, 2015
  1. Merge pull request #80 from 'ecejeff/master'.

    closes #80.
  2. @ecejeff

    Support for port_numbers hierarchy tuple with libusb1.

    ecejeff authored committed
  3. Merge pull request #78 from 'dywisor/master'.

    closes #66 closes #78.
  4. @dywisor

    finalize objects before exiting

    dywisor authored committed
    Fixes #66 ("Exception when script using pyusb finishes").
    See previous commit for details.
  5. @dywisor

    add object finalizer class

    dywisor authored committed
    Starting with (C)Python 3.4, the GC features "Safe object finalization" [0],
    which doesn't work nicely with pyusb's object structure.
    Required globals / modules may already have been deleted (set to None)
    when an object's __del__() method gets called [1], which
    randomly breaks libusb calls etc. when calling sys.exit().
    Use the atexit module to solve this (indirectly via weakref.finalize()).
    This commit adds a class that takes care of object finalization.
    Classes/objects can adopt this functionality by inheriting
    AutoFinalizedObject and renaming their __del__() method to _finalize_object().
    Shouldn't break existing use cases, but adds a few layers of indirection.
    A __del__() call gets processed as follows:
      __del__() -> finalize() -> [...]
        -> _do_finalize_object() ->  _finalize_object()
    All methods in this call chain are provided by AutoFinalizedObject,
    derived classes should override the no-op _finalize_object() method.
    The "[...]" part depends on the python version:
    * <  3.4: <nothing>
    * >= 3.4: _finalizer() -> _do_finalize_object_ref()
Commits on Oct 19, 2014
  1. Merge pull request #75 from jrtomps/docfix

    Fixes typo in find_class example.
Commits on Oct 18, 2014
  1. @jrtomps
Commits on Oct 8, 2014
  1. Revert "Use libusb_strerror to translate erro codes to strings."

    This reverts commit 592e893.
    It causes regressions on systems using old versions of libusb that
    don't implement libusb_strerror.
    closes #57 closes #68.
Commits on Sep 28, 2014
  1. Cleanup resources when device handle is deleted. closes #65.

    Legacy module has no explicity resource cleanup functions, so we free
    allocated resources in the __del__ method.
  2. Trace unit tests.

    Tracing unit tests functions calls makes easier to track what's going
    on when regression tests fail.
Commits on Sep 23, 2014
  1. Update ReleaseNotes file.

  2. Remove TODO file.

    Tasks are now managed in the github page.
Something went wrong with that request. Please try again.