aboutsummaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2023-07-05 12:40:46 +0200
committerPaolo Bonzini <pbonzini@redhat.com>2023-07-07 12:49:22 +0200
commit3d7b89748afe9791a8568dfdb7d51fb2029bf8c2 (patch)
treec590f5a67be310b169eaabf8d6bd63e0af1031ae /python
parent97c81ef4b8e203d9620fd46e7eb77004563e3675 (diff)
downloadqemu-3d7b89748afe9791a8568dfdb7d51fb2029bf8c2.zip
qemu-3d7b89748afe9791a8568dfdb7d51fb2029bf8c2.tar.gz
qemu-3d7b89748afe9791a8568dfdb7d51fb2029bf8c2.tar.bz2
python: bump minimum requirements so they are compatible with 3.12
There are many Python 3.12 issues right now, but a particularly problematic one when debugging them is that one cannot even use minreqs.txt in a Python 3.12 virtual environment to test with locked package versions. Bump the mypy and wrapt versions to fix this, while remaining within the realm of versions compatible with Python 3.7. This requires a workaround for a mypy false positive qemu/qmp/qmp_tui.py:350: error: Non-overlapping equality check (left operand type: "Literal[Runstate.DISCONNECTING]", right operand type: "Literal[Runstate.IDLE]") [comparison-overlap] where mypy does not realize that self.disconnect() could change the value of self.runstate. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'python')
-rw-r--r--python/qemu/qmp/qmp_tui.py5
-rw-r--r--python/setup.cfg2
-rw-r--r--python/tests/minreqs.txt9
3 files changed, 9 insertions, 7 deletions
diff --git a/python/qemu/qmp/qmp_tui.py b/python/qemu/qmp/qmp_tui.py
index 8369144..2d9ebbd 100644
--- a/python/qemu/qmp/qmp_tui.py
+++ b/python/qemu/qmp/qmp_tui.py
@@ -346,7 +346,10 @@ class App(QMPClient):
self._set_status('[Disconnected]')
await self.disconnect()
# check if a retry is needed
- if self.runstate == Runstate.IDLE:
+ # mypy 1.4.0 doesn't believe runstate can change after
+ # disconnect(), hence the cast.
+ state = cast(Runstate, self.runstate)
+ if state == Runstate.IDLE:
continue
await self.runstate_changed()
diff --git a/python/setup.cfg b/python/setup.cfg
index 42f0b0b..5d7e95f 100644
--- a/python/setup.cfg
+++ b/python/setup.cfg
@@ -39,7 +39,7 @@ devel =
flake8 >= 5.0.4
fusepy >= 2.0.4
isort >= 5.1.2
- mypy >= 0.780
+ mypy >= 1.4.0
pylint >= 2.17.3
tox >= 3.18.0
urwid >= 2.1.2
diff --git a/python/tests/minreqs.txt b/python/tests/minreqs.txt
index 1ce72cef..979461b 100644
--- a/python/tests/minreqs.txt
+++ b/python/tests/minreqs.txt
@@ -28,7 +28,7 @@ avocado-framework==90.0
# Linters
flake8==5.0.4
isort==5.1.2
-mypy==0.780
+mypy==1.4.0
pylint==2.17.3
# Transitive flake8 dependencies
@@ -37,12 +37,11 @@ pycodestyle==2.9.1
pyflakes==2.5.0
# Transitive mypy dependencies
-mypy-extensions==0.4.3
-typed-ast==1.4.0
-typing-extensions==4.5.0
+mypy-extensions==1.0.0
+typing-extensions==4.7.1
# Transitive pylint dependencies
astroid==2.15.4
lazy-object-proxy==1.4.0
toml==0.10.0
-wrapt==1.12.1
+wrapt==1.14.0