Makes network automation pydantic.
Project description
Pydantify
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".
-t TRIM_PATH, --trim-path TRIM_PATH
Get only the specified branch of the whole tree.
NOTE: All unknown arguments will be passed to Pyang as-is and without guarantees.
For developers
Requirements:
- Visual Studio Code
- Python 3.10
- PDM package manager
Instructions:
Note: instructions with the same indentation are alternatives to eachother.
- Install
- dependencies through pdm (
pdm install
in project root)- into the local
__pypackages__
folder- to run your project as a python module
- locally (
python -m pydantify
) - in a docker container (see Dockerfile)
- locally (
- to be accessed by your IDE for intellisense (see .vscode/settings.json)
- to be accessed by your debug launch configuration (see .vscode/launch.json)
- to run your project as a python module
- into the local
- project through pip (see guide for users)
- dependencies through pdm (
- Build
- through pdm (
pdm build
)- into the local
dist
folder- to be published on pypi
- through twine (
twine upload dist/*
)
- through twine (
- to be published on pypi
- into the local
- through pdm (
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
Hashes for pydantify-0.5.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 27a145d5b6f65af4fcb4ddf76deecac0c1642b5328ed4f66c6345323f2c77d1b |
|
MD5 | b3c10ec447e19d6b592a472e74b6f5ff |
|
BLAKE2b-256 | a011fe35e1ce87a9100bc1033c56c4f6cbf842bd52c05802bb8a0695da55d594 |