# ASAM ODSBox
The [*ODSBox*](https://peak-solution.github.io/odsbox) is a lightweight Python wrapper on the standardized [ASAM ODS REST API](https://www.asam.net/standards/detail/ods/wiki/).
Using intuitive JAQuel queries and [pandas.DataFrames](https://pandas.pydata.org/) the *ODSBox* makes dealing with ASAM ODS
data in Python more fun.
``` python
from odsbox.con_i import ConI
with ConI(url="https://MY_SERVER/api", auth=("sa", "sa")) as con_i:
measurements = con_i.query_data(
{
"AoMeasurement": {"name": {"$like": "*"}},
"$attributes": {"name": 1, "id": 1},
"$options": {"$rowlimit": 50},
}
)
print(measurements)
```
## Documentation
* [*ODSBox* documentation](https://peak-solution.github.io/odsbox)
* [Work with ASAM ODS server](https://peak-solution.github.io/data_management_learning_path/ods/query-asam-server.html)
## Communication
The ASAM ODS server is called using HTTP calls defined by the [ASAM ODS standard](https://www.asam.net/standards/detail/ods/wiki/#TechnicalContent).
The messages are encode/decoded using ASAM ODS [protobuf](https://protobuf.dev/programming-guides/proto3/) message definitions provided at
[ASAM-ODS-Interfaces](https://github.com/asam-ev/ASAM-ODS-Interfaces). As content type `application/x-asamods+protobuf` is used.
## JAQuel Queries
JAQuel allows you to query your data in a simple and intuitive way inspired
by [MongoDB Query Language (MQL)](https://www.mongodb.com/docs/manual/tutorial/query-documents/).
The definition of query expression as JSON easily integrates with the Python language – a win-win situation.
## Installation
*ODSBox* is available on.
| | |
| :------------ | :----------------------------------------------------------------------------------- |
| github | [https://github.com/peak-solution/odsbox/](https://github.com/peak-solution/odsbox/) |
| PyPI | [https://pypi.org/project/odsbox/](https://pypi.org/project/odsbox/) |
| github docs | [https://peak-solution.github.io/odsbox](https://peak-solution.github.io/odsbox) |
```shell
# access ASAM ODS server
pip install odsbox
# access ASAM ODS EXD-API plugin
pip install odsbox[exd-data]
```
Raw data
{
"_id": null,
"home_page": null,
"name": "odsbox",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10.12",
"maintainer_email": null,
"keywords": "asam, ods, measurement, data access, data science, data analysis",
"author": null,
"author_email": "Andreas Krantz <a.krantz@peak-solution.de>",
"download_url": "https://files.pythonhosted.org/packages/44/6f/6b4c9aae1033fef5e56a3dcbbbc9292e2021f7910703421941d9d18f65cd/odsbox-1.0.10.tar.gz",
"platform": null,
"description": "# ASAM ODSBox\n\nThe [*ODSBox*](https://peak-solution.github.io/odsbox) is a lightweight Python wrapper on the standardized [ASAM ODS REST API](https://www.asam.net/standards/detail/ods/wiki/).\nUsing intuitive JAQuel queries and [pandas.DataFrames](https://pandas.pydata.org/) the *ODSBox* makes dealing with ASAM ODS\ndata in Python more fun.\n\n``` python\nfrom odsbox.con_i import ConI\n\nwith ConI(url=\"https://MY_SERVER/api\", auth=(\"sa\", \"sa\")) as con_i:\n measurements = con_i.query_data(\n {\n \"AoMeasurement\": {\"name\": {\"$like\": \"*\"}},\n \"$attributes\": {\"name\": 1, \"id\": 1},\n \"$options\": {\"$rowlimit\": 50},\n }\n )\n print(measurements)\n```\n\n## Documentation\n\n* [*ODSBox* documentation](https://peak-solution.github.io/odsbox)\n* [Work with ASAM ODS server](https://peak-solution.github.io/data_management_learning_path/ods/query-asam-server.html)\n\n## Communication\n\nThe ASAM ODS server is called using HTTP calls defined by the [ASAM ODS standard](https://www.asam.net/standards/detail/ods/wiki/#TechnicalContent).\nThe messages are encode/decoded using ASAM ODS [protobuf](https://protobuf.dev/programming-guides/proto3/) message definitions provided at\n[ASAM-ODS-Interfaces](https://github.com/asam-ev/ASAM-ODS-Interfaces). As content type `application/x-asamods+protobuf` is used.\n\n## JAQuel Queries\n\nJAQuel allows you to query your data in a simple and intuitive way inspired\nby [MongoDB Query Language (MQL)](https://www.mongodb.com/docs/manual/tutorial/query-documents/).\nThe definition of query expression as JSON easily integrates with the Python language \u2013 a win-win situation.\n\n## Installation\n\n*ODSBox* is available on.\n\n| | |\n| :------------ | :----------------------------------------------------------------------------------- |\n| github | [https://github.com/peak-solution/odsbox/](https://github.com/peak-solution/odsbox/) |\n| PyPI | [https://pypi.org/project/odsbox/](https://pypi.org/project/odsbox/) |\n| github docs | [https://peak-solution.github.io/odsbox](https://peak-solution.github.io/odsbox) |\n\n\n```shell\n# access ASAM ODS server\npip install odsbox\n# access ASAM ODS EXD-API plugin\npip install odsbox[exd-data]\n```\n",
"bugtrack_url": null,
"license": null,
"summary": "Toolbox for accessing ASAM ODS servers using the HTTP API",
"version": "1.0.10",
"project_urls": {
"Documentation": "https://peak-solution.github.io/odsbox",
"Homepage": "https://github.com/peak-solution/odsbox/tree/main#readme",
"Repository": "https://github.com/peak-solution/odsbox",
"Tracker": "https://github.com/peak-solution/odsbox/issues"
},
"split_keywords": [
"asam",
" ods",
" measurement",
" data access",
" data science",
" data analysis"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "c2ac59cbfe6ce4f38b00077898db145512c5fce23dab3a60d71c926006a83cb3",
"md5": "3a7261876760513543082eab81e6f7ef",
"sha256": "02a7b42ee8c20d225d68d7662c1668e588c96f1dadca576c1ca865f5ea6737c1"
},
"downloads": -1,
"filename": "odsbox-1.0.10-py3-none-any.whl",
"has_sig": false,
"md5_digest": "3a7261876760513543082eab81e6f7ef",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10.12",
"size": 55829,
"upload_time": "2025-08-24T17:56:27",
"upload_time_iso_8601": "2025-08-24T17:56:27.076507Z",
"url": "https://files.pythonhosted.org/packages/c2/ac/59cbfe6ce4f38b00077898db145512c5fce23dab3a60d71c926006a83cb3/odsbox-1.0.10-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "446f6b4c9aae1033fef5e56a3dcbbbc9292e2021f7910703421941d9d18f65cd",
"md5": "f3848c945756a1360bb17789e0a2e38e",
"sha256": "36e4cdab81080d798b6c87f7a4f1b4beb454eb99d113d51a3511bb6a5ef76da4"
},
"downloads": -1,
"filename": "odsbox-1.0.10.tar.gz",
"has_sig": false,
"md5_digest": "f3848c945756a1360bb17789e0a2e38e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10.12",
"size": 119615,
"upload_time": "2025-08-24T17:56:28",
"upload_time_iso_8601": "2025-08-24T17:56:28.234442Z",
"url": "https://files.pythonhosted.org/packages/44/6f/6b4c9aae1033fef5e56a3dcbbbc9292e2021f7910703421941d9d18f65cd/odsbox-1.0.10.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-24 17:56:28",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "peak-solution",
"github_project": "odsbox",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "odsbox"
}