# BO4E-CLI




This is a command line interface (CLI) for developers working or wanting to work with BO4E models.
It contains several features which can make your life easier when working with BO4E.
> It uses the [JSON-Schemas](https://github.com/bo4e/BO4E-Schemas) of the BO4E standard as source of truth.
## Features
- Pull JSON schemas of specific version conveniently from GitHub and replace the online references with relative paths.
- Edit JSON schemas using a static config file to customize the BO4E models to your usecase.
- Generate the models in one of the supported languages: Python (pydantic v1, pydantic v2, sql-model).
- Compare BO4E schemas of different versions. Creates machine-readable output.
- Create a difference matrix comparing multiple versions consecutively.
- Decide if a Diff between two versions is functional or technical.
## How to use this Repository on Your Machine
Follow the instructions in our [Python template repository](https://github.com/Hochfrequenz/python_template_repository#how-to-use-this-repository-on-your-machine).
## Contribute
You are very welcome to contribute to this repository by opening a pull request against the main branch.
Raw data
{
"_id": null,
"home_page": null,
"name": "BO4E-CLI",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.11",
"maintainer_email": null,
"keywords": "bo4e, cli, development, tools",
"author": null,
"author_email": "Leon Haffmans <leon.haffmans@hochfrequenz.de>",
"download_url": "https://files.pythonhosted.org/packages/ec/87/862138f204bc5c56b2eee447c2b34e7ff049f1abaa74968ad41e15a9339e/bo4e_cli-0.0.3.tar.gz",
"platform": null,
"description": "# BO4E-CLI\n\n\n\n\n\n\nThis is a command line interface (CLI) for developers working or wanting to work with BO4E models.\nIt contains several features which can make your life easier when working with BO4E.\n\n> It uses the [JSON-Schemas](https://github.com/bo4e/BO4E-Schemas) of the BO4E standard as source of truth.\n\n## Features\n\n- Pull JSON schemas of specific version conveniently from GitHub and replace the online references with relative paths.\n- Edit JSON schemas using a static config file to customize the BO4E models to your usecase.\n- Generate the models in one of the supported languages: Python (pydantic v1, pydantic v2, sql-model).\n- Compare BO4E schemas of different versions. Creates machine-readable output.\n - Create a difference matrix comparing multiple versions consecutively.\n - Decide if a Diff between two versions is functional or technical.\n\n## How to use this Repository on Your Machine\n\nFollow the instructions in our [Python template repository](https://github.com/Hochfrequenz/python_template_repository#how-to-use-this-repository-on-your-machine).\n\n## Contribute\n\nYou are very welcome to contribute to this repository by opening a pull request against the main branch.\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "CLI for developers. It contains many useful features when working on using BO4E in your own projects.",
"version": "0.0.3",
"project_urls": {
"Changelog": "https://github.com/bo4e/BO4E-CLI/releases",
"Homepage": "https://github.com/bo4e/BO4E-CLI"
},
"split_keywords": [
"bo4e",
" cli",
" development",
" tools"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "4ef98bc873df37f7689c207b56255a8923958456365b251cfba8b6f0afff6ffe",
"md5": "b3f991c11e75dbe771404b971183e172",
"sha256": "9f715614af23628f1b4851aa2013c03ce6cd87cccc334e1c479f8972eb2653a3"
},
"downloads": -1,
"filename": "bo4e_cli-0.0.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "b3f991c11e75dbe771404b971183e172",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.11",
"size": 78584,
"upload_time": "2025-07-12T22:48:32",
"upload_time_iso_8601": "2025-07-12T22:48:32.176401Z",
"url": "https://files.pythonhosted.org/packages/4e/f9/8bc873df37f7689c207b56255a8923958456365b251cfba8b6f0afff6ffe/bo4e_cli-0.0.3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "ec87862138f204bc5c56b2eee447c2b34e7ff049f1abaa74968ad41e15a9339e",
"md5": "216ad44699804044bf2b79cd87fbe59c",
"sha256": "0d936de7209866fa3b726c4cd6bfc5a55373512ad73f6f71c1499e982f5bcb66"
},
"downloads": -1,
"filename": "bo4e_cli-0.0.3.tar.gz",
"has_sig": false,
"md5_digest": "216ad44699804044bf2b79cd87fbe59c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.11",
"size": 63505,
"upload_time": "2025-07-12T22:48:33",
"upload_time_iso_8601": "2025-07-12T22:48:33.751450Z",
"url": "https://files.pythonhosted.org/packages/ec/87/862138f204bc5c56b2eee447c2b34e7ff049f1abaa74968ad41e15a9339e/bo4e_cli-0.0.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-12 22:48:33",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "bo4e",
"github_project": "BO4E-CLI",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "annotated-types",
"specs": [
[
"==",
"0.7.0"
]
]
},
{
"name": "anyio",
"specs": [
[
"==",
"4.9.0"
]
]
},
{
"name": "argcomplete",
"specs": [
[
"==",
"3.6.2"
]
]
},
{
"name": "autoflake",
"specs": [
[
"==",
"2.3.1"
]
]
},
{
"name": "black",
"specs": [
[
"==",
"25.1.0"
]
]
},
{
"name": "certifi",
"specs": [
[
"==",
"2025.6.15"
]
]
},
{
"name": "cffi",
"specs": [
[
"==",
"1.17.1"
]
]
},
{
"name": "charset-normalizer",
"specs": [
[
"==",
"3.4.2"
]
]
},
{
"name": "click",
"specs": [
[
"==",
"8.2.1"
]
]
},
{
"name": "colorama",
"specs": [
[
"==",
"0.4.6"
]
]
},
{
"name": "cryptography",
"specs": [
[
"==",
"45.0.5"
]
]
},
{
"name": "datamodel-code-generator",
"specs": [
[
"==",
"0.31.2"
]
]
},
{
"name": "deprecated",
"specs": [
[
"==",
"1.2.18"
]
]
},
{
"name": "genson",
"specs": [
[
"==",
"1.3.0"
]
]
},
{
"name": "greenlet",
"specs": [
[
"==",
"3.2.3"
]
]
},
{
"name": "h11",
"specs": [
[
"==",
"0.16.0"
]
]
},
{
"name": "httpcore",
"specs": [
[
"==",
"1.0.9"
]
]
},
{
"name": "httpx",
"specs": [
[
"==",
"0.28.1"
]
]
},
{
"name": "idna",
"specs": [
[
"==",
"3.10"
]
]
},
{
"name": "inflect",
"specs": [
[
"==",
"7.5.0"
]
]
},
{
"name": "isort",
"specs": [
[
"==",
"6.0.1"
]
]
},
{
"name": "jinja2",
"specs": [
[
"==",
"3.1.6"
]
]
},
{
"name": "markdown-it-py",
"specs": [
[
"==",
"3.0.0"
]
]
},
{
"name": "markupsafe",
"specs": [
[
"==",
"3.0.2"
]
]
},
{
"name": "mdurl",
"specs": [
[
"==",
"0.1.2"
]
]
},
{
"name": "more-itertools",
"specs": [
[
"==",
"10.7.0"
]
]
},
{
"name": "mypy-extensions",
"specs": [
[
"==",
"1.1.0"
]
]
},
{
"name": "networkx",
"specs": [
[
"==",
"3.5"
]
]
},
{
"name": "packaging",
"specs": [
[
"==",
"25.0"
]
]
},
{
"name": "pathspec",
"specs": [
[
"==",
"0.12.1"
]
]
},
{
"name": "platformdirs",
"specs": [
[
"==",
"4.3.8"
]
]
},
{
"name": "pycparser",
"specs": [
[
"==",
"2.22"
]
]
},
{
"name": "pydantic",
"specs": [
[
"==",
"2.11.7"
]
]
},
{
"name": "pydantic-core",
"specs": [
[
"==",
"2.33.2"
]
]
},
{
"name": "pyflakes",
"specs": [
[
"==",
"3.4.0"
]
]
},
{
"name": "pygithub",
"specs": [
[
"==",
"2.6.1"
]
]
},
{
"name": "pygments",
"specs": [
[
"==",
"2.19.2"
]
]
},
{
"name": "pyjwt",
"specs": [
[
"==",
"2.10.1"
]
]
},
{
"name": "pynacl",
"specs": [
[
"==",
"1.5.0"
]
]
},
{
"name": "pyyaml",
"specs": [
[
"==",
"6.0.2"
]
]
},
{
"name": "requests",
"specs": [
[
"==",
"2.32.4"
]
]
},
{
"name": "rich",
"specs": [
[
"==",
"14.0.0"
]
]
},
{
"name": "shellingham",
"specs": [
[
"==",
"1.5.4"
]
]
},
{
"name": "sniffio",
"specs": [
[
"==",
"1.3.1"
]
]
},
{
"name": "sqlalchemy",
"specs": [
[
"==",
"2.0.41"
]
]
},
{
"name": "sqlmodel",
"specs": [
[
"==",
"0.0.24"
]
]
},
{
"name": "typeguard",
"specs": [
[
"==",
"4.4.4"
]
]
},
{
"name": "typer",
"specs": [
[
"==",
"0.16.0"
]
]
},
{
"name": "typing-extensions",
"specs": [
[
"==",
"4.14.0"
]
]
},
{
"name": "typing-inspection",
"specs": [
[
"==",
"0.4.1"
]
]
},
{
"name": "urllib3",
"specs": [
[
"==",
"2.5.0"
]
]
},
{
"name": "wrapt",
"specs": [
[
"==",
"1.17.2"
]
]
}
],
"tox": true,
"lcname": "bo4e-cli"
}