mbox series

[v4,0/8] dts: Pydantic configuration

Message ID 20241028174949.3283701-1-luca.vizzarro@arm.com (mailing list archive)
Headers
Series dts: Pydantic configuration |

Message

Luca Vizzarro Oct. 28, 2024, 5:49 p.m. UTC
Hi there,

sending a v4 for the pydantic changes.

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

---
Depends-on: series-33590 ("DTS external DPDK build")

Luca Vizzarro (8):
  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: 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              | 848 ++++++++----------
 dts/framework/config/conf_yaml_schema.json    | 459 ----------
 dts/framework/config/types.py                 | 149 ---
 dts/framework/runner.py                       | 139 +--
 dts/framework/settings.py                     | 124 +--
 dts/framework/test_result.py                  |   4 +-
 dts/framework/test_suite.py                   | 189 +++-
 dts/framework/testbed_model/capability.py     |  12 +-
 dts/framework/testbed_model/node.py           |  15 +-
 dts/framework/testbed_model/os_session.py     |  25 +-
 dts/framework/testbed_model/port.py           |   4 +-
 dts/framework/testbed_model/posix_session.py  |  14 +-
 dts/framework/testbed_model/sut_node.py       | 200 +++--
 dts/framework/testbed_model/topology.py       |  11 +-
 .../traffic_generator/__init__.py             |   4 +-
 .../traffic_generator/traffic_generator.py    |   2 +-
 dts/framework/utils.py                        |   2 +-
 dts/poetry.lock                               | 423 +++++----
 dts/pyproject.toml                            |   3 +-
 dts/tests/TestSuite_smoke_tests.py            |   2 +-
 26 files changed, 1067 insertions(+), 1793 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