# OpenNetwork (opennetwork)
***Visit https://opennetwork.dezors.com***
A tiny developer suite for MLOps-oriented model authoring and loading. It lets you:
- `opennetwork.setmodel()` — open the **Playground** (web view) to design your model.
- `opennetwork.getmodel("model.json")` — load a JSON graph into a **Keras Functional** model.
- `opennetwork.init()` — quickstart banner.
> Default Playground: https://opennetwork.dezors.com/playground
## Install
```bash
pip install opennetwork
# or, to enable building Keras models:
pip install "opennetwork[keras]"
# optional native window instead of browser:
pip install "opennetwork[webview]"
```
## Python API
```python
import opennetwork as onn
onn.init()
onn.setmodel() # opens the Playground in a window/browser
# Build from JSON (returns tf.keras.Model if TensorFlow is installed)
model = onn.getmodel("model.json")
# If TensorFlow is not installed, you can still validate the graph:
model, extras = onn.getmodel("model.json", return_extras=True)
print(extras["inserted"]) # e.g., auto-added Flatten when Dense follows Conv2D
```
### CLI
```bash
opennetwork init
opennetwork setmodel
opennetwork getmodel path/to/model.json
```
## JSON schema (minimal)
```json
{
"id": "string",
"name": "string",
"layers": [
{
"id": "unique-id",
"type": "input|conv2d|dense|flatten|dropout|maxpool2d|batchnorm|activation|softmax_output",
"name": "optional",
"params": { "..." : "layer-params" },
"connections": ["next-layer-id", "..."],
"weights": [...], // optional
"biases": [...] // optional
}
]
}
```
- The graph is built **topologically**.
- If a `Dense` follows a convolutional/tensor output, a `Flatten` is **auto-inserted** (configurable).
- `softmax_output` is interpreted as a final `Activation("softmax")`.
- Unknown or missing shapes will be handled best-effort; for guaranteed results, include an explicit `Input` layer with `params.input_shape`.
## License
Apache 2.0
Under OpenNetwork @ Dezors 2025.
https://dezors.com - for more
# Social Link
https://x.com/DezorsTweets
https://www.linkedin.com/company/dezors
https://github.com/Dezors-Service-And-Consultancy/
Raw data
{
"_id": null,
"home_page": null,
"name": "opennetwork",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": "mlops, deep-learning, tensorflow, keras, model-builder, OpenNetwork",
"author": null,
"author_email": "Anomitra Sarkar <anomitrasarkar05@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/8f/f5/7c97b5ac0c882b74918a31dde2f9bbe690db7f3e5476ddaa44309431d6f4/opennetwork-0.3.0.tar.gz",
"platform": null,
"description": "# OpenNetwork (opennetwork)\r\n***Visit https://opennetwork.dezors.com***\r\n\r\nA tiny developer suite for MLOps-oriented model authoring and loading. It lets you:\r\n\r\n- `opennetwork.setmodel()` \u2014 open the **Playground** (web view) to design your model. \r\n- `opennetwork.getmodel(\"model.json\")` \u2014 load a JSON graph into a **Keras Functional** model. \r\n- `opennetwork.init()` \u2014 quickstart banner.\r\n\r\n> Default Playground: https://opennetwork.dezors.com/playground\r\n\r\n## Install\r\n\r\n```bash\r\npip install opennetwork\r\n# or, to enable building Keras models:\r\npip install \"opennetwork[keras]\"\r\n# optional native window instead of browser:\r\npip install \"opennetwork[webview]\"\r\n```\r\n\r\n## Python API\r\n\r\n```python\r\nimport opennetwork as onn\r\n\r\nonn.init()\r\nonn.setmodel() # opens the Playground in a window/browser\r\n\r\n# Build from JSON (returns tf.keras.Model if TensorFlow is installed)\r\nmodel = onn.getmodel(\"model.json\")\r\n\r\n# If TensorFlow is not installed, you can still validate the graph:\r\nmodel, extras = onn.getmodel(\"model.json\", return_extras=True)\r\nprint(extras[\"inserted\"]) # e.g., auto-added Flatten when Dense follows Conv2D\r\n```\r\n\r\n### CLI\r\n\r\n```bash\r\nopennetwork init\r\nopennetwork setmodel\r\nopennetwork getmodel path/to/model.json\r\n```\r\n\r\n## JSON schema (minimal)\r\n\r\n```json\r\n{\r\n \"id\": \"string\",\r\n \"name\": \"string\",\r\n \"layers\": [\r\n {\r\n \"id\": \"unique-id\",\r\n \"type\": \"input|conv2d|dense|flatten|dropout|maxpool2d|batchnorm|activation|softmax_output\",\r\n \"name\": \"optional\",\r\n \"params\": { \"...\" : \"layer-params\" },\r\n \"connections\": [\"next-layer-id\", \"...\"],\r\n \"weights\": [...], // optional\r\n \"biases\": [...] // optional\r\n }\r\n ]\r\n}\r\n```\r\n\r\n- The graph is built **topologically**.\r\n- If a `Dense` follows a convolutional/tensor output, a `Flatten` is **auto-inserted** (configurable).\r\n- `softmax_output` is interpreted as a final `Activation(\"softmax\")`.\r\n- Unknown or missing shapes will be handled best-effort; for guaranteed results, include an explicit `Input` layer with `params.input_shape`.\r\n\r\n## License\r\n\r\nApache 2.0\r\n\r\nUnder OpenNetwork @ Dezors 2025.\r\n\r\nhttps://dezors.com - for more \r\n\r\n# Social Link \r\n\r\nhttps://x.com/DezorsTweets\r\nhttps://www.linkedin.com/company/dezors \r\nhttps://github.com/Dezors-Service-And-Consultancy/\r\n",
"bugtrack_url": null,
"license": "Apache Software License (Apache-2.0)",
"summary": "OpenNetwork Dev Suite: JSON->Keras model builder + Playground webview",
"version": "0.3.0",
"project_urls": null,
"split_keywords": [
"mlops",
" deep-learning",
" tensorflow",
" keras",
" model-builder",
" opennetwork"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "5124a10b0cdb39e6670d0b8da1838a83b0b9194ed788e6181c77201305900d3c",
"md5": "1532aa1ec7f4ceb65382d6e27e704cd8",
"sha256": "f983c876516001095d7536084c2302401ac31583da7b66f1082b643cbb5e0e22"
},
"downloads": -1,
"filename": "opennetwork-0.3.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "1532aa1ec7f4ceb65382d6e27e704cd8",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 13648,
"upload_time": "2025-10-25T15:47:09",
"upload_time_iso_8601": "2025-10-25T15:47:09.249222Z",
"url": "https://files.pythonhosted.org/packages/51/24/a10b0cdb39e6670d0b8da1838a83b0b9194ed788e6181c77201305900d3c/opennetwork-0.3.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "8ff57c97b5ac0c882b74918a31dde2f9bbe690db7f3e5476ddaa44309431d6f4",
"md5": "a193c0d70612cd58849a110577051c36",
"sha256": "70fc755ef3263c73e682836b75108b528eb59a9c2cfa76f1c16c88adddf06617"
},
"downloads": -1,
"filename": "opennetwork-0.3.0.tar.gz",
"has_sig": false,
"md5_digest": "a193c0d70612cd58849a110577051c36",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 13213,
"upload_time": "2025-10-25T15:47:10",
"upload_time_iso_8601": "2025-10-25T15:47:10.261257Z",
"url": "https://files.pythonhosted.org/packages/8f/f5/7c97b5ac0c882b74918a31dde2f9bbe690db7f3e5476ddaa44309431d6f4/opennetwork-0.3.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-10-25 15:47:10",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "opennetwork"
}