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