qemu/scripts/qapi
Paolo Bonzini ca056f4499 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>
2023-09-07 13:32:37 +02:00
..
__init__.py qapi-gen: New common driver for code and doc generators 2018-03-02 13:14:09 -06:00
.flake8 qapi: Update flake8 config 2023-02-23 12:49:39 +01:00
.isort.cfg qapi: enforce import order/styling with isort 2020-10-10 11:37:47 +02:00
commands.py qapi: Require boxed for conditional command and event arguments 2023-04-24 15:21:39 +02:00
common.py qapi: Avoid generating C identifier 'linux' 2022-07-13 12:19:18 +03:00
error.py qapi/error: Add type hints 2021-04-30 12:59:54 +02:00
events.py qapi: Start to elide redundant has_FOO in generated C 2022-12-13 18:31:37 +01:00
expr.py qapi: Fix to reject 'data': 'mumble' in struct 2023-04-24 15:21:39 +02:00
gen.py scripts/qapi: document the tool that generated the file 2023-06-01 11:05:05 -04:00
introspect.py qapi: Add feature flags to enum members 2021-10-27 17:18:55 +02:00
main.py qapi: Fix error message format regression 2023-04-24 15:09:10 +02:00
mypy.ini Python: Drop support for Python 3.7 2023-09-07 13:32:37 +02:00
parser.py qapi: Improve error message for description following section 2023-05-22 10:03:26 +02:00
pylintrc qapi: update pylint configuration 2023-02-23 12:49:39 +01:00
schema.py qapi: allow unions to contain further unions 2023-04-26 07:52:45 +02:00
source.py qapi/source: Remove line number from QAPISourceInfo initializer 2021-05-20 11:28:27 +02:00
types.py qapi: Start to elide redundant has_FOO in generated C 2022-12-13 18:31:37 +01:00
visit.py qapi: Fix code generated for optional conditional struct member 2023-04-24 15:21:39 +02:00