aboutsummaryrefslogtreecommitdiff
path: root/python/scripts
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2023-05-03 12:48:02 +0200
committerPaolo Bonzini <pbonzini@redhat.com>2023-09-07 13:32:37 +0200
commitca056f4499c259c0de68ed7cefad7ee7b62bfa43 (patch)
tree9597db33c0556b3c48fa33d0c65316298e872be9 /python/scripts
parenta5e9fbf1dfd5b3f901f987755c89f1dc636c3747 (diff)
downloadqemu-ca056f4499c259c0de68ed7cefad7ee7b62bfa43.zip
qemu-ca056f4499c259c0de68ed7cefad7ee7b62bfa43.tar.gz
qemu-ca056f4499c259c0de68ed7cefad7ee7b62bfa43.tar.bz2
Python: Drop support for Python 3.7
Debian 10 is not anymore a supported distro, since Debian 12 was released on June 10, 2023. Our supported build platforms as of today all support at least 3.8 (and all of them except for Ubuntu 20.04 support 3.9): openSUSE Leap 15.5: 3.6.15 (3.11.2) CentOS Stream 8: 3.6.8 (3.8.13, 3.9.16, 3.11.4) CentOS Stream 9: 3.9.17 (3.11.4) Fedora 37: 3.11.4 Fedora 38: 3.11.4 Debian 11: 3.9.2 Debian 12: 3.11.2 Alpine 3.14, 3.15: 3.9.16 Alpine 3.16, 3.17: 3.10.10 Ubuntu 20.04 LTS: 3.8.10 Ubuntu 22.04 LTS: 3.10.12 NetBSD 9.3: 3.9.13* FreeBSD 12.4: 3.9.16 FreeBSD 13.1: 3.9.18 OpenBSD 7.2: 3.9.17 Note: NetBSD does not appear to have a default meta-package, but offers several options, the lowest of which is 3.7.15. However, "python39" appears to be a pre-requisite to one of the other packages we request in tests/vm/netbsd. Since it is safe under our supported platform policy, bump our minimum supported version of Python to 3.8. The two most interesting features to have by default include: - the importlib.metadata module, whose lack is responsible for over 100 lines of code in mkvenv.py - improvements to asyncio, for example asyncio.CancelledError inherits from BaseException rather than Exception In addition, code can now use the assignment operator ':=' Because mypy now learns about importlib.metadata, a small change to mkvenv.py is needed to pass type checking. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'python/scripts')
-rw-r--r--python/scripts/mkvenv.py5
1 files changed, 4 insertions, 1 deletions
diff --git a/python/scripts/mkvenv.py b/python/scripts/mkvenv.py
index 4f2349f..57a2494 100644
--- a/python/scripts/mkvenv.py
+++ b/python/scripts/mkvenv.py
@@ -435,6 +435,7 @@ def _gen_importlib(packages: Sequence[str]) -> Iterator[str]:
try:
# First preference: Python 3.8+ stdlib
from importlib.metadata import ( # type: ignore
+ EntryPoint,
PackageNotFoundError,
distribution,
)
@@ -442,6 +443,7 @@ def _gen_importlib(packages: Sequence[str]) -> Iterator[str]:
logger.debug("%s", str(exc))
# Second preference: Commonly available PyPI backport
from importlib_metadata import ( # type: ignore
+ EntryPoint,
PackageNotFoundError,
distribution,
)
@@ -449,7 +451,8 @@ def _gen_importlib(packages: Sequence[str]) -> Iterator[str]:
def _generator() -> Iterator[str]:
for package in packages:
try:
- entry_points = distribution(package).entry_points
+ entry_points: Iterator[EntryPoint] = \
+ iter(distribution(package).entry_points)
except PackageNotFoundError:
continue