From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 29F2C45CA6; Fri, 8 Nov 2024 12:40:15 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id E9C184333E; Fri, 8 Nov 2024 12:40:14 +0100 (CET) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mails.dpdk.org (Postfix) with ESMTP id D69454329A for ; Fri, 8 Nov 2024 12:40:13 +0100 (CET) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id B54EA339; Fri, 8 Nov 2024 03:40:42 -0800 (PST) Received: from localhost.localdomain (unknown [10.57.59.19]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 1714F3F66E; Fri, 8 Nov 2024 03:40:11 -0800 (PST) From: Luca Vizzarro To: dev@dpdk.org Cc: Paul Szczepanek , Patrick Robb , Luca Vizzarro Subject: [PATCH v6 0/9] dts: Pydantic configuration Date: Fri, 8 Nov 2024 11:39:56 +0000 Message-ID: <20241108114006.64595-1-luca.vizzarro@arm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240822163941.1390326-1-luca.vizzarro@arm.com> References: <20240822163941.1390326-1-luca.vizzarro@arm.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Hi there, sending a v6 for the pydantic changes. v6: - rebased - fixed API doc errors when building outside of the poetry shell - now re-using a `to_pascal_case` function instead of pydantic's as this would block generating the docs correctly if pydantic is missing v5: - rebased - fixed typos - renamed NodeInfo to OSSessionInfo - fixed bug on DPDKRemoteTarballConfiguration object v4: - added autodoc_pydantic due to autodoc warnings - fixed pydantic models docstrings - updated docs - refactored DPDKBuildInfo and NodeInfo which didn't belong in configuration v3: - removed the common FrozenModel and configured each BaseModel individually, due to mypy complaints v2: - rebased and merge conflicts resolved: - capabilities patch introducing TestCase has now been combined with TestSuiteSpec - external build patch added more configuration complexity which has been re-worked in pydantic adding exclusion via structured models - split pydantic/warlock dependency chains - deleted the config schema as no longer needed - removed config schema generator - turned all configuration dataclasses into Pydantic BaseModels - refactored - improved docstrings Best, Luca Luca Vizzarro (9): dts: add pydantic dependency dts: add TestSuiteSpec class and discovery dts: refactor build and node info classes dts: use pydantic in the configuration dts: remove warlock dependency dts: add autodoc pydantic dts: improve configuration API docs dts: fix custom enum behaviour with docs dts: use TestSuiteSpec class imports doc/api/dts/conf_yaml_schema.json | 1 - doc/api/dts/framework.config.rst | 6 - doc/api/dts/framework.config.types.rst | 8 - doc/guides/conf.py | 13 + doc/guides/tools/dts.rst | 192 +--- dts/conf.yaml | 11 +- dts/framework/config/__init__.py | 860 ++++++++---------- dts/framework/config/conf_yaml_schema.json | 459 ---------- dts/framework/config/types.py | 149 --- dts/framework/remote_session/testpmd_shell.py | 3 +- dts/framework/runner.py | 139 +-- dts/framework/settings.py | 124 +-- dts/framework/test_result.py | 6 +- dts/framework/test_suite.py | 190 +++- dts/framework/testbed_model/capability.py | 12 +- dts/framework/testbed_model/node.py | 15 +- dts/framework/testbed_model/os_session.py | 27 +- dts/framework/testbed_model/port.py | 4 +- dts/framework/testbed_model/posix_session.py | 12 +- dts/framework/testbed_model/sut_node.py | 204 +++-- dts/framework/testbed_model/topology.py | 14 +- .../traffic_generator/__init__.py | 4 +- .../traffic_generator/traffic_generator.py | 2 +- dts/framework/utils.py | 7 +- dts/poetry.lock | 423 +++++---- dts/pyproject.toml | 3 +- dts/tests/TestSuite_smoke_tests.py | 2 +- 27 files changed, 1090 insertions(+), 1800 deletions(-) delete mode 120000 doc/api/dts/conf_yaml_schema.json delete mode 100644 doc/api/dts/framework.config.types.rst delete mode 100644 dts/framework/config/conf_yaml_schema.json delete mode 100644 dts/framework/config/types.py -- 2.43.0