[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 01/37] python: Require 3.6+
From: |
Markus Armbruster |
Subject: |
Re: [PATCH 01/37] python: Require 3.6+ |
Date: |
Wed, 16 Sep 2020 10:42:08 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) |
John Snow <jsnow@redhat.com> writes:
> Python 3.5 is now EOL. Python 3.6 brings with it several nice things:
>
> - Literal string interpolation (PEP 498)
> - Syntax for variable annotations (PEP 526)
> - Preserving keyword argument order (PEP 468) *
>
> PEP 526 in particular will allow us to convert the QAPI module to the
> statically typed subset of the Python language. These static type hints
> improve the interactive editing experience in IDEs and help make
> refactoring and adding new features faster, easier and safer.
>
> *Note: **kwargs is now guaranteed to preserve keyword ordering, but dict
> itself is still allowed to have an arbitrary order based on
> implementation. It is not until Python 3.7 that the dict type guarantees
> insertion order.
>
> Signed-off-by: John Snow <jsnow@redhat.com>
> ---
> docs/conf.py | 4 ++--
> configure | 6 +++---
> .readthedocs.yml | 2 +-
> .travis.yml | 8 --------
> tests/qemu-iotests/iotests.py | 2 --
> 5 files changed, 6 insertions(+), 16 deletions(-)
>
> diff --git a/docs/conf.py b/docs/conf.py
> index 0dbd90dc11..8aeac40124 100644
> --- a/docs/conf.py
> +++ b/docs/conf.py
> @@ -36,9 +36,9 @@
> # In newer versions of Sphinx this will display nicely; in older versions
> # Sphinx will also produce a Python backtrace but at least the information
> # gets printed...
> -if sys.version_info < (3,5):
> +if sys.version_info < (3,6):
> raise ConfigError(
> - "QEMU requires a Sphinx that uses Python 3.5 or better\n")
> + "QEMU requires a Sphinx that uses Python 3.6 or better\n")
>
> # The per-manual conf.py will set qemu_docdir for a single-manual build;
> # otherwise set it here if this is an entire-manual-set build.
> diff --git a/configure b/configure
> index ce27eafb0a..33292500e7 100755
> --- a/configure
> +++ b/configure
> @@ -913,7 +913,7 @@ fi
>
> : ${make=${MAKE-make}}
>
> -# We prefer python 3.x. A bare 'python' is traditionally
> +# We prefer python 3.6+. A bare 'python' is traditionally
We require
> # python 2.x, but some distros have it as python 3.x, so
> # we check that too
> python=
> @@ -1961,8 +1961,8 @@ fi
>
> # Note that if the Python conditional here evaluates True we will exit
> # with status 1 which is a shell 'false' value.
> -if ! $python -c 'import sys; sys.exit(sys.version_info < (3,5))'; then
> - error_exit "Cannot use '$python', Python >= 3.5 is required." \
> +if ! $python -c 'import sys; sys.exit(sys.version_info < (3,6))'; then
> + error_exit "Cannot use '$python', Python >= 3.6 is required." \
> "Use --python=/path/to/python to specify a supported Python."
> fi
>
> diff --git a/.readthedocs.yml b/.readthedocs.yml
> index 8355dbc634..7fb7b8dd61 100644
> --- a/.readthedocs.yml
> +++ b/.readthedocs.yml
> @@ -17,4 +17,4 @@ formats: all
> # we require for other Python in our codebase (our conf.py
> # enforces this, and some code needs it.)
> python:
> - version: 3.5
> + version: 3.6
> diff --git a/.travis.yml b/.travis.yml
> index 65341634d0..0dca15a5e8 100644
> --- a/.travis.yml
> +++ b/.travis.yml
> @@ -267,14 +267,6 @@ jobs:
>
>
> # Python builds
> - - name: "GCC Python 3.5 (x86_64-softmmu)"
> - env:
> - - CONFIG="--target-list=x86_64-softmmu"
> - - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default"
> - language: python
> - python: 3.5
> -
> -
> - name: "GCC Python 3.6 (x86_64-softmmu)"
> env:
> - CONFIG="--target-list=x86_64-softmmu"
> diff --git a/tests/qemu-iotests/iotests.py b/tests/qemu-iotests/iotests.py
> index 91e4a57126..f48460480a 100644
> --- a/tests/qemu-iotests/iotests.py
> +++ b/tests/qemu-iotests/iotests.py
> @@ -40,8 +40,6 @@
> from qemu import qtest
> from qemu.qmp import QMPMessage
>
> -assert sys.version_info >= (3, 6)
> -
> # Use this logger for logging messages directly from the iotests module
> logger = logging.getLogger('qemu.iotests')
> logger.addHandler(logging.NullHandler())