libvirt-python 12.1.0__tar.gz → 12.3.0__tar.gz
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.
- {libvirt_python-12.1.0 → libvirt_python-12.3.0}/AUTHORS +2 -0
- {libvirt_python-12.1.0 → libvirt_python-12.3.0}/ChangeLog +60 -0
- {libvirt_python-12.1.0 → libvirt_python-12.3.0}/PKG-INFO +1 -1
- libvirt_python-12.3.0/VERSION +1 -0
- {libvirt_python-12.1.0 → libvirt_python-12.3.0}/generator.py +123 -84
- {libvirt_python-12.1.0 → libvirt_python-12.3.0}/libvirt-override-virConnect.py +4 -4
- {libvirt_python-12.1.0 → libvirt_python-12.3.0}/libvirt-override.py +11 -10
- {libvirt_python-12.1.0 → libvirt_python-12.3.0}/libvirt-python.spec +1 -1
- {libvirt_python-12.1.0 → libvirt_python-12.3.0}/libvirtaio.py +1 -1
- libvirt_python-12.3.0/requirements-test.txt +2 -0
- {libvirt_python-12.1.0 → libvirt_python-12.3.0}/tests/eventmock.py +2 -2
- {libvirt_python-12.1.0 → libvirt_python-12.3.0}/tox.ini +1 -2
- {libvirt_python-12.1.0 → libvirt_python-12.3.0}/typewrappers.c +1 -0
- libvirt_python-12.1.0/VERSION +0 -1
- libvirt_python-12.1.0/requirements-test.txt +0 -2
- {libvirt_python-12.1.0 → libvirt_python-12.3.0}/CONTRIBUTING.rst +0 -0
- {libvirt_python-12.1.0 → libvirt_python-12.3.0}/COPYING +0 -0
- {libvirt_python-12.1.0 → libvirt_python-12.3.0}/HACKING +0 -0
- {libvirt_python-12.1.0 → libvirt_python-12.3.0}/MANIFEST.in +0 -0
- {libvirt_python-12.1.0 → libvirt_python-12.3.0}/Makefile +0 -0
- {libvirt_python-12.1.0 → libvirt_python-12.3.0}/README +0 -0
- {libvirt_python-12.1.0 → libvirt_python-12.3.0}/build/libvirt_python.egg-info/SOURCES.txt +0 -0
- {libvirt_python-12.1.0 → libvirt_python-12.3.0}/examples/README +0 -0
- {libvirt_python-12.1.0 → libvirt_python-12.3.0}/examples/consolecallback.py +0 -0
- {libvirt_python-12.1.0 → libvirt_python-12.3.0}/examples/dhcpleases.py +0 -0
- {libvirt_python-12.1.0 → libvirt_python-12.3.0}/examples/dominfo.py +0 -0
- {libvirt_python-12.1.0 → libvirt_python-12.3.0}/examples/domipaddrs.py +0 -0
- {libvirt_python-12.1.0 → libvirt_python-12.3.0}/examples/domrestore.py +0 -0
- {libvirt_python-12.1.0 → libvirt_python-12.3.0}/examples/domsave.py +0 -0
- {libvirt_python-12.1.0 → libvirt_python-12.3.0}/examples/domstart.py +0 -0
- {libvirt_python-12.1.0 → libvirt_python-12.3.0}/examples/esxlist.py +0 -0
- {libvirt_python-12.1.0 → libvirt_python-12.3.0}/examples/event-test.py +0 -0
- {libvirt_python-12.1.0 → libvirt_python-12.3.0}/examples/guest-vcpus/guest-vcpu-daemon.py +0 -0
- {libvirt_python-12.1.0 → libvirt_python-12.3.0}/examples/guest-vcpus/guest-vcpu.py +0 -0
- {libvirt_python-12.1.0 → libvirt_python-12.3.0}/examples/nodestats.py +0 -0
- {libvirt_python-12.1.0 → libvirt_python-12.3.0}/examples/sparsestream.py +0 -0
- {libvirt_python-12.1.0 → libvirt_python-12.3.0}/examples/topology.py +0 -0
- {libvirt_python-12.1.0 → libvirt_python-12.3.0}/libvirt-lxc-override-api.xml +0 -0
- {libvirt_python-12.1.0 → libvirt_python-12.3.0}/libvirt-lxc-override.c +0 -0
- {libvirt_python-12.1.0 → libvirt_python-12.3.0}/libvirt-override-api.xml +0 -0
- {libvirt_python-12.1.0 → libvirt_python-12.3.0}/libvirt-override-virDomain.py +0 -0
- {libvirt_python-12.1.0 → libvirt_python-12.3.0}/libvirt-override-virDomainCheckpoint.py +0 -0
- {libvirt_python-12.1.0 → libvirt_python-12.3.0}/libvirt-override-virDomainSnapshot.py +0 -0
- {libvirt_python-12.1.0 → libvirt_python-12.3.0}/libvirt-override-virNetwork.py +0 -0
- {libvirt_python-12.1.0 → libvirt_python-12.3.0}/libvirt-override-virStoragePool.py +0 -0
- {libvirt_python-12.1.0 → libvirt_python-12.3.0}/libvirt-override-virStream.py +0 -0
- {libvirt_python-12.1.0 → libvirt_python-12.3.0}/libvirt-override.c +1 -1
- {libvirt_python-12.1.0 → libvirt_python-12.3.0}/libvirt-qemu-override-api.xml +0 -0
- {libvirt_python-12.1.0 → libvirt_python-12.3.0}/libvirt-qemu-override.c +1 -1
- {libvirt_python-12.1.0 → libvirt_python-12.3.0}/libvirt-qemu-override.py +0 -0
- {libvirt_python-12.1.0 → libvirt_python-12.3.0}/libvirt-utils.c +2 -2
- {libvirt_python-12.1.0 → libvirt_python-12.3.0}/libvirt-utils.h +0 -0
- {libvirt_python-12.1.0 → libvirt_python-12.3.0}/pyproject.toml +0 -0
- {libvirt_python-12.1.0 → libvirt_python-12.3.0}/setup.cfg +0 -0
- {libvirt_python-12.1.0 → libvirt_python-12.3.0}/setup.py +0 -0
- {libvirt_python-12.1.0 → libvirt_python-12.3.0}/tests/test_aio.py +0 -0
- {libvirt_python-12.1.0 → libvirt_python-12.3.0}/tests/test_api_coverage.py +0 -0
- {libvirt_python-12.1.0 → libvirt_python-12.3.0}/tests/test_conn.py +0 -0
- {libvirt_python-12.1.0 → libvirt_python-12.3.0}/tests/test_domain.py +0 -0
- {libvirt_python-12.1.0 → libvirt_python-12.3.0}/tests/test_domain_checkpoint.py +0 -0
- {libvirt_python-12.1.0 → libvirt_python-12.3.0}/tests/test_domain_snapshot.py +0 -0
- {libvirt_python-12.1.0 → libvirt_python-12.3.0}/tests/test_interface.py +0 -0
- {libvirt_python-12.1.0 → libvirt_python-12.3.0}/tests/test_network.py +0 -0
- {libvirt_python-12.1.0 → libvirt_python-12.3.0}/tests/test_nodedev.py +0 -0
- {libvirt_python-12.1.0 → libvirt_python-12.3.0}/tests/test_storage.py +0 -0
- {libvirt_python-12.1.0 → libvirt_python-12.3.0}/typewrappers.h +0 -0
|
@@ -14,6 +14,7 @@ The individual contributors are
|
|
|
14
14
|
Andrea Bolognani <abologna@redhat.com>
|
|
15
15
|
Ariel Otilibili <otilibil@eurecom.fr>
|
|
16
16
|
Bastian Germann <bage@linutronix.de>
|
|
17
|
+
Ben "535" Blank <ben.blank@gmail.com>
|
|
17
18
|
Beraldo Leal <bleal@redhat.com>
|
|
18
19
|
Boris Fiuczynski <fiuczy@linux.vnet.ibm.com>
|
|
19
20
|
Brian Rak <brak@gameservers.com>
|
|
@@ -95,6 +96,7 @@ The individual contributors are
|
|
|
95
96
|
Stefan Berger <stefanb@us.ibm.com>
|
|
96
97
|
SuhailAhmedVelorum <suhailahmedvelorum@gmail.com>
|
|
97
98
|
Taizo ITO <taizo.ito@hde.co.jp>
|
|
99
|
+
Takashi Kajinami <kajinamit@oss.nttdata.com>
|
|
98
100
|
Taku Izumi <izumi.taku@jp.fujitsu.com>
|
|
99
101
|
Tomoki Sekiyama <tomoki.sekiyama@hds.com>
|
|
100
102
|
Tomáš Golembiovský <tgolembi@redhat.com>
|
|
@@ -1,3 +1,63 @@
|
|
|
1
|
+
2026- 4- 1 Jiri Denemark <jdenemar@redhat.com>
|
|
2
|
+
|
|
3
|
+
Post-release version bump to 12.3.0
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
2026- 3- 25 Ben "535" Blank <ben.blank@gmail.com>
|
|
7
|
+
|
|
8
|
+
Emit type hints for function parameters and return values in most places.
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
2026- 3- 18 Takashi Kajinami <kajinamit@oss.nttdata.com>
|
|
12
|
+
|
|
13
|
+
Add CentOS Stream 10 job
|
|
14
|
+
CentOS Stream 10 was released some time ago. Let's add test coverage
|
|
15
|
+
with it.
|
|
16
|
+
|
|
17
|
+
The new jobs still allow failures but may be required in the future.
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
2026- 3- 5 Takashi Kajinami <kajinamit@oss.nttdata.com>
|
|
22
|
+
|
|
23
|
+
Fix outedated requirements-test.txt
|
|
24
|
+
nose was replaced by pytest long ago.
|
|
25
|
+
|
|
26
|
+
Update tox.ini to use the file to maintain test requirements in
|
|
27
|
+
a single place.
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
2026- 3- 3 Daniel P. Berrangé <berrange@redhat.com>
|
|
32
|
+
|
|
33
|
+
ensure Python.h is the first include file
|
|
34
|
+
Builds with -Werror fail with glibc 2.44 dev snapshots:
|
|
35
|
+
|
|
36
|
+
In file included from /usr/include/python3.14/pyconfig.h:6,
|
|
37
|
+
from /usr/include/python3.14/Python.h:14,
|
|
38
|
+
from d.c:2:
|
|
39
|
+
/usr/include/python3.14/pyconfig-64.h:2007:9: warning: ‘_POSIX_C_SOURCE’ redefined
|
|
40
|
+
2007 | #define _POSIX_C_SOURCE 200809L
|
|
41
|
+
| ^~~~~~~~~~~~~~~
|
|
42
|
+
In file included from /usr/include/bits/libc-header-start.h:33,
|
|
43
|
+
from /usr/include/stdlib.h:26,
|
|
44
|
+
from d.c:1:
|
|
45
|
+
/usr/include/features.h:319:10: note: this is the location of the previous definition
|
|
46
|
+
319 | # define _POSIX_C_SOURCE 202405L
|
|
47
|
+
| ^~~~~~~~~~~~~~~
|
|
48
|
+
|
|
49
|
+
The required solution is to include Python.h first, so that it owns
|
|
50
|
+
the definition of _POSIX_C_SOURCE, and thus glibc won't try to set
|
|
51
|
+
a default value
|
|
52
|
+
|
|
53
|
+
See also: https://bugzilla.redhat.com/show_bug.cgi?id=2416110
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
2026- 3- 2 Jiri Denemark <jdenemar@redhat.com>
|
|
57
|
+
|
|
58
|
+
Post-release version bump to 12.2.0
|
|
59
|
+
|
|
60
|
+
|
|
1
61
|
2026- 1- 29 Daniel P. Berrangé <berrange@redhat.com>
|
|
2
62
|
|
|
3
63
|
rpm: remove extraneous license tag
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
12.3.0
|
|
@@ -230,75 +230,96 @@ skipped_types = {
|
|
|
230
230
|
#######################################################################
|
|
231
231
|
|
|
232
232
|
py_types = {
|
|
233
|
-
'void': ('', '', '', ''),
|
|
234
|
-
'int': ('i', '', "int", "int"),
|
|
235
|
-
'long': ('l', '', "long", "long"),
|
|
236
|
-
'double': ('d', '', "double", "double"),
|
|
237
|
-
'unsigned int': ('I', '', "int", "int"),
|
|
238
|
-
'unsigned long': ('l', '', "long", "long"),
|
|
239
|
-
'long long': ('L', '', "longlong", "long long"),
|
|
240
|
-
'unsigned long long': ('L', '', "longlong", "long long"),
|
|
241
|
-
'unsigned char *': ('z', '', "charPtr", "char *"),
|
|
242
|
-
'char *': ('z', '', "charPtr", "char *"),
|
|
243
|
-
'const char *': ('z', '', "constcharPtr", "const char *"),
|
|
244
|
-
'size_t': ('n', '', "size_t", "size_t"),
|
|
245
|
-
|
|
246
|
-
'virDomainPtr': ('O', "virDomain", "virDomainPtr", "virDomainPtr"),
|
|
247
|
-
'virDomain *': ('O', "virDomain", "virDomainPtr", "virDomainPtr"),
|
|
248
|
-
'const virDomain *': ('O', "virDomain", "virDomainPtr", "virDomainPtr"),
|
|
249
|
-
|
|
250
|
-
'virNetworkPtr': ('O', "virNetwork", "virNetworkPtr", "virNetworkPtr"),
|
|
251
|
-
'virNetwork *': ('O', "virNetwork", "virNetworkPtr", "virNetworkPtr"),
|
|
252
|
-
'const virNetwork *': ('O', "virNetwork", "virNetworkPtr", "virNetworkPtr"),
|
|
253
|
-
|
|
254
|
-
'virNetworkPortPtr': ('O', "virNetworkPort", "virNetworkPortPtr", "virNetworkPortPtr"),
|
|
255
|
-
'virNetworkPort *': ('O', "virNetworkPort", "virNetworkPortPtr", "virNetworkPortPtr"),
|
|
256
|
-
'const virNetworkPort *': ('O', "virNetworkPort", "virNetworkPortPtr", "virNetworkPortPtr"),
|
|
257
|
-
|
|
258
|
-
'virInterfacePtr': ('O', "virInterface", "virInterfacePtr", "virInterfacePtr"),
|
|
259
|
-
'virInterface *': ('O', "virInterface", "virInterfacePtr", "virInterfacePtr"),
|
|
260
|
-
'const virInterface *': ('O', "virInterface", "virInterfacePtr", "virInterfacePtr"),
|
|
261
|
-
|
|
262
|
-
'virStoragePoolPtr': ('O', "virStoragePool", "virStoragePoolPtr", "virStoragePoolPtr"),
|
|
263
|
-
'virStoragePool *': ('O', "virStoragePool", "virStoragePoolPtr", "virStoragePoolPtr"),
|
|
264
|
-
'const virStoragePool *': ('O', "virStoragePool", "virStoragePoolPtr", "virStoragePoolPtr"),
|
|
265
|
-
|
|
266
|
-
'virStorageVolPtr': ('O', "virStorageVol", "virStorageVolPtr", "virStorageVolPtr"),
|
|
267
|
-
'virStorageVol *': ('O', "virStorageVol", "virStorageVolPtr", "virStorageVolPtr"),
|
|
268
|
-
'const virStorageVol *': ('O', "virStorageVol", "virStorageVolPtr", "virStorageVolPtr"),
|
|
269
|
-
|
|
270
|
-
'virConnectPtr': ('O', "virConnect", "virConnectPtr", "virConnectPtr"),
|
|
271
|
-
'virConnect *': ('O', "virConnect", "virConnectPtr", "virConnectPtr"),
|
|
272
|
-
'const virConnect *': ('O', "virConnect", "virConnectPtr", "virConnectPtr"),
|
|
273
|
-
|
|
274
|
-
'virNodeDevicePtr': ('O', "virNodeDevice", "virNodeDevicePtr", "virNodeDevicePtr"),
|
|
275
|
-
'virNodeDevice *': ('O', "virNodeDevice", "virNodeDevicePtr", "virNodeDevicePtr"),
|
|
276
|
-
'const virNodeDevice *': ('O', "virNodeDevice", "virNodeDevicePtr", "virNodeDevicePtr"),
|
|
277
|
-
|
|
278
|
-
'virSecretPtr': ('O', "virSecret", "virSecretPtr", "virSecretPtr"),
|
|
279
|
-
'virSecret *': ('O', "virSecret", "virSecretPtr", "virSecretPtr"),
|
|
280
|
-
'const virSecret *': ('O', "virSecret", "virSecretPtr", "virSecretPtr"),
|
|
281
|
-
|
|
282
|
-
'virNWFilterPtr': ('O', "virNWFilter", "virNWFilterPtr", "virNWFilterPtr"),
|
|
283
|
-
'virNWFilter *': ('O', "virNWFilter", "virNWFilterPtr", "virNWFilterPtr"),
|
|
284
|
-
'const virNWFilter *': ('O', "virNWFilter", "virNWFilterPtr", "virNWFilterPtr"),
|
|
285
|
-
|
|
286
|
-
'virNWFilterBindingPtr': ('O', "virNWFilterBinding", "virNWFilterBindingPtr", "virNWFilterBindingPtr"),
|
|
287
|
-
'virNWFilterBinding *': ('O', "virNWFilterBinding", "virNWFilterBindingPtr", "virNWFilterBindingPtr"),
|
|
288
|
-
'const virNWFilterBinding *': ('O', "virNWFilterBinding", "virNWFilterBindingPtr", "virNWFilterBindingPtr"),
|
|
289
|
-
|
|
290
|
-
'virStreamPtr': ('O', "virStream", "virStreamPtr", "virStreamPtr"),
|
|
291
|
-
'virStream *': ('O', "virStream", "virStreamPtr", "virStreamPtr"),
|
|
292
|
-
'const virStream *': ('O', "virStream", "virStreamPtr", "virStreamPtr"),
|
|
293
|
-
|
|
294
|
-
'virDomainCheckpointPtr': ('O', "virDomainCheckpoint", "virDomainCheckpointPtr", "virDomainCheckpointPtr"),
|
|
295
|
-
'virDomainCheckpoint *': ('O', "virDomainCheckpoint", "virDomainCheckpointPtr", "virDomainCheckpointPtr"),
|
|
296
|
-
'const virDomainCheckpoint *': ('O', "virDomainCheckpoint", "virDomainCheckpointPtr", "virDomainCheckpointPtr"),
|
|
297
|
-
|
|
298
|
-
'virDomainSnapshotPtr': ('O', "virDomainSnapshot", "virDomainSnapshotPtr", "virDomainSnapshotPtr"),
|
|
299
|
-
'virDomainSnapshot *': ('O', "virDomainSnapshot", "virDomainSnapshotPtr", "virDomainSnapshotPtr"),
|
|
300
|
-
'const virDomainSnapshot *': ('O', "virDomainSnapshot", "virDomainSnapshotPtr", "virDomainSnapshotPtr"),
|
|
301
|
-
} # type: Dict[str, Tuple[str, str, str, str]]
|
|
233
|
+
'void': ('', '', '', '', 'None'),
|
|
234
|
+
'int': ('i', '', "int", "int", "int"),
|
|
235
|
+
'long': ('l', '', "long", "long", "int"),
|
|
236
|
+
'double': ('d', '', "double", "double", "float"),
|
|
237
|
+
'unsigned int': ('I', '', "int", "int", "int"),
|
|
238
|
+
'unsigned long': ('l', '', "long", "long", "int"),
|
|
239
|
+
'long long': ('L', '', "longlong", "long long", "int"),
|
|
240
|
+
'unsigned long long': ('L', '', "longlong", "long long", "int"),
|
|
241
|
+
'unsigned char *': ('z', '', "charPtr", "char *", "str"),
|
|
242
|
+
'char *': ('z', '', "charPtr", "char *", "str"),
|
|
243
|
+
'const char *': ('z', '', "constcharPtr", "const char *", "str"),
|
|
244
|
+
'size_t': ('n', '', "size_t", "size_t", "int"),
|
|
245
|
+
|
|
246
|
+
'virDomainPtr': ('O', "virDomain", "virDomainPtr", "virDomainPtr", "virDomain"),
|
|
247
|
+
'virDomain *': ('O', "virDomain", "virDomainPtr", "virDomainPtr", "virDomain"),
|
|
248
|
+
'const virDomain *': ('O', "virDomain", "virDomainPtr", "virDomainPtr", "virDomain"),
|
|
249
|
+
|
|
250
|
+
'virNetworkPtr': ('O', "virNetwork", "virNetworkPtr", "virNetworkPtr", "virNetwork"),
|
|
251
|
+
'virNetwork *': ('O', "virNetwork", "virNetworkPtr", "virNetworkPtr", "virNetwork"),
|
|
252
|
+
'const virNetwork *': ('O', "virNetwork", "virNetworkPtr", "virNetworkPtr", "virNetwork"),
|
|
253
|
+
|
|
254
|
+
'virNetworkPortPtr': ('O', "virNetworkPort", "virNetworkPortPtr", "virNetworkPortPtr", "virNetworkPort"),
|
|
255
|
+
'virNetworkPort *': ('O', "virNetworkPort", "virNetworkPortPtr", "virNetworkPortPtr", "virNetworkPort"),
|
|
256
|
+
'const virNetworkPort *': ('O', "virNetworkPort", "virNetworkPortPtr", "virNetworkPortPtr", "virNetworkPort"),
|
|
257
|
+
|
|
258
|
+
'virInterfacePtr': ('O', "virInterface", "virInterfacePtr", "virInterfacePtr", "virInterface"),
|
|
259
|
+
'virInterface *': ('O', "virInterface", "virInterfacePtr", "virInterfacePtr", "virInterface"),
|
|
260
|
+
'const virInterface *': ('O', "virInterface", "virInterfacePtr", "virInterfacePtr", "virInterface"),
|
|
261
|
+
|
|
262
|
+
'virStoragePoolPtr': ('O', "virStoragePool", "virStoragePoolPtr", "virStoragePoolPtr", "virStoragePool"),
|
|
263
|
+
'virStoragePool *': ('O', "virStoragePool", "virStoragePoolPtr", "virStoragePoolPtr", "virStoragePool"),
|
|
264
|
+
'const virStoragePool *': ('O', "virStoragePool", "virStoragePoolPtr", "virStoragePoolPtr", "virStoragePool"),
|
|
265
|
+
|
|
266
|
+
'virStorageVolPtr': ('O', "virStorageVol", "virStorageVolPtr", "virStorageVolPtr", "virStorageVol"),
|
|
267
|
+
'virStorageVol *': ('O', "virStorageVol", "virStorageVolPtr", "virStorageVolPtr", "virStorageVol"),
|
|
268
|
+
'const virStorageVol *': ('O', "virStorageVol", "virStorageVolPtr", "virStorageVolPtr", "virStorageVol"),
|
|
269
|
+
|
|
270
|
+
'virConnectPtr': ('O', "virConnect", "virConnectPtr", "virConnectPtr", "virConnect"),
|
|
271
|
+
'virConnect *': ('O', "virConnect", "virConnectPtr", "virConnectPtr", "virConnect"),
|
|
272
|
+
'const virConnect *': ('O', "virConnect", "virConnectPtr", "virConnectPtr", "virConnect"),
|
|
273
|
+
|
|
274
|
+
'virNodeDevicePtr': ('O', "virNodeDevice", "virNodeDevicePtr", "virNodeDevicePtr", "virNodeDevice"),
|
|
275
|
+
'virNodeDevice *': ('O', "virNodeDevice", "virNodeDevicePtr", "virNodeDevicePtr", "virNodeDevice"),
|
|
276
|
+
'const virNodeDevice *': ('O', "virNodeDevice", "virNodeDevicePtr", "virNodeDevicePtr", "virNodeDevice"),
|
|
277
|
+
|
|
278
|
+
'virSecretPtr': ('O', "virSecret", "virSecretPtr", "virSecretPtr", "virSecret"),
|
|
279
|
+
'virSecret *': ('O', "virSecret", "virSecretPtr", "virSecretPtr", "virSecret"),
|
|
280
|
+
'const virSecret *': ('O', "virSecret", "virSecretPtr", "virSecretPtr", "virSecret"),
|
|
281
|
+
|
|
282
|
+
'virNWFilterPtr': ('O', "virNWFilter", "virNWFilterPtr", "virNWFilterPtr", "virNWFilter"),
|
|
283
|
+
'virNWFilter *': ('O', "virNWFilter", "virNWFilterPtr", "virNWFilterPtr", "virNWFilter"),
|
|
284
|
+
'const virNWFilter *': ('O', "virNWFilter", "virNWFilterPtr", "virNWFilterPtr", "virNWFilter"),
|
|
285
|
+
|
|
286
|
+
'virNWFilterBindingPtr': ('O', "virNWFilterBinding", "virNWFilterBindingPtr", "virNWFilterBindingPtr", "virNWFilterBinding"),
|
|
287
|
+
'virNWFilterBinding *': ('O', "virNWFilterBinding", "virNWFilterBindingPtr", "virNWFilterBindingPtr", "virNWFilterBinding"),
|
|
288
|
+
'const virNWFilterBinding *': ('O', "virNWFilterBinding", "virNWFilterBindingPtr", "virNWFilterBindingPtr", "virNWFilterBinding"),
|
|
289
|
+
|
|
290
|
+
'virStreamPtr': ('O', "virStream", "virStreamPtr", "virStreamPtr", "virStream"),
|
|
291
|
+
'virStream *': ('O', "virStream", "virStreamPtr", "virStreamPtr", "virStream"),
|
|
292
|
+
'const virStream *': ('O', "virStream", "virStreamPtr", "virStreamPtr", "virStream"),
|
|
293
|
+
|
|
294
|
+
'virDomainCheckpointPtr': ('O', "virDomainCheckpoint", "virDomainCheckpointPtr", "virDomainCheckpointPtr", "virDomainCheckpoint"),
|
|
295
|
+
'virDomainCheckpoint *': ('O', "virDomainCheckpoint", "virDomainCheckpointPtr", "virDomainCheckpointPtr", "virDomainCheckpoint"),
|
|
296
|
+
'const virDomainCheckpoint *': ('O', "virDomainCheckpoint", "virDomainCheckpointPtr", "virDomainCheckpointPtr", "virDomainCheckpoint"),
|
|
297
|
+
|
|
298
|
+
'virDomainSnapshotPtr': ('O', "virDomainSnapshot", "virDomainSnapshotPtr", "virDomainSnapshotPtr", "virDomainSnapshot"),
|
|
299
|
+
'virDomainSnapshot *': ('O', "virDomainSnapshot", "virDomainSnapshotPtr", "virDomainSnapshotPtr", "virDomainSnapshot"),
|
|
300
|
+
'const virDomainSnapshot *': ('O', "virDomainSnapshot", "virDomainSnapshotPtr", "virDomainSnapshotPtr", "virDomainSnapshot"),
|
|
301
|
+
} # type: Dict[str, Tuple[str, str, str, str, str]]
|
|
302
|
+
|
|
303
|
+
|
|
304
|
+
# These C types are used only in generated Python code, so don't need the
|
|
305
|
+
# C-supporting elements from py_types.
|
|
306
|
+
py_types_only = {
|
|
307
|
+
'bool': "bool",
|
|
308
|
+
'const unsigned char *': "str",
|
|
309
|
+
'const char **': "List[str]",
|
|
310
|
+
'unsigned int *': "List[int]",
|
|
311
|
+
'virErrorPtr': "_RawError",
|
|
312
|
+
'virEventAddHandleFunc': "_EventAddHandleFunc[_T]",
|
|
313
|
+
'virEventUpdateHandleFunc': "_EventUpdateHandleFunc",
|
|
314
|
+
'virEventRemoveHandleFunc': "_EventRemoveHandleFunc",
|
|
315
|
+
'virEventAddTimeoutFunc': "_EventAddTimeoutFunc[_T]",
|
|
316
|
+
'virEventUpdateTimeoutFunc': "_EventUpdateTimeoutFunc",
|
|
317
|
+
'virEventRemoveTimeoutFunc': "_EventRemoveTimeoutFunc",
|
|
318
|
+
'virBlkioParameterPtr': "_BlkioParameter",
|
|
319
|
+
'virMemoryParameterPtr': "_MemoryParameter",
|
|
320
|
+
'virSchedParameterPtr': "_SchedParameter",
|
|
321
|
+
'virTypedParameterPtr': "_TypedParameter",
|
|
322
|
+
} # type: Dict[str, str]
|
|
302
323
|
|
|
303
324
|
|
|
304
325
|
#######################################################################
|
|
@@ -712,7 +733,7 @@ def print_function_wrapper(package: str, name: str, output: IO[str], export: IO[
|
|
|
712
733
|
a_type = a_type[6:]
|
|
713
734
|
c_args += " %s %s;\n" % (a_type, a_name)
|
|
714
735
|
if a_type in py_types:
|
|
715
|
-
(f, t, n, c) = py_types[a_type]
|
|
736
|
+
(f, t, n, c, p) = py_types[a_type]
|
|
716
737
|
if f:
|
|
717
738
|
format += f
|
|
718
739
|
if t:
|
|
@@ -750,7 +771,7 @@ def print_function_wrapper(package: str, name: str, output: IO[str], export: IO[
|
|
|
750
771
|
c_call = "\n %s(%s);\n" % (name, c_call)
|
|
751
772
|
ret_convert = " Py_INCREF(Py_None);\n return Py_None;\n"
|
|
752
773
|
elif r_type in py_types:
|
|
753
|
-
(f, t, n, c) = py_types[r_type]
|
|
774
|
+
(f, t, n, c, p) = py_types[r_type]
|
|
754
775
|
c_return = " %s c_retval;\n" % (r_type)
|
|
755
776
|
if file == "python_accessor" and r_field:
|
|
756
777
|
c_call = "\n c_retval = %s->%s;\n" % (args[0][0], r_field)
|
|
@@ -858,7 +879,7 @@ def load_apis(module: str, api_xml: str):
|
|
|
858
879
|
print("Found %d functions in %s" % ((n), api_xml))
|
|
859
880
|
|
|
860
881
|
override_api_xml = "%s-override-api.xml" % module
|
|
861
|
-
py_types['pythonObject'] = ('O', "pythonObject", "pythonObject", "pythonObject")
|
|
882
|
+
py_types['pythonObject'] = ('O', "pythonObject", "pythonObject", "pythonObject", "object")
|
|
862
883
|
|
|
863
884
|
try:
|
|
864
885
|
onlyOverrides = True
|
|
@@ -890,8 +911,8 @@ def emit_c_code(module: str) -> None:
|
|
|
890
911
|
|
|
891
912
|
wrapper = open(wrapper_file, "w")
|
|
892
913
|
wrapper.write("/* Generated by generator.py */\n\n")
|
|
893
|
-
wrapper.write("#include <stdlib.h>\n")
|
|
894
914
|
wrapper.write("#include <Python.h>\n")
|
|
915
|
+
wrapper.write("#include <stdlib.h>\n")
|
|
895
916
|
wrapper.write("#include <libvirt/%s.h>\n" % (module,))
|
|
896
917
|
wrapper.write("#include \"typewrappers.h\"\n")
|
|
897
918
|
wrapper.write("#include \"%s.h\"\n\n" % (module))
|
|
@@ -1366,6 +1387,9 @@ def emit_py_code(module: str) -> None:
|
|
|
1366
1387
|
if extra:
|
|
1367
1388
|
extra.close()
|
|
1368
1389
|
|
|
1390
|
+
types_map = {name: types[-1] for name, types in py_types.items()}
|
|
1391
|
+
types_map.update(py_types_only)
|
|
1392
|
+
|
|
1369
1393
|
if "None" in function_classes:
|
|
1370
1394
|
flist = function_classes["None"]
|
|
1371
1395
|
oldfile = ""
|
|
@@ -1378,12 +1402,18 @@ def emit_py_code(module: str) -> None:
|
|
|
1378
1402
|
if n != 0:
|
|
1379
1403
|
classes.write(", ")
|
|
1380
1404
|
classes.write("%s" % a_name)
|
|
1405
|
+
if a_type in types_map:
|
|
1406
|
+
classes.write(": \"%s\"" % types_map[a_type])
|
|
1381
1407
|
if a_name == "flags" or is_optional_arg(a_info):
|
|
1382
1408
|
if is_integral_type(a_type):
|
|
1383
1409
|
classes.write("=0")
|
|
1384
1410
|
else:
|
|
1385
1411
|
classes.write("=None")
|
|
1386
|
-
|
|
1412
|
+
r_type, r_info, r_field = ret
|
|
1413
|
+
classes.write(")")
|
|
1414
|
+
if r_type in types_map:
|
|
1415
|
+
classes.write(" -> \"%s\"" % types_map[r_type])
|
|
1416
|
+
classes.write(":\n")
|
|
1387
1417
|
writeDoc(module, name, args, ' ', classes)
|
|
1388
1418
|
|
|
1389
1419
|
for a_name, a_type, a_info in args:
|
|
@@ -1395,7 +1425,6 @@ def emit_py_code(module: str) -> None:
|
|
|
1395
1425
|
" %s__o = %s%s\n" %
|
|
1396
1426
|
(a_name, a_name, classes_type[a_type][0]))
|
|
1397
1427
|
|
|
1398
|
-
r_type, r_info, r_field = ret
|
|
1399
1428
|
if r_type != "void":
|
|
1400
1429
|
classes.write(" ret = ")
|
|
1401
1430
|
else:
|
|
@@ -1477,18 +1506,18 @@ def emit_py_code(module: str) -> None:
|
|
|
1477
1506
|
if classname in ["virDomain", "virNetwork", "virInterface", "virStoragePool",
|
|
1478
1507
|
"virStorageVol", "virNodeDevice", "virSecret", "virStream",
|
|
1479
1508
|
"virNWFilter", "virNWFilterBinding"]:
|
|
1480
|
-
classes.write(" def __init__(self, conn, _obj=None):\n")
|
|
1509
|
+
classes.write(" def __init__(self, conn: \"virConnect\", _obj: object=None):\n")
|
|
1481
1510
|
classes.write(" self._conn = conn\n")
|
|
1482
1511
|
elif classname in ["virDomainCheckpoint", "virDomainSnapshot"]:
|
|
1483
|
-
classes.write(" def __init__(self, dom, _obj=None):\n")
|
|
1512
|
+
classes.write(" def __init__(self, dom: \"virDomain\", _obj: object=None):\n")
|
|
1484
1513
|
classes.write(" self._dom = dom\n")
|
|
1485
1514
|
classes.write(" self._conn = dom.connect()\n")
|
|
1486
1515
|
elif classname in ["virNetworkPort"]:
|
|
1487
|
-
classes.write(" def __init__(self, net, _obj=None) -> None:\n")
|
|
1516
|
+
classes.write(" def __init__(self, net: \"virNetwork\", _obj: object=None) -> None:\n")
|
|
1488
1517
|
classes.write(" self._net = net\n")
|
|
1489
1518
|
classes.write(" self._conn = net.connect()\n")
|
|
1490
1519
|
else:
|
|
1491
|
-
classes.write(" def __init__(self, _obj=None):\n")
|
|
1520
|
+
classes.write(" def __init__(self, _obj: object=None):\n")
|
|
1492
1521
|
|
|
1493
1522
|
classes.write(" if type(_obj).__name__ not in [\"PyCapsule\", \"PyCObject\"]:\n")
|
|
1494
1523
|
classes.write(" raise Exception(\"Expected a wrapped C Object but got %s\" % type(_obj))\n")
|
|
@@ -1515,7 +1544,7 @@ def emit_py_code(module: str) -> None:
|
|
|
1515
1544
|
classes.write(" def network(self):\n")
|
|
1516
1545
|
classes.write(" return self._net\n\n")
|
|
1517
1546
|
|
|
1518
|
-
classes.write(" def c_pointer(self):\n")
|
|
1547
|
+
classes.write(" def c_pointer(self) -> object:\n")
|
|
1519
1548
|
classes.write(" \"\"\"Get C pointer to underlying object\"\"\"\n")
|
|
1520
1549
|
classes.write(" return %s.%s_pointer(self._o)\n\n" %
|
|
1521
1550
|
(pymod, classname))
|
|
@@ -1542,12 +1571,18 @@ def emit_py_code(module: str) -> None:
|
|
|
1542
1571
|
for n, (a_name, a_type, a_info) in enumerate(args):
|
|
1543
1572
|
if n != index:
|
|
1544
1573
|
classes.write(", %s" % a_name)
|
|
1574
|
+
if a_type in types_map:
|
|
1575
|
+
classes.write(": \"%s\"" % types_map[a_type])
|
|
1545
1576
|
if a_name == "flags" or is_optional_arg(a_info):
|
|
1546
1577
|
if is_integral_type(a_type):
|
|
1547
1578
|
classes.write("=0")
|
|
1548
1579
|
else:
|
|
1549
1580
|
classes.write("=None")
|
|
1550
|
-
|
|
1581
|
+
r_type, r_info, r_field = ret
|
|
1582
|
+
classes.write(")")
|
|
1583
|
+
if r_type in types_map:
|
|
1584
|
+
classes.write(" -> \"%s\"" % types_map[r_type])
|
|
1585
|
+
classes.write(":\n")
|
|
1551
1586
|
writeDoc(module, name, args, ' ', classes)
|
|
1552
1587
|
for n, (a_name, a_type, a_info) in enumerate(args):
|
|
1553
1588
|
if a_type in classes_type:
|
|
@@ -1558,7 +1593,6 @@ def emit_py_code(module: str) -> None:
|
|
|
1558
1593
|
classes.write(" else:\n"
|
|
1559
1594
|
" %s__o = %s%s\n" %
|
|
1560
1595
|
(a_name, a_name, classes_type[a_type][0]))
|
|
1561
|
-
r_type, r_info, r_field = ret
|
|
1562
1596
|
if r_type != "void":
|
|
1563
1597
|
classes.write(" ret = ")
|
|
1564
1598
|
else:
|
|
@@ -1701,10 +1735,15 @@ def emit_py_code(module: str) -> None:
|
|
|
1701
1735
|
if n != 0:
|
|
1702
1736
|
classes.write(", ")
|
|
1703
1737
|
classes.write("%s" % a_name)
|
|
1704
|
-
|
|
1738
|
+
if a_type in types_map:
|
|
1739
|
+
classes.write(": \"%s\"" % types_map[a_type])
|
|
1740
|
+
r_type, r_info, r_field = ret
|
|
1741
|
+
classes.write(")")
|
|
1742
|
+
if r_type in types_map:
|
|
1743
|
+
classes.write(" -> \"%s\"" % types_map[r_type])
|
|
1744
|
+
classes.write(":\n")
|
|
1705
1745
|
writeDoc(module, name, args, ' ', classes)
|
|
1706
1746
|
|
|
1707
|
-
r_type, r_info, r_field = ret
|
|
1708
1747
|
if r_type != "void":
|
|
1709
1748
|
classes.write(" ret = ")
|
|
1710
1749
|
else:
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
def __exit__(self, exc_type_: Optional[Type[BaseException]], exc_value_: Optional[BaseException], traceback_: Optional[TracebackType]) -> None:
|
|
17
17
|
self.close()
|
|
18
18
|
|
|
19
|
-
def domainEventDeregister(self, cb: _DomainCB) -> None:
|
|
19
|
+
def domainEventDeregister(self, cb: _DomainCB[_T]) -> None:
|
|
20
20
|
"""Removes a Domain Event Callback. De-registering for a
|
|
21
21
|
domain callback will disable delivery of this event type """
|
|
22
22
|
try:
|
|
@@ -29,13 +29,13 @@
|
|
|
29
29
|
except AttributeError:
|
|
30
30
|
pass
|
|
31
31
|
|
|
32
|
-
def domainEventRegister(self, cb: _DomainCB, opaque: _T) -> None:
|
|
32
|
+
def domainEventRegister(self, cb: _DomainCB[_T], opaque: _T) -> None:
|
|
33
33
|
"""Adds a Domain Event Callback. Registering for a domain
|
|
34
34
|
callback will enable delivery of the events """
|
|
35
35
|
try:
|
|
36
36
|
self.domainEventCallbacks[cb] = opaque
|
|
37
37
|
except AttributeError:
|
|
38
|
-
self.domainEventCallbacks = {cb: opaque} # type: Dict[_DomainCB, _T]
|
|
38
|
+
self.domainEventCallbacks = {cb: opaque} # type: Dict[_DomainCB[_T], _T]
|
|
39
39
|
ret = libvirtmod.virConnectDomainEventRegister(self._o, self)
|
|
40
40
|
if ret == -1:
|
|
41
41
|
raise libvirtError('virConnectDomainEventRegister() failed')
|
|
@@ -572,7 +572,7 @@
|
|
|
572
572
|
if ret == -1:
|
|
573
573
|
raise libvirtError('virConnectUnregisterCloseCallback() failed')
|
|
574
574
|
|
|
575
|
-
def registerCloseCallback(self, cb: Callable, opaque: _T) -> int:
|
|
575
|
+
def registerCloseCallback(self, cb: Callable[['virConnect', int, _T], None], opaque: _T) -> int:
|
|
576
576
|
"""Adds a close event callback, providing a notification
|
|
577
577
|
when a connection fails / closes"""
|
|
578
578
|
cbData = {"cb": cb, "conn": self, "opaque": opaque}
|
|
@@ -3,11 +3,11 @@ from types import TracebackType
|
|
|
3
3
|
from typing import Any, Callable, Dict, List, Optional, overload, Tuple, Type, TypeVar, Union
|
|
4
4
|
_T = TypeVar('_T')
|
|
5
5
|
_EventCB = Callable[[int, int, int, _T], None]
|
|
6
|
-
_EventAddHandleFunc = Callable[[int, int, _EventCB, _T], int]
|
|
6
|
+
_EventAddHandleFunc = Callable[[int, int, _EventCB[_T], _T], int]
|
|
7
7
|
_EventUpdateHandleFunc = Callable[[int, int], None]
|
|
8
8
|
_EventRemoveHandleFunc = Callable[[int], int]
|
|
9
9
|
_TimerCB = Callable[[int, _T], None]
|
|
10
|
-
_EventAddTimeoutFunc = Callable[[int, _TimerCB, _T], int]
|
|
10
|
+
_EventAddTimeoutFunc = Callable[[int, _TimerCB[_T], _T], int]
|
|
11
11
|
_EventUpdateTimeoutFunc = Callable[[int, int], None]
|
|
12
12
|
_EventRemoveTimeoutFunc = Callable[[int], int]
|
|
13
13
|
_DomainCB = Callable[['virConnect', 'virDomain', int, int, _T], Optional[int]]
|
|
@@ -15,6 +15,7 @@ _BlkioParameter = Dict[str, Any]
|
|
|
15
15
|
_MemoryParameter = Dict[str, Any]
|
|
16
16
|
_SchedParameter = Dict[str, Any]
|
|
17
17
|
_TypedParameter = Dict[str, Any]
|
|
18
|
+
_RawError = Tuple[int, int, str, int, str, Optional[str], Optional[str], int, int]
|
|
18
19
|
|
|
19
20
|
|
|
20
21
|
# The root of all libvirt errors.
|
|
@@ -23,7 +24,7 @@ class libvirtError(Exception):
|
|
|
23
24
|
|
|
24
25
|
# Never call virConnGetLastError().
|
|
25
26
|
# virGetLastError() is now thread local
|
|
26
|
-
err = libvirtmod.virGetLastError() # type: Optional[
|
|
27
|
+
err = libvirtmod.virGetLastError() # type: Optional[_RawError]
|
|
27
28
|
if err is None:
|
|
28
29
|
msg = defmsg
|
|
29
30
|
else:
|
|
@@ -82,7 +83,7 @@ class libvirtError(Exception):
|
|
|
82
83
|
#
|
|
83
84
|
# register the libvirt global error handler
|
|
84
85
|
#
|
|
85
|
-
def registerErrorHandler(f: Callable[[_T,
|
|
86
|
+
def registerErrorHandler(f: Callable[[_T, _RawError], None], ctx: _T) -> int:
|
|
86
87
|
"""Register a Python function for error reporting.
|
|
87
88
|
The function is called back as f(ctx, error), with error
|
|
88
89
|
being a list of information about the error being raised.
|
|
@@ -153,10 +154,10 @@ def getVersion(name: Optional[str] = None) -> int:
|
|
|
153
154
|
# Invoke an EventHandle callback
|
|
154
155
|
#
|
|
155
156
|
@overload
|
|
156
|
-
def _eventInvokeHandleCallback(watch: int, fd: int, event: int, opaque: Tuple[_EventCB, _T], opaquecompat: None = None) -> None: ... # noqa E704
|
|
157
|
+
def _eventInvokeHandleCallback(watch: int, fd: int, event: int, opaque: Tuple[_EventCB[_T], _T], opaquecompat: None = None) -> None: ... # noqa E704
|
|
157
158
|
@overload # noqa F811
|
|
158
|
-
def _eventInvokeHandleCallback(watch: int, fd: int, event: int, opaque: _EventCB, opaquecompat: _T = None) -> None: ... # noqa E704
|
|
159
|
-
def _eventInvokeHandleCallback(watch: int, fd: int, event: int, opaque: Union[Tuple[_EventCB, _T], _EventCB], opaquecompat: Optional[_T] = None) -> None: # noqa F811
|
|
159
|
+
def _eventInvokeHandleCallback(watch: int, fd: int, event: int, opaque: _EventCB[_T], opaquecompat: _T = None) -> None: ... # noqa E704
|
|
160
|
+
def _eventInvokeHandleCallback(watch: int, fd: int, event: int, opaque: Union[Tuple[_EventCB[_T], _T], _EventCB[_T]], opaquecompat: Optional[_T] = None) -> None: # noqa F811
|
|
160
161
|
"""
|
|
161
162
|
Invoke the Event Impl Handle Callback in C
|
|
162
163
|
"""
|
|
@@ -178,7 +179,7 @@ def _eventInvokeHandleCallback(watch: int, fd: int, event: int, opaque: Union[Tu
|
|
|
178
179
|
#
|
|
179
180
|
# Invoke an EventTimeout callback
|
|
180
181
|
#
|
|
181
|
-
def _eventInvokeTimeoutCallback(timer: int, opaque: Union[Tuple[_TimerCB, _T], _TimerCB], opaquecompat: Optional[_T] = None) -> None:
|
|
182
|
+
def _eventInvokeTimeoutCallback(timer: int, opaque: Union[Tuple[_TimerCB[_T], _T], _TimerCB[_T]], opaquecompat: Optional[_T] = None) -> None:
|
|
182
183
|
"""
|
|
183
184
|
Invoke the Event Impl Timeout Callback in C
|
|
184
185
|
"""
|
|
@@ -213,7 +214,7 @@ def _dispatchEventTimeoutCallback(timer: int, cbData: Dict[str, Any]) -> int:
|
|
|
213
214
|
return 0
|
|
214
215
|
|
|
215
216
|
|
|
216
|
-
def virEventAddHandle(fd: int, events: int, cb: _EventCB, opaque: _T) -> int:
|
|
217
|
+
def virEventAddHandle(fd: int, events: int, cb: _EventCB[_T], opaque: _T) -> int:
|
|
217
218
|
"""
|
|
218
219
|
register a callback for monitoring file handle events
|
|
219
220
|
|
|
@@ -235,7 +236,7 @@ def virEventAddHandle(fd: int, events: int, cb: _EventCB, opaque: _T) -> int:
|
|
|
235
236
|
return ret
|
|
236
237
|
|
|
237
238
|
|
|
238
|
-
def virEventAddTimeout(timeout: int, cb: _TimerCB, opaque: _T) -> int:
|
|
239
|
+
def virEventAddTimeout(timeout: int, cb: _TimerCB[_T], opaque: _T) -> int:
|
|
239
240
|
"""
|
|
240
241
|
register a callback for a timer event
|
|
241
242
|
|
|
@@ -418,7 +418,7 @@ class virEventAsyncIOImpl(object):
|
|
|
418
418
|
callback.close()
|
|
419
419
|
return 0
|
|
420
420
|
|
|
421
|
-
def _add_timeout(self, timeout: int, cb: libvirt._TimerCB, opaque: _T) -> int:
|
|
421
|
+
def _add_timeout(self, timeout: int, cb: libvirt._TimerCB[_T], opaque: _T) -> int:
|
|
422
422
|
'''Register a callback for a timer event
|
|
423
423
|
|
|
424
424
|
:param int timeout: the timeout to monitor
|
|
@@ -12,7 +12,7 @@ _remove_timeout_impl = None
|
|
|
12
12
|
|
|
13
13
|
_registered = False
|
|
14
14
|
|
|
15
|
-
def _add_handle(fd: int, event: int, cb: libvirt._EventCB, opaque: libvirt._T) -> int:
|
|
15
|
+
def _add_handle(fd: int, event: int, cb: libvirt._EventCB[libvirt._T], opaque: libvirt._T) -> int:
|
|
16
16
|
global _add_handle_impl
|
|
17
17
|
assert _add_handle_impl != None
|
|
18
18
|
return _add_handle_impl(fd, event, cb, opaque)
|
|
@@ -27,7 +27,7 @@ def _remove_handle(watch: int) -> int:
|
|
|
27
27
|
assert _remove_handle_impl != None
|
|
28
28
|
return _remove_handle_impl(watch)
|
|
29
29
|
|
|
30
|
-
def _add_timeout(timeout: int, cb: libvirt._TimerCB, opaque: libvirt._T) -> int:
|
|
30
|
+
def _add_timeout(timeout: int, cb: libvirt._TimerCB[libvirt._T], opaque: libvirt._T) -> int:
|
|
31
31
|
global _add_timeout_impl
|
|
32
32
|
assert _add_timeout_impl != None
|
|
33
33
|
return _add_timeout_impl(timeout, cb, opaque)
|
libvirt_python-12.1.0/VERSION
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
12.1.0
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -14,8 +14,8 @@
|
|
|
14
14
|
which has over 180 autoconf-style HAVE_* definitions. Shame on them. */
|
|
15
15
|
#undef HAVE_PTHREAD_H
|
|
16
16
|
|
|
17
|
-
#include <stdio.h>
|
|
18
17
|
#include <Python.h>
|
|
18
|
+
#include <stdio.h>
|
|
19
19
|
#include <libvirt/libvirt-qemu.h>
|
|
20
20
|
#include <libvirt/virterror.h>
|
|
21
21
|
#include "typewrappers.h"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|