[PATCH net-next v2 0/2] tools: ynl: pyynl: pull the --family resolution logic into the lib
From: Jakub Kicinski <kuba@kernel.org>
Date: 2026-07-01 02:17:54
When packaging YNL as a system level utility we added a --family argument which auto-resolves the full spec path from a well known path in /usr/share. Spelling out full YAML spec files is at this point only done in-tree, for example in the selftests which need the very latest YAML. But the selftests have their own wrapping classes for each family so test authors aren't really bothered by having to spell the paths out. Afford the same ease of use to the Python library users. Move the path resolution from the CLI code to the library. This simplifies the pyynl use by a lot: from pyynl import YnlFamily ynl = YnlFamily(family="netdev") Unless I'm missing a trick, resolving the /usr/share path is hard enough for most users to lean towards shelling out to ynl CLI with --output-json, which is sad. v2: - fix the ethtool script (Donald) - fix --family=X --validate (Clashiko) v1: https://lore.kernel.org/20260630001432.2204298-3-kuba@kernel.org (local) Jakub Kicinski (2): tools: ynl: pyynl: re-export the library API from the package root tools: ynl: pyynl: pull the --family resolution logic into the lib tools/net/ynl/pyynl/__init__.py | 9 +++++ tools/net/ynl/pyynl/cli.py | 56 +++++++---------------------- tools/net/ynl/pyynl/lib/__init__.py | 3 +- tools/net/ynl/pyynl/lib/nlspec.py | 22 ++++++++++-- tools/net/ynl/pyynl/lib/specdir.py | 51 ++++++++++++++++++++++++++ tools/net/ynl/pyynl/lib/ynl.py | 19 ++++++++-- tools/net/ynl/tests/ethtool.py | 7 +--- 7 files changed, 111 insertions(+), 56 deletions(-) create mode 100644 tools/net/ynl/pyynl/lib/specdir.py -- 2.54.0