From nobody Wed Nov 27 06:31:23 2024 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=1700099092; cv=none; d=zohomail.com; s=zohoarc; b=OPMt+Km1/uhMPR1jpe5v1IQPj/FiB2Y36+cZj7CffDqUQjOQ0LZlwTGT7ytoMNGE4hAaU5DpMt849gs8yURZ412ofYcAu5Z+cT1HI7I6G50+CJa6bOkZ0GjsPkiS8E5jtRWM+36ODoFcrOf8apSgxAoLdoxhehu1g2aNWfWkzxM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1700099092; 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=Kg3m98RICCt6Ri/bKbY7xmy4OwxNVxaMaqze8HLBBIw=; b=MD34znRvT4oT8CGMCDlT0Gy4pUmV69JhygdxOEFZKOFCF+1FZblwxPitMfP2WCC3Ao+fTVMl47M0W7CRn/xJ/X9UGnNmuWFxuJygMhsWJ4oKgyym+n5bVD2BfnRfvSqlO9aCuskBH6yUjk0XzWU3ktxNWOcQZkJuNoTdQUNSXLI= 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 1700099092961249.16472179796665; Wed, 15 Nov 2023 17:44:52 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1r3RQI-0005GB-Sc; Wed, 15 Nov 2023 20:44:02 -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 1r3RQG-0005ET-LO for qemu-devel@nongnu.org; Wed, 15 Nov 2023 20:44:00 -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 1r3RQB-0001zJ-Dq for qemu-devel@nongnu.org; Wed, 15 Nov 2023 20:44:00 -0500 Received: from mimecast-mx02.redhat.com (mx-ext.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-466-Lsh9LAnTNrGRG4fXX0Ea0g-1; Wed, 15 Nov 2023 20:43:53 -0500 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.rdu2.redhat.com [10.11.54.8]) (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 mimecast-mx02.redhat.com (Postfix) with ESMTPS id 9C7C33C11CC0; Thu, 16 Nov 2023 01:43:52 +0000 (UTC) Received: from scv.localdomain (unknown [10.22.32.122]) by smtp.corp.redhat.com (Postfix) with ESMTP id 5BE7FC15881; Thu, 16 Nov 2023 01:43:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1700099034; 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=Kg3m98RICCt6Ri/bKbY7xmy4OwxNVxaMaqze8HLBBIw=; b=NM6XqBF+Jp9Sa1fnUg8YRfiqTm2PbTwOgskeVryuFToVh+d/W4geSdjhfjWL7uacMJq46J c2eyUqRK/4v8o1FhyqTxP8CrnSxHHqQB42pQ3Cf4O5tgQmBeNCJK8yLtSgV6L2TxpUfVJJ f4bdBo/LW1zj9L8WjTFuzRDY/w6YsYQ= X-MC-Unique: Lsh9LAnTNrGRG4fXX0Ea0g-1 From: John Snow To: qemu-devel@nongnu.org Cc: Peter Maydell , Michael Roth , Markus Armbruster , John Snow Subject: [PATCH 04/19] qapi/schema: declare type for QAPISchemaObjectTypeMember.type Date: Wed, 15 Nov 2023 20:43:35 -0500 Message-ID: <20231116014350.653792-5-jsnow@redhat.com> In-Reply-To: <20231116014350.653792-1-jsnow@redhat.com> References: <20231116014350.653792-1-jsnow@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.8 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=jsnow@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -21 X-Spam_score: -2.2 X-Spam_bar: -- X-Spam_report: (-2.2 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.099, 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_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 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: 1700099093694100002 Content-Type: text/plain; charset="utf-8" declare, but don't initialize the type of "type" to be QAPISchemaType - and allow the value to be initialized during check(). This avoids the need for several "assert type is not None" statements littered throughout the code by asserting it "will always be set." It's a little hokey, but it works -- at the expense of slightly incorrect type information before check() is called, anyway. If this field is accessed before it is initialized, you'll be treated to an AttributeError exception. Fixes stuff like this: qapi/schema.py:657: error: "None" has no attribute "alternate_qtype" [attr= -defined] qapi/schema.py:662: error: "None" has no attribute "describe" [attr-define= d] Signed-off-by: John Snow --- scripts/qapi/schema.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/qapi/schema.py b/scripts/qapi/schema.py index 0fb44452dd5..c5fdd625452 100644 --- a/scripts/qapi/schema.py +++ b/scripts/qapi/schema.py @@ -771,7 +771,7 @@ def __init__(self, name, info, typ, optional, ifcond=3D= None, features=3DNone): assert isinstance(f, QAPISchemaFeature) f.set_defined_in(name) self._type_name =3D typ - self.type =3D None + self.type: QAPISchemaType # set during check(). Kind of hokey. self.optional =3D optional self.features =3D features or [] =20 --=20 2.41.0