From nobody Thu Apr 3 10:10:00 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1740643743; cv=none; d=zohomail.com; s=zohoarc; b=VQsfueuhAQ6vTVVyDeO1uP91KlE2U7IQkpAnuUoBPBEy7e0VKF5YTe0Fyy0RWmqE41hakAQCI1DE6tnACAEezsbGskrhrMi2tHXWhVxXTNz7yb7X7Uwc7fSwugBA4E4YRBEuLnQ4idKqyWfVpeTNNCW0ex7STAtE0K6KznlJc/I= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1740643743; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=LiUZZgQ9toEnOPd6UumwpN6QdODXEOS9nTUgnrw7vII=; b=LQ+POJBc1piJtkmAlRIJQxDi+p1YkYQ8nAaAop2FpawNiuG+VWhVkAcyFbMtOi2VuUehF434+O17DdS0rpSa2rXGdZafrtlXBdHaIhbYgqHHBJX4D+rl9eKMnpYkv2joT7MghXnkKRYHY9cYu5XgSc3lkurI/X1YvbsXO7eillM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1740643743617858.8105524543946; Thu, 27 Feb 2025 00:09:03 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tnYwQ-00008D-Fb; Thu, 27 Feb 2025 03:08:24 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tnYwF-0008MM-4c for qemu-devel@nongnu.org; Thu, 27 Feb 2025 03:08:13 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tnYwB-0001fg-Te for qemu-devel@nongnu.org; Thu, 27 Feb 2025 03:08:10 -0500 Received: from mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-376-iTPj08g_OPGWUZERDxowOQ-1; Thu, 27 Feb 2025 03:08:02 -0500 Received: from mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 4DB07180087A; Thu, 27 Feb 2025 08:08:00 +0000 (UTC) Received: from blackfin.pond.sub.org (unknown [10.45.242.9]) by mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id ED170300018D; Thu, 27 Feb 2025 08:07:59 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 7411B21E65DD; Thu, 27 Feb 2025 09:07:57 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1740643686; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=LiUZZgQ9toEnOPd6UumwpN6QdODXEOS9nTUgnrw7vII=; b=i726IZ6yx8VdNPBUbklr9vmbPFVPiRzuGmoZ9JgP8Wg/klCVSd/GkI2M3YLe1g4GIHULvE sUTi0GgzgQqsG632ayLSq5SkWvLc/T/85KaPvKIEEhQHr+lmGZ8B6V+2v0lqTaq9PvgtFD dSzkVqv4dZUoWZlWAL56axbkWVfbZEA= X-MC-Unique: iTPj08g_OPGWUZERDxowOQ-1 X-Mimecast-MFC-AGG-ID: iTPj08g_OPGWUZERDxowOQ_1740643681 From: Markus Armbruster To: qemu-devel@nongnu.org Cc: michael.roth@amd.com, jsnow@redhat.com Subject: [PATCH 1/3] docs/about/build-platforms: Correct minimum supported Python version Date: Thu, 27 Feb 2025 09:07:55 +0100 Message-ID: <20250227080757.3978333-2-armbru@redhat.com> In-Reply-To: <20250227080757.3978333-1-armbru@redhat.com> References: <20250227080757.3978333-1-armbru@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.4 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=armbru@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.44, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1740643745095019000 Content-Type: text/plain; charset="utf-8" Fixes: ca056f4499c2 (Python: Drop support for Python 3.7) Signed-off-by: Markus Armbruster Reviewed-by: Daniel P. Berrang=C3=A9 --- docs/about/build-platforms.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/about/build-platforms.rst b/docs/about/build-platforms.rst index 482b09819c..1552b1a704 100644 --- a/docs/about/build-platforms.rst +++ b/docs/about/build-platforms.rst @@ -101,7 +101,7 @@ Python runtime option of the ``configure`` script to point QEMU to a supported version of the Python runtime. =20 - As of QEMU |version|, the minimum supported version of Python is 3.7. + As of QEMU |version|, the minimum supported version of Python is 3.8. =20 Python build dependencies Some of QEMU's build dependencies are written in Python. Usually these --=20 2.48.1 From nobody Thu Apr 3 10:10:00 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1740643743; cv=none; d=zohomail.com; s=zohoarc; b=CFYOXFm0P5DJRRpLltSHDW+1pIeKzVjlo2SJIoJF6QNrZ+6jOSWI8X7Guopv/w8be1SIrBg3VGMhKk6OltQIwMbU24KmPO9bBs2K1RicV+uZgwT+W+cvwmu9hx1mdapfrt5fPlAYsyR2ISXttKlmld+6iCSrrudjyXGJKQUmDBc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1740643743; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=XMB+4JXdPnIxG6SEB8UqGtM+jKjZl1DxQ/CtUfn5P70=; b=DUhwNhjJAV+z9wiX5gUCDk4BEMbr2OjlvOnP0c4ffHQDudFyHQjaiMyzxCJjJ5qq9m43yK0QMAfigWrTznUgGNzHon7mVfv6PHsvUXZIJ9tM1H2sYD9uBlwY4PYIJJFpAFer1kWS6wWxIvrTr/tHhk+EcegrU7eg1VbYUt9xqtY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1740643743552791.5101388795651; Thu, 27 Feb 2025 00:09:03 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tnYwS-00008O-6q; Thu, 27 Feb 2025 03:08:24 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tnYwD-0008L8-U1 for qemu-devel@nongnu.org; Thu, 27 Feb 2025 03:08:13 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tnYwB-0001fY-D1 for qemu-devel@nongnu.org; Thu, 27 Feb 2025 03:08:09 -0500 Received: from mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-537-5MC4BHYyNESAVp8khNlVow-1; Thu, 27 Feb 2025 03:08:01 -0500 Received: from mx-prod-int-04.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-04.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.40]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 0FDB51954B1C; Thu, 27 Feb 2025 08:08:01 +0000 (UTC) Received: from blackfin.pond.sub.org (unknown [10.45.242.9]) by mx-prod-int-04.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 11A8919560AB; Thu, 27 Feb 2025 08:08:00 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 78B5521E65E0; Thu, 27 Feb 2025 09:07:57 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1740643685; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=XMB+4JXdPnIxG6SEB8UqGtM+jKjZl1DxQ/CtUfn5P70=; b=JydLpOmaTISPsF29abG2Tcza8vEM518CRyIdoyPEXhj5m1KJdD/R8EfV+ZLkZzPPB+2wza SMYGD9SKQ8b5MT4fxDylYjWEmGW+ueUUhvvJEEXPYwYkvPG6Xs9exvPwCII7Kyi6FpFFQS t92rzQG75dg3h6vnI/bnHhh4wWC3Yng= X-MC-Unique: 5MC4BHYyNESAVp8khNlVow-1 X-Mimecast-MFC-AGG-ID: 5MC4BHYyNESAVp8khNlVow_1740643681 From: Markus Armbruster To: qemu-devel@nongnu.org Cc: michael.roth@amd.com, jsnow@redhat.com Subject: [PATCH 2/3] qapi: Eliminate OrderedDict Date: Thu, 27 Feb 2025 09:07:56 +0100 Message-ID: <20250227080757.3978333-3-armbru@redhat.com> In-Reply-To: <20250227080757.3978333-1-armbru@redhat.com> References: <20250227080757.3978333-1-armbru@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.0 on 10.30.177.40 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=armbru@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.44, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1740643745185019100 Content-Type: text/plain; charset="utf-8" We use OrderedDict to ensure dictionary order is insertion order. Plain dict does that since Python 3.6, but it wasn't guaranteed until 3.7. Since we have 3.7 now, replace OrderedDict by dict. Signed-off-by: Markus Armbruster Reviewed-by: Daniel P. Berrang=C3=A9 --- scripts/qapi/parser.py | 5 ++--- scripts/qapi/schema.py | 11 +++++------ tests/qapi-schema/test-qapi.py | 11 +---------- 3 files changed, 8 insertions(+), 19 deletions(-) diff --git a/scripts/qapi/parser.py b/scripts/qapi/parser.py index adc85b5b39..64f0bb824a 100644 --- a/scripts/qapi/parser.py +++ b/scripts/qapi/parser.py @@ -14,7 +14,6 @@ # This work is licensed under the terms of the GNU GPL, version 2. # See the COPYING file in the top-level directory. =20 -from collections import OrderedDict import os import re from typing import ( @@ -154,7 +153,7 @@ def _parse(self) -> None: "value of 'include' must be a strin= g") incl_fname =3D os.path.join(os.path.dirname(self._fname), include) - self._add_expr(OrderedDict({'include': incl_fname}), info) + self._add_expr({'include': incl_fname}, info) exprs_include =3D self._include(include, info, incl_fname, self._included) if exprs_include: @@ -355,7 +354,7 @@ def accept(self, skip_comment: bool =3D True) -> None: raise QAPIParseError(self, "stray '%s'" % match.group(0)) =20 def get_members(self) -> Dict[str, object]: - expr: Dict[str, object] =3D OrderedDict() + expr: Dict[str, object] =3D {} if self.tok =3D=3D '}': self.accept() return expr diff --git a/scripts/qapi/schema.py b/scripts/qapi/schema.py index 7f70969c09..cbe3b5aa91 100644 --- a/scripts/qapi/schema.py +++ b/scripts/qapi/schema.py @@ -19,7 +19,6 @@ from __future__ import annotations =20 from abc import ABC, abstractmethod -from collections import OrderedDict import os import re from typing import ( @@ -557,7 +556,7 @@ def check(self, schema: QAPISchema) -> None: super().check(schema) assert self._checked and not self._check_complete =20 - seen =3D OrderedDict() + seen =3D {} if self._base_name: self.base =3D schema.resolve_type(self._base_name, self.info, "'base'") @@ -1141,10 +1140,10 @@ def __init__(self, fname: str): self.docs =3D parser.docs self._entity_list: List[QAPISchemaEntity] =3D [] self._entity_dict: Dict[str, QAPISchemaDefinition] =3D {} - self._module_dict: Dict[str, QAPISchemaModule] =3D OrderedDict() + self._module_dict: Dict[str, QAPISchemaModule] =3D {} # NB, values in the dict will identify the first encountered # usage of a named feature only - self._feature_dict: Dict[str, QAPISchemaFeature] =3D OrderedDict() + self._feature_dict: Dict[str, QAPISchemaFeature] =3D {} =20 # All schemas get the names defined in the QapiSpecialFeature enum. # Rely on dict iteration order matching insertion order so that @@ -1454,7 +1453,7 @@ def _def_command(self, expr: QAPIExpression) -> None: ifcond =3D QAPISchemaIfCond(expr.get('if')) info =3D expr.info features =3D self._make_features(expr.get('features'), info) - if isinstance(data, OrderedDict): + if isinstance(data, dict): data =3D self._make_implicit_object_type( name, info, ifcond, 'arg', self._make_members(data, info)) @@ -1473,7 +1472,7 @@ def _def_event(self, expr: QAPIExpression) -> None: ifcond =3D QAPISchemaIfCond(expr.get('if')) info =3D expr.info features =3D self._make_features(expr.get('features'), info) - if isinstance(data, OrderedDict): + if isinstance(data, dict): data =3D self._make_implicit_object_type( name, info, ifcond, 'arg', self._make_members(data, info)) diff --git a/tests/qapi-schema/test-qapi.py b/tests/qapi-schema/test-qapi.py index 7e3f9f4aa1..8fe951c880 100755 --- a/tests/qapi-schema/test-qapi.py +++ b/tests/qapi-schema/test-qapi.py @@ -96,17 +96,8 @@ def _print_variants(variants): =20 @staticmethod def _print_if(ifcond, indent=3D4): - # TODO Drop this hack after replacing OrderedDict by plain - # dict (requires Python 3.7) - def _massage(subcond): - if isinstance(subcond, str): - return subcond - if isinstance(subcond, list): - return [_massage(val) for val in subcond] - return {key: _massage(val) for key, val in subcond.items()} - if ifcond.is_present(): - print('%sif %s' % (' ' * indent, _massage(ifcond.ifcond))) + print('%sif %s' % (' ' * indent, ifcond.ifcond)) =20 @classmethod def _print_features(cls, features, indent=3D4): --=20 2.48.1 From nobody Thu Apr 3 10:10:00 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1740643770; cv=none; d=zohomail.com; s=zohoarc; b=mE+gmKczr8x9WygV71FDPuKqeR84aZi6YGXKEuu+/6QyxZoLk8E4Cs30KOU4cZqLRQ05U3pbamIeng3BlqJCG0KVAgnhxwK6JPAEXs6b7lh/CCgSrtE2CRIDJjpzQbGYUYMUm83tbfjRTQwfmV6fjetyfoFWMu9OlWWmx+d2/xg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1740643770; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=Ghg1+E0JdhJabwSgZMyZsM5RpsyBKY2hMAEJeHgs3yg=; b=jKJCN6ovbnw9XDKhf2NyUyA+IqTBwNuiZ9Ok1kp0534CefYpugoVy6hx5cHXQSmqzbc9Tf8EjHE03uSZouoVDghNLGQXL/bIXB/gOlvu9LaRVQKJvTekdQpga3z48KSOGnIaR1oppH65d6AmVbajDfz/uYP9fq3KZXllpu0Ex3E= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1740643770552123.99002341059918; Thu, 27 Feb 2025 00:09:30 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tnYwM-0008Vk-8u; Thu, 27 Feb 2025 03:08:18 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tnYwD-0008L7-U6 for qemu-devel@nongnu.org; Thu, 27 Feb 2025 03:08:13 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tnYwB-0001fZ-C9 for qemu-devel@nongnu.org; Thu, 27 Feb 2025 03:08:09 -0500 Received: from mx-prod-mc-04.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-652-8OvbpMuFNCmhS-3E-X9GOw-1; Thu, 27 Feb 2025 03:08:01 -0500 Received: from mx-prod-int-02.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-02.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.15]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-04.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 9F6D0193578F; Thu, 27 Feb 2025 08:08:00 +0000 (UTC) Received: from blackfin.pond.sub.org (unknown [10.45.242.9]) by mx-prod-int-02.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 4D53619560AE; Thu, 27 Feb 2025 08:08:00 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 7C7D321E65E7; Thu, 27 Feb 2025 09:07:57 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1740643685; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Ghg1+E0JdhJabwSgZMyZsM5RpsyBKY2hMAEJeHgs3yg=; b=JmYnJDaBcfL0Up8otRg4BhHeoVuE4Z/nO2oevR3BVekhyRheB2pWr6o/5bcwWnwkaD6C3t G6tjye8JLlarESnyY/OdAAkXHtaak+6rDlAtSmRdVLVeEtYScunpJuU2YrjoKJb5b3hQi0 UHjXiH1k+tFmpAmPNnyMCfRAY7m5e3g= X-MC-Unique: 8OvbpMuFNCmhS-3E-X9GOw-1 X-Mimecast-MFC-AGG-ID: 8OvbpMuFNCmhS-3E-X9GOw_1740643680 From: Markus Armbruster To: qemu-devel@nongnu.org Cc: michael.roth@amd.com, jsnow@redhat.com Subject: [PATCH 3/3] qapi/introspect: Use @dataclass to simplify Date: Thu, 27 Feb 2025 09:07:57 +0100 Message-ID: <20250227080757.3978333-4-armbru@redhat.com> In-Reply-To: <20250227080757.3978333-1-armbru@redhat.com> References: <20250227080757.3978333-1-armbru@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.0 on 10.30.177.15 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=armbru@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.44, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1740643772716019000 Content-Type: text/plain; charset="utf-8" A TODO comment in class Annotated reminds us to simplify it once we can use @dataclass, new in Python 3.7. We have that now, so do it. There's a similar comment in scripts/qapi/source.py, but I can't figure out how to use @dataclass there. Left for another day. Signed-off-by: Markus Armbruster Reviewed-by: Daniel P. Berrang=C3=A9 --- scripts/qapi/introspect.py | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/scripts/qapi/introspect.py b/scripts/qapi/introspect.py index 42e5185c7c..89ee5d5f17 100644 --- a/scripts/qapi/introspect.py +++ b/scripts/qapi/introspect.py @@ -11,6 +11,7 @@ See the COPYING file in the top-level directory. """ =20 +from dataclasses import dataclass from typing import ( Any, Dict, @@ -79,19 +80,16 @@ _ValueT =3D TypeVar('_ValueT', bound=3D_Value) =20 =20 +@dataclass class Annotated(Generic[_ValueT]): """ Annotated generally contains a SchemaInfo-like type (as a dict), But it also used to wrap comments/ifconds around scalar leaf values, for the benefit of features and enums. """ - # TODO: Remove after Python 3.7 adds @dataclass: - # pylint: disable=3Dtoo-few-public-methods - def __init__(self, value: _ValueT, ifcond: QAPISchemaIfCond, - comment: Optional[str] =3D None): - self.value =3D value - self.comment: Optional[str] =3D comment - self.ifcond =3D ifcond + value: _ValueT + ifcond: QAPISchemaIfCond + comment: Optional[str] =3D None =20 =20 def _tree_to_qlit(obj: JSONValue, --=20 2.48.1