{"id":37074836,"url":"https://github.com/pydantify/pydantify","last_synced_at":"2026-02-02T12:20:37.276Z","repository":{"id":65089415,"uuid":"581646914","full_name":"pydantify/pydantify","owner":"pydantify","description":"Transform YANG models into pydantic datastructures","archived":false,"fork":false,"pushed_at":"2026-01-01T18:14:25.000Z","size":1184,"stargazers_count":87,"open_issues_count":20,"forks_count":8,"subscribers_count":7,"default_branch":"main","last_synced_at":"2026-01-04T21:29:39.772Z","etag":null,"topics":["automation","hacktoberfest","networking","pydantic","python","yang"],"latest_commit_sha":null,"homepage":"https://pydantify.github.io/pydantify/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pydantify.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-12-23T20:31:42.000Z","updated_at":"2026-01-01T12:03:22.000Z","dependencies_parsed_at":"2025-12-20T04:01:31.688Z","dependency_job_id":null,"html_url":"https://github.com/pydantify/pydantify","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/pydantify/pydantify","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pydantify%2Fpydantify","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pydantify%2Fpydantify/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pydantify%2Fpydantify/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pydantify%2Fpydantify/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pydantify","download_url":"https://codeload.github.com/pydantify/pydantify/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pydantify%2Fpydantify/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28414693,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T08:38:59.149Z","status":"ssl_error","status_checked_at":"2026-01-14T08:38:43.588Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["automation","hacktoberfest","networking","pydantic","python","yang"],"created_at":"2026-01-14T08:48:16.470Z","updated_at":"2026-01-14T08:48:17.197Z","avatar_url":"https://github.com/pydantify.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=center\u003e\u003ca href=\"https://pydantify.github.io/pydantify/\"\u003e\u003cimg src=docs/pydantify.svg?sanitize=true/\u003e\u003c/a\u003e\u003c/p\u003e\n\nA ***prototype*** CLI tool to transform YANG models into Pydantic datastructures that can be initialized with config values and serialized into RESTCONF payloads.\n\n[Check out the documentation https://pydantify.github.io/pydantify/](https://pydantify.github.io/pydantify/)\n\n## For users\n\n### Installation\n\n**Prerequisites:**\n\n- Python 3.10\n- pip\n\n**Installing from PYPI:**\n\n```bash\npip install pydantify\n```\n\n**Installing from local folder:**\n\n```bash\npip install .\n```\n\n### Usage\n\n**Example:**\n\n```ps\npydantify -i ./models_dir -o ./output_dir -t interfaces/ethernet model.yang\n```\n\nTransforms 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.\n\n**Command syntax:**\n\n```ps\npydantify [-h] [-v] [-V] [-S] [-i INPUT_DIR] [-o OUTPUT_DIR] [-t TRIM_PATH] input_file\n\npositional arguments:\n  input_file            The YANG file containing the entrypoint to the model to evaluate.\n\noptions:\n  -h, --help            show this help message and exit\n  -v, --verbose         Enables debug output\n  -V, --include-verification\n                        Adds validation code, as well as the relevant YANG files, to the output model.\n  -S, --standalone      Generated output model has no dependency on Pydantify.\n                        All required code is copied into the output model.\n  -i INPUT_DIR, --input-dir INPUT_DIR, --path INPUT_DIR\n                        The directory that contains the YANG input model.\n                        Defaults to the input file's folder.\n  -o OUTPUT_DIR, --output-dir OUTPUT_DIR\n                        The directory that should be used to store the output model. Defaults to \"$CWD/out\".\n  -f OUTPUT_FILE, --output-file OUTPUT_FILE\n                        The name of the output file. Defaults to \"out.py\".\n  -t TRIM_PATH, --trim-path TRIM_PATH\n                        Get only the specified branch of the whole tree.\n  -j, --json-schema     Output JSON schema instead of Pydantic models.\n  -d, --data-type {config,state}\n                        Limit output to config or state only. Default is config and state combined.\n  -n, --strip-namespace\n                        Strip the YANG namespace from the output model aliases.\n\nNOTE: All unknown arguments will be passed to Pyang as-is and without guarantees.\n```\n\n---\n\n## For developers\n\n### Requirements\n\n- Visual Studio Code\n- Python 3.10\n- [UV](https://docs.astral.sh/uv/)\n\n\n---\n\n## Links relevant to project\n\n### Pydantic\n\n- [source](https://github.com/pydantic/pydantic)\n- [documentation](https://pydantic-docs.helpmanual.io/)\n\n### Explanations\n\n- [Yang concepts (yangson)](https://yangson.labs.nic.cz/concepts-terms.html)\n- [yang-python training examples](https://github.com/cmoberg/netconf-yang-training)\n\n### Yang models\n\n- [YangModels/yang](https://github.com/YangModels/yang)\n\n### Pyang\n\n- [pyang](https://github.com/mbj4668/pyang)\n\n---\n\n## Thanks\n\n- Dejan Jovicic and Dominic Walther, who laid the foundations of pydantify\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpydantify%2Fpydantify","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpydantify%2Fpydantify","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpydantify%2Fpydantify/lists"}