libusb
======
Python binding for the *libusb* C library.
Overview
========
| Python |package_bold| module is a low-level binding for *libusb* C library.
| It is an effort to allow python programs full access to the API implemented
and provided by the well known `*libusb* <https://libusb.info/>`__ library.
`PyPI record`_.
`Documentation`_.
| |package_bold| is a lightweight Python package, based on the *ctypes* library.
| It is fully compliant implementation of the original C *libusb* 1.0 API
by implementing whole its functionality in a clean Python instead of C.
|
| *libusb* API 1.0 documentation can be found at:
`libusb-1.0 API Reference <http://api.libusb.info>`__
|package_bold| uses the underlying *libusb* C shared library as specified in
libusb.cfg (included libusb-X.X.* is the default), but there is also ability
to specify it programmatically by one of the following ways:
.. code:: python
import libusb
libusb.config(LIBUSB="libusb C shared library absolute path")
# or
libusb.config(LIBUSB=None) # included libusb-X.X.* will be used
About original libusb:
----------------------
Borrowed from the `original website <https://libusb.info/>`__:
**libusb** - A cross-platform user library to access USB devices
**Overview**
**libusb** is a C library that provides generic access to USB devices.
It is intended to be used by developers to facilitate the production of
applications that communicate with USB hardware.
It is **portable**: Using a single cross-platform API, it provides access
to USB devices on Linux, OS X, Windows, Android, OpenBSD, etc.
It is **user-mode**: No special privilege or elevation is required for the
application to communicate with a device.
It is **version-agnostic**: All versions of the USB protocol, from 1.0 to 3.1
(latest), are supported.
**What platforms are supported?**
Linux, OS X, Windows, Windows CE, Android, OpenBSD/NetBSD, Haiku.
**For additional information, please consult the**
`FAQ <https://github.com/libusb/libusb/wiki/FAQ>`__
**or the** `Wiki <https://github.com/libusb/libusb/wiki>`__.
Requirements
============
- | It is a fully independent package.
| All necessary things are installed during the normal installation process.
- ATTENTION: currently works and tested only for Windows.
Installation
============
Prerequisites:
+ Python 3.9 or higher
* https://www.python.org/
* with C libusb 1.0.27 is a primary test environment.
+ pip and setuptools
* https://pypi.org/project/pip/
* https://pypi.org/project/setuptools/
To install run:
.. parsed-literal::
python -m pip install --upgrade |package|
Development
===========
Prerequisites:
+ Development is strictly based on *tox*. To install it run::
python -m pip install --upgrade tox
Visit `Development page`_.
Installation from sources:
clone the sources:
.. parsed-literal::
git clone |respository| |package|
and run:
.. parsed-literal::
python -m pip install ./|package|
or on development mode:
.. parsed-literal::
python -m pip install --editable ./|package|
License
=======
| |copyright|
| Licensed under the zlib/libpng License
| https://opensource.org/license/zlib
| Please refer to the accompanying LICENSE file.
Authors
=======
* Adam Karpierz <adam@karpierz.net>
.. |package| replace:: libusb
.. |package_bold| replace:: **libusb**
.. |copyright| replace:: Copyright (c) 2016-2024 Adam Karpierz
.. |respository| replace:: https://github.com/karpierz/libusb.git
.. _Development page: https://github.com/karpierz/libusb
.. _PyPI record: https://pypi.org/project/libusb/
.. _Documentation: https://libusb.readthedocs.io/
.. _USB Vendors: https://devicehunt.com/all-usb-vendors
Changelog
=========
1.0.27.post3 (2024-10-09)
-------------------------
- Setup (dependencies) update.
1.0.27.post2 (2024-09-30)
-------------------------
- Drop support for Python 3.8
- Setup (dependencies) update.
1.0.27.post1 (2024-08-13)
-------------------------
- Add support for Python 3.13
- Setup (dependencies) update.
- Improvements and cleanup for win32.
- Source code refactoring and cleanup.
1.0.27 (2024-02-05)
-------------------
- | The API has been fully updated to version 1.0.27 (libusb v.1.0.27
| is fully backward compatible with v.1.0.26).
- | For Windows the shared library binaries have been updated to version
| 1.0.27. For Linux and macOS, the shared library binaries remain at
| version 1.0.26.
- Bugfixes for options -i and -w in examples/xusb.py
1.0.26 (2024-02-05)
-------------------
- | The API has been partially updated to version 1.0.27, but still
| only supports version 1.0.26.
- Improvements and some little bugfixes.
- Examples and tests are upgraded to 1.0.27.
1.0.26rc4 (2024-01-25)
----------------------
- Setup update (now based on tox >= 4.0).
- Cleanup.
1.0.26rc2 (2023-12-20)
----------------------
- Add linux aarch64 support.
1.0.26rc1 (2023-12-15)
----------------------
- Add support for Python 3.12
- Drop support for Python 3.7
- Add support for PyPy 3.10
- Drop support for PyPy 3.7 and 3.8
- Copyright year update.
1.0.26b5 (2022-09-10)
---------------------
- Tox configuration has been moved to pyproject.toml
1.0.26b4 (2022-08-25)
---------------------
- | Downgrade of included shared libraries for Linux:
| libusb v.1.0.26 -> v.1.0.24 (for now based on Debian's 11 (bullseye)),
| because of loading issues of v.1.0.26 from Debian's 12 (bookworm)
| shared libraries.
- Setup update.
1.0.26b3 (2022-07-25)
---------------------
- Setup update (currently based mainly on pyproject.toml).
- Update for macOS (dlls are included for v.10.7+ and v.11.6+ 64bit).
1.0.26b2 (2022-07-18)
---------------------
- Upgrade for Windows: libusb v.1.0.24 -> v.1.0.26
- Update for macOS (v.11.6 64bit).
- Add support for Python 3.10 and 3.11
- Add support for PyPy 3.7, 3.8 and 3.9
- Setup update.
1.0.24b3 (2022-01-10)
---------------------
- Drop support for Python 3.6
- Copyright year update.
- Setup update.
1.0.24b1 (2021-11-10)
---------------------
- Upgrade for Windows: libusb v.1.0.23 -> v.1.0.24
- Add support for macOS (thank you very much dccote@Github!).
- Copyright year update.
- *backward incompatibility* - libusb.cfg is now a regular INI file.
- Fixes for examples (but still some examples don't work properly).
- Setup update.
1.0.23b7 (2020-11-19)
---------------------
- Ability to specify the underlying shared library programmatically.
- General update and cleanup.
- Setup update.
- Removing dependence on atpublic.
- Fixed docs setup.
- Fix for hotplugtest example.
1.0.23b1 (2020-09-15)
---------------------
- | Upgrade for Windows: libusb v.1.0.22 -> v.1.0.23
| (partially; without libusb_wrap_sys_device, because
| original Windows v.1.0.23 dlls do not export this function).
- Add support for Python 3.9
- Drop support for Python 3.5
- Setup update.
- Cleanup.
1.0.22b9 (2020-01-17)
---------------------
- Added ReadTheDocs config file.
- Setup update.
1.0.22b8 (2019-11-24)
---------------------
- Upgrade for Linux: libusb x64 v.1.0.21 -> v.1.0.22
- Fix for error when the shared library is configured.
- Cleanup.
1.0.22b6 (2019-11-23)
---------------------
- Initial support for Linux (libusb v.1.0.21 x64).
1.0.22b5 (2019-11-14)
---------------------
- Drop support for Python 2
- Drop support for Python 3.4
- Add support for Python 3.8
- Setup update and cleanup.
1.0.22b4 (2019-02-15)
---------------------
- Setup improvement.
- Update required setuptools version.
- Some updates of examples.
1.0.22b2 (2018-11-08)
---------------------
- Setup improvement.
- Update required setuptools version.
1.0.22b1 (2018-03-30)
---------------------
- Upgrade to the libusb v.1.0.22
- Setup improvement.
1.0.21b4 (2018-02-26)
---------------------
- Improve and simplify setup and packaging.
1.0.21b3 (2018-02-25)
---------------------
- Setup improvement.
1.0.21b2 (2017-12-18)
---------------------
- Fix the error of platform detecting.
1.0.21b1 (2017-10-11)
---------------------
- First beta release.
1.0.21a3 (2017-08-20)
---------------------
- Next alpha release.
1.0.21a0 (2016-09-24)
---------------------
- First alpha release.
0.0.1 (2016-09-23)
------------------
- Initial release.
Raw data
{
"_id": null,
"home_page": null,
"name": "libusb",
"maintainer": "Adam Karpierz",
"docs_url": null,
"requires_python": "<4.0.0,>=3.9.0",
"maintainer_email": "adam@karpierz.net",
"keywords": "usb, libusb",
"author": "Adam Karpierz",
"author_email": "adam@karpierz.net",
"download_url": "https://files.pythonhosted.org/packages/5d/03/114fc379ec2aaa555a6ef5c0c0abfe947abe76c9b664667904829b7b73ac/libusb-1.0.27.post3.zip",
"platform": "any",
"description": "libusb\r\n======\r\n\r\nPython binding for the *libusb* C library.\r\n\r\nOverview\r\n========\r\n\r\n| Python |package_bold| module is a low-level binding for *libusb* C library.\r\n| It is an effort to allow python programs full access to the API implemented\r\n and provided by the well known `*libusb* <https://libusb.info/>`__ library.\r\n\r\n`PyPI record`_.\r\n\r\n`Documentation`_.\r\n\r\n| |package_bold| is a lightweight Python package, based on the *ctypes* library.\r\n| It is fully compliant implementation of the original C *libusb* 1.0 API\r\n by implementing whole its functionality in a clean Python instead of C.\r\n|\r\n| *libusb* API 1.0 documentation can be found at:\r\n\r\n `libusb-1.0 API Reference <http://api.libusb.info>`__\r\n\r\n|package_bold| uses the underlying *libusb* C shared library as specified in\r\nlibusb.cfg (included libusb-X.X.* is the default), but there is also ability\r\nto specify it programmatically by one of the following ways:\r\n\r\n.. code:: python\r\n\r\n import libusb\r\n libusb.config(LIBUSB=\"libusb C shared library absolute path\")\r\n # or\r\n libusb.config(LIBUSB=None) # included libusb-X.X.* will be used\r\n\r\nAbout original libusb:\r\n----------------------\r\n\r\nBorrowed from the `original website <https://libusb.info/>`__:\r\n\r\n**libusb** - A cross-platform user library to access USB devices\r\n\r\n**Overview**\r\n\r\n**libusb** is a C library that provides generic access to USB devices.\r\nIt is intended to be used by developers to facilitate the production of\r\napplications that communicate with USB hardware.\r\n\r\nIt is **portable**: Using a single cross-platform API, it provides access\r\nto USB devices on Linux, OS X, Windows, Android, OpenBSD, etc.\r\n\r\nIt is **user-mode**: No special privilege or elevation is required for the\r\napplication to communicate with a device.\r\n\r\nIt is **version-agnostic**: All versions of the USB protocol, from 1.0 to 3.1\r\n(latest), are supported.\r\n\r\n**What platforms are supported?**\r\n\r\nLinux, OS X, Windows, Windows CE, Android, OpenBSD/NetBSD, Haiku.\r\n\r\n**For additional information, please consult the**\r\n`FAQ <https://github.com/libusb/libusb/wiki/FAQ>`__\r\n**or the** `Wiki <https://github.com/libusb/libusb/wiki>`__.\r\n\r\nRequirements\r\n============\r\n\r\n- | It is a fully independent package.\r\n | All necessary things are installed during the normal installation process.\r\n- ATTENTION: currently works and tested only for Windows.\r\n\r\nInstallation\r\n============\r\n\r\nPrerequisites:\r\n\r\n+ Python 3.9 or higher\r\n\r\n * https://www.python.org/\r\n * with C libusb 1.0.27 is a primary test environment.\r\n\r\n+ pip and setuptools\r\n\r\n * https://pypi.org/project/pip/\r\n * https://pypi.org/project/setuptools/\r\n\r\nTo install run:\r\n\r\n .. parsed-literal::\r\n\r\n python -m pip install --upgrade |package|\r\n\r\nDevelopment\r\n===========\r\n\r\nPrerequisites:\r\n\r\n+ Development is strictly based on *tox*. To install it run::\r\n\r\n python -m pip install --upgrade tox\r\n\r\nVisit `Development page`_.\r\n\r\nInstallation from sources:\r\n\r\nclone the sources:\r\n\r\n .. parsed-literal::\r\n\r\n git clone |respository| |package|\r\n\r\nand run:\r\n\r\n .. parsed-literal::\r\n\r\n python -m pip install ./|package|\r\n\r\nor on development mode:\r\n\r\n .. parsed-literal::\r\n\r\n python -m pip install --editable ./|package|\r\n\r\nLicense\r\n=======\r\n\r\n | |copyright|\r\n | Licensed under the zlib/libpng License\r\n | https://opensource.org/license/zlib\r\n | Please refer to the accompanying LICENSE file.\r\n\r\nAuthors\r\n=======\r\n\r\n* Adam Karpierz <adam@karpierz.net>\r\n\r\n.. |package| replace:: libusb\r\n.. |package_bold| replace:: **libusb**\r\n.. |copyright| replace:: Copyright (c) 2016-2024 Adam Karpierz\r\n.. |respository| replace:: https://github.com/karpierz/libusb.git\r\n.. _Development page: https://github.com/karpierz/libusb\r\n.. _PyPI record: https://pypi.org/project/libusb/\r\n.. _Documentation: https://libusb.readthedocs.io/\r\n.. _USB Vendors: https://devicehunt.com/all-usb-vendors\r\n\r\nChangelog\r\n=========\r\n\r\n1.0.27.post3 (2024-10-09)\r\n-------------------------\r\n- Setup (dependencies) update.\r\n\r\n1.0.27.post2 (2024-09-30)\r\n-------------------------\r\n- Drop support for Python 3.8\r\n- Setup (dependencies) update.\r\n\r\n1.0.27.post1 (2024-08-13)\r\n-------------------------\r\n- Add support for Python 3.13\r\n- Setup (dependencies) update.\r\n- Improvements and cleanup for win32.\r\n- Source code refactoring and cleanup.\r\n\r\n1.0.27 (2024-02-05)\r\n-------------------\r\n- | The API has been fully updated to version 1.0.27 (libusb v.1.0.27\r\n | is fully backward compatible with v.1.0.26).\r\n- | For Windows the shared library binaries have been updated to version\r\n | 1.0.27. For Linux and macOS, the shared library binaries remain at\r\n | version 1.0.26.\r\n- Bugfixes for options -i and -w in examples/xusb.py\r\n\r\n1.0.26 (2024-02-05)\r\n-------------------\r\n- | The API has been partially updated to version 1.0.27, but still\r\n | only supports version 1.0.26.\r\n- Improvements and some little bugfixes.\r\n- Examples and tests are upgraded to 1.0.27.\r\n\r\n1.0.26rc4 (2024-01-25)\r\n----------------------\r\n- Setup update (now based on tox >= 4.0).\r\n- Cleanup.\r\n\r\n1.0.26rc2 (2023-12-20)\r\n----------------------\r\n- Add linux aarch64 support.\r\n\r\n1.0.26rc1 (2023-12-15)\r\n----------------------\r\n- Add support for Python 3.12\r\n- Drop support for Python 3.7\r\n- Add support for PyPy 3.10\r\n- Drop support for PyPy 3.7 and 3.8\r\n- Copyright year update.\r\n\r\n1.0.26b5 (2022-09-10)\r\n---------------------\r\n- Tox configuration has been moved to pyproject.toml\r\n\r\n1.0.26b4 (2022-08-25)\r\n---------------------\r\n- | Downgrade of included shared libraries for Linux:\r\n | libusb v.1.0.26 -> v.1.0.24 (for now based on Debian's 11 (bullseye)),\r\n | because of loading issues of v.1.0.26 from Debian's 12 (bookworm)\r\n | shared libraries.\r\n- Setup update.\r\n\r\n1.0.26b3 (2022-07-25)\r\n---------------------\r\n- Setup update (currently based mainly on pyproject.toml).\r\n- Update for macOS (dlls are included for v.10.7+ and v.11.6+ 64bit).\r\n\r\n1.0.26b2 (2022-07-18)\r\n---------------------\r\n- Upgrade for Windows: libusb v.1.0.24 -> v.1.0.26\r\n- Update for macOS (v.11.6 64bit).\r\n- Add support for Python 3.10 and 3.11\r\n- Add support for PyPy 3.7, 3.8 and 3.9\r\n- Setup update.\r\n\r\n1.0.24b3 (2022-01-10)\r\n---------------------\r\n- Drop support for Python 3.6\r\n- Copyright year update.\r\n- Setup update.\r\n\r\n1.0.24b1 (2021-11-10)\r\n---------------------\r\n- Upgrade for Windows: libusb v.1.0.23 -> v.1.0.24\r\n- Add support for macOS (thank you very much dccote@Github!).\r\n- Copyright year update.\r\n- *backward incompatibility* - libusb.cfg is now a regular INI file.\r\n- Fixes for examples (but still some examples don't work properly).\r\n- Setup update.\r\n\r\n1.0.23b7 (2020-11-19)\r\n---------------------\r\n- Ability to specify the underlying shared library programmatically.\r\n- General update and cleanup.\r\n- Setup update.\r\n- Removing dependence on atpublic.\r\n- Fixed docs setup.\r\n- Fix for hotplugtest example.\r\n\r\n1.0.23b1 (2020-09-15)\r\n---------------------\r\n- | Upgrade for Windows: libusb v.1.0.22 -> v.1.0.23\r\n | (partially; without libusb_wrap_sys_device, because\r\n | original Windows v.1.0.23 dlls do not export this function).\r\n- Add support for Python 3.9\r\n- Drop support for Python 3.5\r\n- Setup update.\r\n- Cleanup.\r\n\r\n1.0.22b9 (2020-01-17)\r\n---------------------\r\n- Added ReadTheDocs config file.\r\n- Setup update.\r\n\r\n1.0.22b8 (2019-11-24)\r\n---------------------\r\n- Upgrade for Linux: libusb x64 v.1.0.21 -> v.1.0.22\r\n- Fix for error when the shared library is configured.\r\n- Cleanup.\r\n\r\n1.0.22b6 (2019-11-23)\r\n---------------------\r\n- Initial support for Linux (libusb v.1.0.21 x64).\r\n\r\n1.0.22b5 (2019-11-14)\r\n---------------------\r\n- Drop support for Python 2\r\n- Drop support for Python 3.4\r\n- Add support for Python 3.8\r\n- Setup update and cleanup.\r\n\r\n1.0.22b4 (2019-02-15)\r\n---------------------\r\n- Setup improvement.\r\n- Update required setuptools version.\r\n- Some updates of examples.\r\n\r\n1.0.22b2 (2018-11-08)\r\n---------------------\r\n- Setup improvement.\r\n- Update required setuptools version.\r\n\r\n1.0.22b1 (2018-03-30)\r\n---------------------\r\n- Upgrade to the libusb v.1.0.22\r\n- Setup improvement.\r\n\r\n1.0.21b4 (2018-02-26)\r\n---------------------\r\n- Improve and simplify setup and packaging.\r\n\r\n1.0.21b3 (2018-02-25)\r\n---------------------\r\n- Setup improvement.\r\n\r\n1.0.21b2 (2017-12-18)\r\n---------------------\r\n- Fix the error of platform detecting.\r\n\r\n1.0.21b1 (2017-10-11)\r\n---------------------\r\n- First beta release.\r\n\r\n1.0.21a3 (2017-08-20)\r\n---------------------\r\n- Next alpha release.\r\n\r\n1.0.21a0 (2016-09-24)\r\n---------------------\r\n- First alpha release.\r\n\r\n0.0.1 (2016-09-23)\r\n------------------\r\n- Initial release.\r\n",
"bugtrack_url": null,
"license": "zlib/libpng License ; https://opensource.org/license/zlib",
"summary": "Python binding for the libusb C library.",
"version": "1.0.27.post3",
"project_urls": {
"Documentation": "https://libusb.readthedocs.io/",
"Download": "https://pypi.org/project/libusb/",
"Homepage": "https://pypi.org/project/libusb/",
"Issues": "https://github.com/karpierz/libusb/issues",
"Source": "https://github.com/karpierz/libusb"
},
"split_keywords": [
"usb",
" libusb"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "f9245edc8f72421ca518e906f8edf9c7cb289c255d3e8531f5b42afb146184fc",
"md5": "2be368d21a57ea56064feaf5d0212881",
"sha256": "f67915d0b6581bd1b985161a30d13c642c035b94290535a948e0d9d5e4106fd3"
},
"downloads": -1,
"filename": "libusb-1.0.27.post3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "2be368d21a57ea56064feaf5d0212881",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0.0,>=3.9.0",
"size": 581138,
"upload_time": "2024-10-09T21:03:39",
"upload_time_iso_8601": "2024-10-09T21:03:39.459615Z",
"url": "https://files.pythonhosted.org/packages/f9/24/5edc8f72421ca518e906f8edf9c7cb289c255d3e8531f5b42afb146184fc/libusb-1.0.27.post3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "5d03114fc379ec2aaa555a6ef5c0c0abfe947abe76c9b664667904829b7b73ac",
"md5": "15638d92dd1007fff89b618750b7317e",
"sha256": "448f739f2716f6769bb80b2e9faa119d6cdc31a6ebd9d9d4e6e4ad1bf057d529"
},
"downloads": -1,
"filename": "libusb-1.0.27.post3.zip",
"has_sig": false,
"md5_digest": "15638d92dd1007fff89b618750b7317e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0.0,>=3.9.0",
"size": 665026,
"upload_time": "2024-10-09T21:03:43",
"upload_time_iso_8601": "2024-10-09T21:03:43.562321Z",
"url": "https://files.pythonhosted.org/packages/5d/03/114fc379ec2aaa555a6ef5c0c0abfe947abe76c9b664667904829b7b73ac/libusb-1.0.27.post3.zip",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-10-09 21:03:43",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "karpierz",
"github_project": "libusb",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "libusb"
}