Makes network automation pydantic.
Project description
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pydantify-0.10.0b1.tar.gz.
File metadata
- Download URL: pydantify-0.10.0b1.tar.gz
- Upload date:
- Size: 15.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
74120b2769974732c86f41285a80cfae4a8b92d68039923cff08602c8e51e346
|
|
| MD5 |
084e9425204569aa7e9d58d2b686df87
|
|
| BLAKE2b-256 |
78fe40d6e2a04578f98c1fe61cc20fb305324e8b093f92437c9f51405efa7b04
|
File details
Details for the file pydantify-0.10.0b1-py3-none-any.whl.
File metadata
- Download URL: pydantify-0.10.0b1-py3-none-any.whl
- Upload date:
- Size: 21.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e3b50cc36d57adb7f146a18841fdf5167145aa4dacaa8e5a71443a7ca3abc351
|
|
| MD5 |
bf2d520973c559ec9493ec3391eddbb2
|
|
| BLAKE2b-256 |
79da146502f8c2e3970c89a0185b7d7b85c50ec7cdbd169e623528ff999e0ef9
|