[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 3/4] iotests: Change imports for Python 3.13
From: |
Nir Soffer |
Subject: |
Re: [PATCH 3/4] iotests: Change imports for Python 3.13 |
Date: |
Tue, 2 Jul 2024 14:52:08 +0300 |
On Thu, Jun 27, 2024 at 2:23 AM John Snow <jsnow@redhat.com> wrote:
>
> Python 3.13 isn't out yet, but it's in beta and Fedora is ramping up to
> make it the default system interpreter for Fedora 41.
>
> They moved our cheese for where ContextManager lives; add a conditional
> to locate it while we support both pre-3.9 and 3.13+.
>
> Signed-off-by: John Snow <jsnow@redhat.com>
> ---
> tests/qemu-iotests/testenv.py | 7 ++++++-
> tests/qemu-iotests/testrunner.py | 9 ++++++---
> 2 files changed, 12 insertions(+), 4 deletions(-)
>
> diff --git a/tests/qemu-iotests/testenv.py b/tests/qemu-iotests/testenv.py
> index 588f30a4f14..96d69e56963 100644
> --- a/tests/qemu-iotests/testenv.py
> +++ b/tests/qemu-iotests/testenv.py
> @@ -25,7 +25,12 @@
> import random
> import subprocess
> import glob
> -from typing import List, Dict, Any, Optional, ContextManager
> +from typing import List, Dict, Any, Optional
> +
> +if sys.version_info >= (3, 9):
> + from contextlib import AbstractContextManager as ContextManager
> +else:
> + from typing import ContextManager
It can be cleaner to add a compat module hiding the details so the
entire project
can have a single instance of this. Other code will just use:
from compat import ContextManager
>
> DEF_GDB_OPTIONS = 'localhost:12345'
>
> diff --git a/tests/qemu-iotests/testrunner.py
> b/tests/qemu-iotests/testrunner.py
> index 7b322272e92..2e236c8fa39 100644
> --- a/tests/qemu-iotests/testrunner.py
> +++ b/tests/qemu-iotests/testrunner.py
> @@ -27,11 +27,14 @@
> import shutil
> import sys
> from multiprocessing import Pool
> -from typing import List, Optional, Any, Sequence, Dict, \
> - ContextManager
> -
> +from typing import List, Optional, Any, Sequence, Dict
> from testenv import TestEnv
>
> +if sys.version_info >= (3, 9):
> + from contextlib import AbstractContextManager as ContextManager
> +else:
> + from typing import ContextManager
> +
>
> def silent_unlink(path: Path) -> None:
> try:
> --
> 2.45.0
>
>