libusb 1.0.27__zip → 1.0.27.post1__zip
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {libusb-1.0.27 → libusb-1.0.27.post1}/.readthedocs.yml +1 -1
- {libusb-1.0.27 → libusb-1.0.27.post1}/CHANGES.rst +7 -0
- {libusb-1.0.27 → libusb-1.0.27.post1}/MANIFEST.in +1 -2
- {libusb-1.0.27 → libusb-1.0.27.post1}/PKG-INFO +21 -13
- {libusb-1.0.27 → libusb-1.0.27.post1}/README.rst +1 -1
- libusb-1.0.27.post1/examples/_win32.py +149 -0
- {libusb-1.0.27 → libusb-1.0.27.post1}/examples/dpfp.py +2 -3
- {libusb-1.0.27 → libusb-1.0.27.post1}/examples/dpfp_threaded.py +1 -2
- {libusb-1.0.27 → libusb-1.0.27.post1}/examples/ezusb.py +1 -2
- {libusb-1.0.27 → libusb-1.0.27.post1}/examples/fxload.py +1 -2
- {libusb-1.0.27 → libusb-1.0.27.post1}/examples/hotplugtest.py +1 -2
- {libusb-1.0.27 → libusb-1.0.27.post1}/examples/listdevs.py +1 -2
- {libusb-1.0.27 → libusb-1.0.27.post1}/examples/sam3u_benchmark.py +1 -2
- {libusb-1.0.27 → libusb-1.0.27.post1}/examples/testlibusb.py +1 -2
- {libusb-1.0.27 → libusb-1.0.27.post1}/examples/xusb.py +2 -3
- {libusb-1.0.27 → libusb-1.0.27.post1}/pyproject.toml +34 -34
- {libusb-1.0.27 → libusb-1.0.27.post1}/src/libusb/__about__.py +1 -2
- {libusb-1.0.27 → libusb-1.0.27.post1}/src/libusb/__init__.py +1 -2
- {libusb-1.0.27 → libusb-1.0.27.post1}/src/libusb/_config.py +1 -2
- {libusb-1.0.27 → libusb-1.0.27.post1}/src/libusb/_dll.py +1 -2
- {libusb-1.0.27 → libusb-1.0.27.post1}/src/libusb/_libusb.py +581 -591
- {libusb-1.0.27 → libusb-1.0.27.post1}/src/libusb/_platform/__init__.py +1 -2
- {libusb-1.0.27 → libusb-1.0.27.post1}/src/libusb/_platform/_linux/__init__.py +1 -2
- {libusb-1.0.27 → libusb-1.0.27.post1}/src/libusb/_platform/_macos/__init__.py +1 -2
- {libusb-1.0.27 → libusb-1.0.27.post1}/src/libusb/_platform/_windows/__init__.py +1 -2
- {libusb-1.0.27 → libusb-1.0.27.post1}/src/libusb.egg-info/PKG-INFO +21 -13
- {libusb-1.0.27 → libusb-1.0.27.post1}/src/libusb.egg-info/SOURCES.txt +2 -2
- libusb-1.0.27.post1/src/libusb.egg-info/requires.txt +16 -0
- {libusb-1.0.27 → libusb-1.0.27.post1}/tests/__init__.py +1 -2
- {libusb-1.0.27 → libusb-1.0.27.post1}/tests/__main__.py +1 -2
- libusb-1.0.27.post1/tests/_win32.py +149 -0
- {libusb-1.0.27 → libusb-1.0.27.post1}/tests/test_main.py +1 -2
- {libusb-1.0.27 → libusb-1.0.27.post1}/tests/testlib.py +1 -2
- {libusb-1.0.27 → libusb-1.0.27.post1}/tests/tman_init_context.py +1 -2
- {libusb-1.0.27 → libusb-1.0.27.post1}/tests/tman_set_option.py +1 -2
- {libusb-1.0.27 → libusb-1.0.27.post1}/tests/tman_stress.py +1 -2
- {libusb-1.0.27 → libusb-1.0.27.post1}/tests/tman_stress_mt.py +2 -3
- {libusb-1.0.27 → libusb-1.0.27.post1}/tests/umockdev.py_ +1 -2
- libusb-1.0.27/examples/win32.py +0 -81
- libusb-1.0.27/src/libusb.egg-info/requires.txt +0 -16
- libusb-1.0.27/tests/win32.py +0 -81
- {libusb-1.0.27 → libusb-1.0.27.post1}/LICENSE +0 -0
- {libusb-1.0.27 → libusb-1.0.27.post1}/docs/CHANGES.rst +0 -0
- {libusb-1.0.27 → libusb-1.0.27.post1}/docs/README.rst +0 -0
- {libusb-1.0.27 → libusb-1.0.27.post1}/docs/_static/libusb.png +0 -0
- {libusb-1.0.27 → libusb-1.0.27.post1}/docs/_templates/.keep +0 -0
- {libusb-1.0.27 → libusb-1.0.27.post1}/docs/conf.py +0 -0
- {libusb-1.0.27 → libusb-1.0.27.post1}/docs/index.rst +0 -0
- {libusb-1.0.27 → libusb-1.0.27.post1}/setup.cfg +0 -0
- {libusb-1.0.27 → libusb-1.0.27.post1}/src/libusb/__config__.py +0 -0
- {libusb-1.0.27 → libusb-1.0.27.post1}/src/libusb/_platform/_linux/aarch64/libusb-1.0.so +0 -0
- {libusb-1.0.27 → libusb-1.0.27.post1}/src/libusb/_platform/_linux/x64/libusb-1.0.so +0 -0
- {libusb-1.0.27 → libusb-1.0.27.post1}/src/libusb/_platform/_linux/x86/libusb-1.0.so +0 -0
- {libusb-1.0.27 → libusb-1.0.27.post1}/src/libusb/_platform/_macos/x64/10.7/libusb-1.0.0.dylib +0 -0
- {libusb-1.0.27 → libusb-1.0.27.post1}/src/libusb/_platform/_macos/x64/11.6/libusb-1.0.0.dylib +0 -0
- {libusb-1.0.27 → libusb-1.0.27.post1}/src/libusb/_platform/_macos/x86/.keep +0 -0
- {libusb-1.0.27 → libusb-1.0.27.post1}/src/libusb/_platform/_windows/x64/libusb-1.0.dll +0 -0
- {libusb-1.0.27 → libusb-1.0.27.post1}/src/libusb/_platform/_windows/x86/libusb-1.0.dll +0 -0
- {libusb-1.0.27 → libusb-1.0.27.post1}/src/libusb/libusb.cfg +0 -0
- {libusb-1.0.27 → libusb-1.0.27.post1}/src/libusb.egg-info/dependency_links.txt +0 -0
- {libusb-1.0.27 → libusb-1.0.27.post1}/src/libusb.egg-info/not-zip-safe +0 -0
- {libusb-1.0.27 → libusb-1.0.27.post1}/src/libusb.egg-info/top_level.txt +0 -0
- {libusb-1.0.27 → libusb-1.0.27.post1}/tests/data/.keep +0 -0
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
Changelog
|
|
2
2
|
=========
|
|
3
3
|
|
|
4
|
+
1.0.27.post1 (2024-08-13)
|
|
5
|
+
-------------------------
|
|
6
|
+
- Add support for Python 3.13
|
|
7
|
+
- Setup (dependencies) update.
|
|
8
|
+
- Improvements and cleanup for win32.
|
|
9
|
+
- Source code refactoring and cleanup.
|
|
10
|
+
|
|
4
11
|
1.0.27 (2024-02-05)
|
|
5
12
|
-------------------
|
|
6
13
|
- | The API has been fully updated to version 1.0.27 (libusb v.1.0.27
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: libusb
|
|
3
|
-
Version: 1.0.27
|
|
3
|
+
Version: 1.0.27.post1
|
|
4
4
|
Summary: Python binding for the libusb C library.
|
|
5
5
|
Author: Adam Karpierz
|
|
6
6
|
Author-email: adam@karpierz.net
|
|
@@ -26,27 +26,28 @@ Classifier: Programming Language :: Python :: 3.9
|
|
|
26
26
|
Classifier: Programming Language :: Python :: 3.10
|
|
27
27
|
Classifier: Programming Language :: Python :: 3.11
|
|
28
28
|
Classifier: Programming Language :: Python :: 3.12
|
|
29
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
29
30
|
Classifier: Programming Language :: Python :: 3 :: Only
|
|
30
31
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
31
32
|
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
|
32
33
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
33
|
-
Requires-Python: <4.0.0,>=3.8.
|
|
34
|
+
Requires-Python: <4.0.0,>=3.8.10
|
|
34
35
|
Description-Content-Type: text/x-rst; charset=UTF-8
|
|
35
36
|
License-File: LICENSE
|
|
36
|
-
Requires-Dist: setuptools>=
|
|
37
|
-
Requires-Dist: pkg-about>=1.1.
|
|
37
|
+
Requires-Dist: setuptools>=72.2.0
|
|
38
|
+
Requires-Dist: pkg-about>=1.1.8
|
|
38
39
|
Provides-Extra: doc
|
|
39
40
|
Requires-Dist: Sphinx>=7.1.2; extra == "doc"
|
|
40
|
-
Requires-Dist: sphinx-toolbox>=3.
|
|
41
|
-
Requires-Dist: sphinx-tabs>=3.4.
|
|
42
|
-
Requires-Dist: sphinx-copybutton>=0.5.
|
|
43
|
-
Requires-Dist: sphinxcontrib-spelling>=
|
|
44
|
-
Requires-Dist: sphinx-lint>=0.
|
|
41
|
+
Requires-Dist: sphinx-toolbox>=3.7.0; extra == "doc"
|
|
42
|
+
Requires-Dist: sphinx-tabs>=3.4.5; extra == "doc"
|
|
43
|
+
Requires-Dist: sphinx-copybutton>=0.5.2; extra == "doc"
|
|
44
|
+
Requires-Dist: sphinxcontrib-spelling>=8.0.0; extra == "doc"
|
|
45
|
+
Requires-Dist: sphinx-lint>=0.9.1; extra == "doc"
|
|
45
46
|
Requires-Dist: restructuredtext-lint>=1.4.0; extra == "doc"
|
|
46
|
-
Requires-Dist: nbsphinx>=0.
|
|
47
|
+
Requires-Dist: nbsphinx>=0.9.4; extra == "doc"
|
|
47
48
|
Provides-Extra: test
|
|
48
|
-
Requires-Dist: deepdiff>=
|
|
49
|
-
Requires-Dist: rich>=13.7.
|
|
49
|
+
Requires-Dist: deepdiff>=7.0.1; extra == "test"
|
|
50
|
+
Requires-Dist: rich>=13.7.1; extra == "test"
|
|
50
51
|
|
|
51
52
|
libusb
|
|
52
53
|
======
|
|
@@ -128,7 +129,7 @@ Prerequisites:
|
|
|
128
129
|
+ Python 3.8 or higher
|
|
129
130
|
|
|
130
131
|
* https://www.python.org/
|
|
131
|
-
* with C libusb 1.0.
|
|
132
|
+
* with C libusb 1.0.27 is a primary test environment.
|
|
132
133
|
|
|
133
134
|
+ pip and setuptools
|
|
134
135
|
|
|
@@ -196,6 +197,13 @@ Authors
|
|
|
196
197
|
Changelog
|
|
197
198
|
=========
|
|
198
199
|
|
|
200
|
+
1.0.27.post1 (2024-08-13)
|
|
201
|
+
-------------------------
|
|
202
|
+
- Add support for Python 3.13
|
|
203
|
+
- Setup (dependencies) update.
|
|
204
|
+
- Improvements and cleanup for win32.
|
|
205
|
+
- Source code refactoring and cleanup.
|
|
206
|
+
|
|
199
207
|
1.0.27 (2024-02-05)
|
|
200
208
|
-------------------
|
|
201
209
|
- | The API has been fully updated to version 1.0.27 (libusb v.1.0.27
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
# Copyright (c) 2013 Adam Karpierz
|
|
2
|
+
# SPDX-License-Identifier: Zlib
|
|
3
|
+
|
|
4
|
+
import ctypes
|
|
5
|
+
from ctypes import windll
|
|
6
|
+
from ctypes import wintypes
|
|
7
|
+
from ctypes import WINFUNCTYPE
|
|
8
|
+
from ctypes.wintypes import (
|
|
9
|
+
CHAR, WCHAR, BOOLEAN, BOOL, BYTE, WORD, DWORD, SHORT, USHORT, INT,
|
|
10
|
+
UINT, LONG, ULONG, LARGE_INTEGER, ULARGE_INTEGER, FLOAT, DOUBLE,
|
|
11
|
+
LPBYTE, PBYTE, LPWORD, PWORD, LPDWORD, PDWORD, LPLONG, PLONG, LPSTR,
|
|
12
|
+
LPCSTR, LPVOID, LPCVOID, LPVOID as PVOID, HANDLE, LPHANDLE, PHANDLE,
|
|
13
|
+
WPARAM, LPARAM, FILETIME, LPFILETIME,
|
|
14
|
+
)
|
|
15
|
+
|
|
16
|
+
from ctypes.wintypes import WPARAM as ULONG_PTR # workaround
|
|
17
|
+
PULONG_PTR = ctypes.POINTER(ULONG_PTR)
|
|
18
|
+
|
|
19
|
+
ULONG32 = ctypes.c_uint32
|
|
20
|
+
ULONGLONG = ctypes.c_uint64
|
|
21
|
+
DWORDLONG = ctypes.c_uint64
|
|
22
|
+
SIZE_T = ctypes.c_size_t
|
|
23
|
+
|
|
24
|
+
WAIT_ABANDONED = 0x00000080
|
|
25
|
+
WAIT_OBJECT_0 = 0x00000000
|
|
26
|
+
WAIT_TIMEOUT = 0x00000102
|
|
27
|
+
WAIT_FAILED = 0xFFFFFFFF
|
|
28
|
+
|
|
29
|
+
IGNORE = 0
|
|
30
|
+
INFINITE = 0xFFFFFFFF
|
|
31
|
+
|
|
32
|
+
FORMAT_MESSAGE_ALLOCATE_BUFFER = 0x00000100
|
|
33
|
+
FORMAT_MESSAGE_ARGUMENT_ARRAY = 0x00002000
|
|
34
|
+
FORMAT_MESSAGE_FROM_HMODULE = 0x00000800
|
|
35
|
+
FORMAT_MESSAGE_FROM_STRING = 0x00000400
|
|
36
|
+
FORMAT_MESSAGE_FROM_SYSTEM = 0x00001000
|
|
37
|
+
FORMAT_MESSAGE_IGNORE_INSERTS = 0x00000200
|
|
38
|
+
FORMAT_MESSAGE_MAX_WIDTH_MASK = 0x000000FF
|
|
39
|
+
|
|
40
|
+
GetCurrentProcess = windll.kernel32.GetCurrentProcess
|
|
41
|
+
GetCurrentProcess.restype = HANDLE
|
|
42
|
+
GetCurrentProcess.argtypes = []
|
|
43
|
+
|
|
44
|
+
GetProcessTimes = windll.kernel32.GetProcessTimes
|
|
45
|
+
GetProcessTimes.restype = BOOL
|
|
46
|
+
GetProcessTimes.argtypes = [HANDLE,
|
|
47
|
+
LPFILETIME,
|
|
48
|
+
LPFILETIME,
|
|
49
|
+
LPFILETIME,
|
|
50
|
+
LPFILETIME]
|
|
51
|
+
|
|
52
|
+
class SECURITY_ATTRIBUTES(ctypes.Structure):
|
|
53
|
+
_fields_ = [
|
|
54
|
+
("nLength", DWORD),
|
|
55
|
+
("lpSecurityDescriptor", LPVOID),
|
|
56
|
+
("bInheritHandle", BOOL),
|
|
57
|
+
]
|
|
58
|
+
LPSECURITY_ATTRIBUTES = ctypes.POINTER(SECURITY_ATTRIBUTES)
|
|
59
|
+
|
|
60
|
+
LPTHREAD_START_ROUTINE = WINFUNCTYPE(DWORD, LPVOID)
|
|
61
|
+
CreateThread = windll.kernel32.CreateThread
|
|
62
|
+
CreateThread.restype = HANDLE
|
|
63
|
+
CreateThread.argtypes = [LPSECURITY_ATTRIBUTES,
|
|
64
|
+
SIZE_T,
|
|
65
|
+
LPTHREAD_START_ROUTINE,
|
|
66
|
+
LPVOID,
|
|
67
|
+
DWORD,
|
|
68
|
+
LPDWORD]
|
|
69
|
+
|
|
70
|
+
WaitForSingleObject = windll.kernel32.WaitForSingleObject
|
|
71
|
+
WaitForSingleObject.restype = DWORD
|
|
72
|
+
WaitForSingleObject.argtypes = [HANDLE,
|
|
73
|
+
DWORD]
|
|
74
|
+
|
|
75
|
+
SetEvent = windll.kernel32.SetEvent
|
|
76
|
+
SetEvent.restype = BOOL
|
|
77
|
+
SetEvent.argtypes = [HANDLE]
|
|
78
|
+
|
|
79
|
+
CreateSemaphore = windll.kernel32.CreateSemaphoreA
|
|
80
|
+
CreateSemaphore.restype = HANDLE
|
|
81
|
+
CreateSemaphore.argtypes = [LPSECURITY_ATTRIBUTES,
|
|
82
|
+
LONG,
|
|
83
|
+
LONG,
|
|
84
|
+
LPCSTR]
|
|
85
|
+
|
|
86
|
+
ReleaseSemaphore = windll.kernel32.ReleaseSemaphore
|
|
87
|
+
ReleaseSemaphore.restype = BOOL
|
|
88
|
+
ReleaseSemaphore.argtypes = [HANDLE,
|
|
89
|
+
LONG,
|
|
90
|
+
LPLONG]
|
|
91
|
+
|
|
92
|
+
Sleep = windll.kernel32.Sleep
|
|
93
|
+
Sleep.restype = None
|
|
94
|
+
Sleep.argtypes = [DWORD]
|
|
95
|
+
|
|
96
|
+
PHANDLER_ROUTINE = WINFUNCTYPE(BOOL, DWORD)
|
|
97
|
+
SetConsoleCtrlHandler = windll.kernel32.SetConsoleCtrlHandler
|
|
98
|
+
SetConsoleCtrlHandler.restype = BOOL
|
|
99
|
+
SetConsoleCtrlHandler.argtypes = [PHANDLER_ROUTINE,
|
|
100
|
+
BOOL]
|
|
101
|
+
|
|
102
|
+
CloseHandle = windll.kernel32.CloseHandle
|
|
103
|
+
CloseHandle.restype = BOOL
|
|
104
|
+
CloseHandle.argtypes = [HANDLE]
|
|
105
|
+
|
|
106
|
+
GetLastError = windll.kernel32.GetLastError
|
|
107
|
+
GetLastError.restype = DWORD
|
|
108
|
+
GetLastError.argtypes = []
|
|
109
|
+
|
|
110
|
+
FormatMessageA = windll.kernel32.FormatMessageA
|
|
111
|
+
FormatMessageA.restype = DWORD
|
|
112
|
+
FormatMessageA.argtypes = [DWORD,
|
|
113
|
+
LPCVOID,
|
|
114
|
+
DWORD,
|
|
115
|
+
DWORD,
|
|
116
|
+
LPSTR,
|
|
117
|
+
DWORD,
|
|
118
|
+
LPVOID]
|
|
119
|
+
|
|
120
|
+
class SYSTEMTIME(ctypes.Structure):
|
|
121
|
+
_fields_ = [
|
|
122
|
+
("wYear", WORD),
|
|
123
|
+
("wMonth", WORD),
|
|
124
|
+
("wDayOfWeek", WORD),
|
|
125
|
+
("wDay", WORD),
|
|
126
|
+
("wHour", WORD),
|
|
127
|
+
("wMinute", WORD),
|
|
128
|
+
("wSecond", WORD),
|
|
129
|
+
("wMilliseconds", WORD),
|
|
130
|
+
]
|
|
131
|
+
LPSYSTEMTIME = ctypes.POINTER(SYSTEMTIME)
|
|
132
|
+
|
|
133
|
+
GetLocalTime = windll.kernel32.GetLocalTime
|
|
134
|
+
GetLocalTime.restype = None
|
|
135
|
+
GetLocalTime.argtypes = [LPSYSTEMTIME]
|
|
136
|
+
|
|
137
|
+
SetLocalTime = windll.kernel32.SetLocalTime
|
|
138
|
+
SetLocalTime.restype = BOOL
|
|
139
|
+
SetLocalTime.argtypes = [LPSYSTEMTIME]
|
|
140
|
+
|
|
141
|
+
GetSystemTime = windll.kernel32.GetSystemTime
|
|
142
|
+
GetSystemTime.restype = None
|
|
143
|
+
GetSystemTime.argtypes = [LPSYSTEMTIME]
|
|
144
|
+
|
|
145
|
+
SetSystemTime = windll.kernel32.SetSystemTime
|
|
146
|
+
SetSystemTime.restype = BOOL
|
|
147
|
+
SetSystemTime.argtypes = [LPSYSTEMTIME]
|
|
148
|
+
|
|
149
|
+
del ctypes
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
# Copyright (c) 2016 Adam Karpierz
|
|
2
|
-
#
|
|
3
|
-
# https://opensource.org/license/zlib
|
|
2
|
+
# SPDX-License-Identifier: Zlib
|
|
4
3
|
|
|
5
4
|
# libusb example program to manipulate U.are.U 4000B fingerprint scanner.
|
|
6
5
|
# Copyright © 2007 Daniel Drake <dsd@gentoo.org>
|
|
@@ -32,7 +31,7 @@ import ctypes as ct
|
|
|
32
31
|
|
|
33
32
|
import libusb as usb
|
|
34
33
|
from libusb._platform import defined, is_posix, is_windows
|
|
35
|
-
if is_windows: import win32
|
|
34
|
+
if is_windows: import _win32 as win32
|
|
36
35
|
|
|
37
36
|
usb_strerror = lambda r: usb.strerror(r).decode("utf-8")
|
|
38
37
|
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
# Copyright (c) 2016 Adam Karpierz
|
|
2
|
-
#
|
|
3
|
-
# https://opensource.org/license/zlib
|
|
2
|
+
# SPDX-License-Identifier: Zlib
|
|
4
3
|
|
|
5
4
|
# libusb example program to manipulate U.are.U 4000B fingerprint scanner.
|
|
6
5
|
# Copyright © 2007 Daniel Drake <dsd@gentoo.org>
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
# Copyright (c) 2016 Adam Karpierz
|
|
2
|
-
#
|
|
3
|
-
# https://opensource.org/license/zlib
|
|
2
|
+
# SPDX-License-Identifier: Zlib
|
|
4
3
|
|
|
5
4
|
# Copyright © 2001 Stephen Williams (steve@icarus.com)
|
|
6
5
|
# Copyright © 2001-2002 David Brownell (dbrownell@users.sourceforge.net)
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
# Copyright (c) 2016 Adam Karpierz
|
|
2
|
-
#
|
|
3
|
-
# https://opensource.org/license/zlib
|
|
2
|
+
# SPDX-License-Identifier: Zlib
|
|
4
3
|
|
|
5
4
|
# Copyright © 2001 Stephen Williams (steve@icarus.com)
|
|
6
5
|
# Copyright © 2001-2002 David Brownell (dbrownell@users.sourceforge.net)
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
# Copyright (c) 2016 Adam Karpierz
|
|
2
|
-
#
|
|
3
|
-
# https://opensource.org/license/zlib
|
|
2
|
+
# SPDX-License-Identifier: Zlib
|
|
4
3
|
|
|
5
4
|
# libusb example program to measure Atmel SAM3U isochronous performance
|
|
6
5
|
# Copyright (C) 2012 Harald Welte <laforge@gnumonks.org>
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
# Copyright (c) 2016 Adam Karpierz
|
|
2
|
-
#
|
|
3
|
-
# https://opensource.org/license/zlib
|
|
2
|
+
# SPDX-License-Identifier: Zlib
|
|
4
3
|
|
|
5
4
|
# Test suite program based of libusb-0.1-compat testlibusb
|
|
6
5
|
# Copyright (c) 2013 Nathan Hjelm <hjelmn@mac.ccom>
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
# Copyright (c) 2016 Adam Karpierz
|
|
2
|
-
#
|
|
3
|
-
# https://opensource.org/license/zlib
|
|
2
|
+
# SPDX-License-Identifier: Zlib
|
|
4
3
|
|
|
5
4
|
# xusb: Generic USB test program
|
|
6
5
|
# Copyright © 2009-2012 Pete Batard <pete@akeo.ie>
|
|
@@ -27,7 +26,7 @@ import ctypes as ct
|
|
|
27
26
|
|
|
28
27
|
import libusb as usb
|
|
29
28
|
from libusb._platform import is_windows
|
|
30
|
-
if is_windows: import win32
|
|
29
|
+
if is_windows: import _win32 as win32
|
|
31
30
|
|
|
32
31
|
usb_strerror = lambda r: usb.strerror(r).decode("utf-8")
|
|
33
32
|
usb_error_name = lambda status: usb.error_name(status).decode("utf-8")
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
# Copyright (c) 2016 Adam Karpierz
|
|
2
|
-
#
|
|
3
|
-
# https://opensource.org/license/zlib
|
|
2
|
+
# SPDX-License-Identifier: Zlib
|
|
4
3
|
|
|
5
4
|
[build-system]
|
|
6
5
|
build-backend = 'setuptools.build_meta'
|
|
7
|
-
requires = ['setuptools>=
|
|
6
|
+
requires = ['setuptools>=72.2.0', 'wheel>=0.44.0', 'packaging>=24.1.0', 'tox>=4.18.0']
|
|
8
7
|
|
|
9
8
|
[project]
|
|
10
9
|
name = 'libusb'
|
|
11
|
-
version = '1.0.27'
|
|
10
|
+
version = '1.0.27.post1'
|
|
12
11
|
description = 'Python binding for the libusb C library.'
|
|
13
12
|
urls.Homepage = 'https://pypi.org/project/libusb/'
|
|
14
13
|
urls.Documentation = 'https://libusb.readthedocs.io/'
|
|
@@ -38,33 +37,34 @@ classifiers = [
|
|
|
38
37
|
'Programming Language :: Python :: 3.10',
|
|
39
38
|
'Programming Language :: Python :: 3.11',
|
|
40
39
|
'Programming Language :: Python :: 3.12',
|
|
40
|
+
'Programming Language :: Python :: 3.13',
|
|
41
41
|
'Programming Language :: Python :: 3 :: Only',
|
|
42
42
|
'Programming Language :: Python :: Implementation :: CPython',
|
|
43
43
|
'Programming Language :: Python :: Implementation :: PyPy',
|
|
44
44
|
'Topic :: Software Development :: Libraries :: Python Modules',
|
|
45
45
|
]
|
|
46
|
-
requires-python = '>=3.8.
|
|
46
|
+
requires-python = '>=3.8.10,<4.0.0'
|
|
47
47
|
dependencies = [
|
|
48
48
|
# mandatory
|
|
49
|
-
'setuptools>=
|
|
50
|
-
'pkg-about>=1.1.
|
|
49
|
+
'setuptools>=72.2.0',
|
|
50
|
+
'pkg-about>=1.1.8',
|
|
51
51
|
# others
|
|
52
52
|
]
|
|
53
53
|
dynamic = ['readme']
|
|
54
54
|
[project.optional-dependencies]
|
|
55
55
|
doc = [
|
|
56
56
|
'Sphinx>=7.1.2',
|
|
57
|
-
'sphinx-toolbox>=3.
|
|
58
|
-
'sphinx-tabs>=3.4.
|
|
59
|
-
'sphinx-copybutton>=0.5.
|
|
60
|
-
'sphinxcontrib-spelling>=
|
|
61
|
-
'sphinx-lint>=0.
|
|
57
|
+
'sphinx-toolbox>=3.7.0',
|
|
58
|
+
'sphinx-tabs>=3.4.5',
|
|
59
|
+
'sphinx-copybutton>=0.5.2',
|
|
60
|
+
'sphinxcontrib-spelling>=8.0.0',
|
|
61
|
+
'sphinx-lint>=0.9.1',
|
|
62
62
|
'restructuredtext-lint>=1.4.0',
|
|
63
|
-
'nbsphinx>=0.
|
|
63
|
+
'nbsphinx>=0.9.4',
|
|
64
64
|
]
|
|
65
65
|
test = [
|
|
66
|
-
'deepdiff>=
|
|
67
|
-
'rich>=13.7.
|
|
66
|
+
'deepdiff>=7.0.1',
|
|
67
|
+
'rich>=13.7.1',
|
|
68
68
|
]
|
|
69
69
|
|
|
70
70
|
[project.scripts]
|
|
@@ -174,29 +174,29 @@ count = true
|
|
|
174
174
|
[tool.tox]
|
|
175
175
|
legacy_tox_ini = """
|
|
176
176
|
[tox]
|
|
177
|
-
envlist = py{38,39,310,311,312}, pypy{39,310}, docs
|
|
177
|
+
envlist = py{38,39,310,311,312,313}, pypy{39,310}, docs
|
|
178
178
|
labels =
|
|
179
|
-
py = py{38,39,310,311,312}, pypy{39,310}
|
|
179
|
+
py = py{38,39,310,311,312,313}, pypy{39,310}
|
|
180
180
|
prepare = prepare
|
|
181
181
|
coverage = coverage
|
|
182
182
|
lint = lint
|
|
183
183
|
docs = docs
|
|
184
|
-
build = py{38,39,310,311,312}, pypy{39,310}, docs, build
|
|
185
|
-
deploy = py{38,39,310,311,312}, pypy{39,310}, docs, build, publish
|
|
186
|
-
minversion = 4.
|
|
184
|
+
build = py{38,39,310,311,312,313}, pypy{39,310}, docs, build
|
|
185
|
+
deploy = py{38,39,310,311,312,313}, pypy{39,310}, docs, build, publish
|
|
186
|
+
minversion = 4.18.0
|
|
187
187
|
skip_missing_interpreters = true
|
|
188
188
|
requires =
|
|
189
189
|
{[base]deps}
|
|
190
|
-
virtualenv>=20.
|
|
191
|
-
tox-backtick>=0.4.
|
|
190
|
+
virtualenv>=20.26.3
|
|
191
|
+
tox-backtick>=0.4.6
|
|
192
192
|
tox-tags>=0.2.0
|
|
193
193
|
|
|
194
194
|
[base]
|
|
195
|
-
basepython = python3.
|
|
195
|
+
basepython = python3.12
|
|
196
196
|
deps =
|
|
197
|
-
pip>=
|
|
198
|
-
setuptools>=
|
|
199
|
-
wheel>=0.
|
|
197
|
+
pip>=24.2.0
|
|
198
|
+
setuptools>=72.2.0
|
|
199
|
+
wheel>=0.44.0
|
|
200
200
|
packagesubdir = libusb
|
|
201
201
|
|
|
202
202
|
[testenv]
|
|
@@ -228,9 +228,9 @@ commands =
|
|
|
228
228
|
{envpython} -m coverage html
|
|
229
229
|
deps =
|
|
230
230
|
{[testenv]deps}
|
|
231
|
-
coverage>=7.
|
|
231
|
+
coverage>=7.6.1
|
|
232
232
|
covdefaults>=2.3.0
|
|
233
|
-
diff-cover>=
|
|
233
|
+
diff-cover>=9.1.1
|
|
234
234
|
|
|
235
235
|
[testenv:docs]
|
|
236
236
|
basepython = {[base]basepython}
|
|
@@ -244,7 +244,7 @@ extras = doc
|
|
|
244
244
|
deps =
|
|
245
245
|
|
|
246
246
|
[testenv:build]
|
|
247
|
-
depends = py{38,39,310,311,312}, pypy{39,310}, docs
|
|
247
|
+
depends = py{38,39,310,311,312,313}, pypy{39,310}, docs
|
|
248
248
|
basepython = {[base]basepython}
|
|
249
249
|
setenv =
|
|
250
250
|
{[testenv]setenv}
|
|
@@ -258,7 +258,7 @@ commands =
|
|
|
258
258
|
{envpython} -m twine check dist/*
|
|
259
259
|
deps =
|
|
260
260
|
{[testenv]deps}
|
|
261
|
-
twine>=
|
|
261
|
+
twine>=5.1.1
|
|
262
262
|
|
|
263
263
|
[testenv:publish]
|
|
264
264
|
depends = build
|
|
@@ -269,7 +269,7 @@ commands =
|
|
|
269
269
|
{envpython} -m twine upload dist/*
|
|
270
270
|
extras =
|
|
271
271
|
deps =
|
|
272
|
-
twine>=
|
|
272
|
+
twine>=5.1.1
|
|
273
273
|
|
|
274
274
|
[testenv:lint]
|
|
275
275
|
basepython = {[base]basepython}
|
|
@@ -278,10 +278,10 @@ commands =
|
|
|
278
278
|
extras =
|
|
279
279
|
deps =
|
|
280
280
|
{[testenv]deps}
|
|
281
|
-
flake8>=7.
|
|
281
|
+
flake8>=7.1.1
|
|
282
282
|
flake8-pyproject>=1.2.3
|
|
283
283
|
flake8-docstrings>=1.7.0
|
|
284
|
-
pep8-naming>=0.
|
|
285
|
-
flake8-builtins>=2.
|
|
284
|
+
pep8-naming>=0.14.1
|
|
285
|
+
flake8-builtins>=2.5.0
|
|
286
286
|
flake8-deprecated>=2.2.1
|
|
287
287
|
"""
|