A prototype CLI tool to transform YANG models into Pydantic datastructures that can be initialized with config values and serialized into RESTCONF payloads.
Check out the documentation https://pydantify.github.io/pydantify/
For users
Installation
Prerequisites:
- Python 3.10
- pip
Installing from PYPI:
pip install pydantify
Installing from local folder:
pip install .
Usage
Example:
pydantify -i ./models_dir -o ./output_dir -t interfaces/ethernet model.yang
Transforms the /interfaces/ethernet node and its children (located in model.yang) into a Python script located in ./output_dir. Imports of definitions found in ./models_dir are included if relevant to the specified model and node.
Command syntax:
pydantify [-h] [-v] [-V] [-S] [-i INPUT_DIR] [-o OUTPUT_DIR] [-t TRIM_PATH] input_file
positional arguments:
input_file The YANG file containing the entrypoint to the model to evaluate.
options:
-h, --help show this help message and exit
-v, --verbose Enables debug output
-V, --include-verification
Adds validation code, as well as the relevant YANG files, to the output model.
-S, --standalone Generated output model has no dependency on Pydantify.
All required code is copied into the output model.
-i INPUT_DIR, --input-dir INPUT_DIR, --path INPUT_DIR
The directory that contains the YANG input model.
Defaults to the input file's folder.
-o OUTPUT_DIR, --output-dir OUTPUT_DIR
The directory that should be used to store the output model. Defaults to "$CWD/out".
-f OUTPUT_FILE, --output-file OUTPUT_FILE
The name of the output file. Defaults to "out.py".
-t TRIM_PATH, --trim-path TRIM_PATH
Get only the specified branch of the whole tree.
-j, --json-schema Output JSON schema instead of Pydantic models.
-d, --data-type {config,state}
Limit output to config or state only. Default is config and state combined.
-n, --strip-namespace
Strip the YANG namespace from the output model aliases.
NOTE: All unknown arguments will be passed to Pyang as-is and without guarantees.
For developers
Requirements
- Visual Studio Code
- Python 3.10
- UV
Links relevant to project
Pydantic
Explanations
Yang models
Pyang
Thanks
- Dejan Jovicic and Dominic Walther, who laid the foundations of pydantify
Metadata
Release files for pydantify 0.9.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pydantify-0.9.0.tar.gz | 14.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pydantify-0.9.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 34.3 kB
Release files / pydantify-0.9.0.tar.gz
| Download URL | pydantify-0.9.0.tar.gz |
|---|---|
| Size | 14.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
91c3bb2a221da6923b4f48d539f542c16ec92dacf9f15c0d7a002f2b858421d0
|
|
BLAKE2b-256 checksum How to use checksums |
ba5a01a6023c68afabeae02e0a24c69b3aa729c6851b3336c6f8308bba565e14
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / pydantify-0.9.0-py3-none-any.whl
| Download URL | pydantify-0.9.0-py3-none-any.whl |
|---|---|
| Size | 20.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
207895048dccc4152dbeac8260ce3d2776797bab57a38fba556dc1be7ba2c432
|
|
BLAKE2b-256 checksum How to use checksums |
d24334e4adc95202342b91462d72fc796e74d3c669b316bc2dc7ef38bb5c08c9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|