John Snow <js...@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 <js...@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())