# 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/ac/38/20a99484793ebe2b40ff36660eabf6f9831c9cb647c9e578ca6c9fc581ea/odsbox-1.0.3.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.3",
"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": "357fb5e13a9ab05fc6bf41fdb2eaaf1e7f58e88f9ed6639d4c6a6ad51200b6b0",
"md5": "be2d9c942132f4ecf41fc673e41b1acc",
"sha256": "909d02c3b22ef3bfea7fb61f035fedc5c609678576c724c673180b141deb7e3e"
},
"downloads": -1,
"filename": "odsbox-1.0.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "be2d9c942132f4ecf41fc673e41b1acc",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10.12",
"size": 48647,
"upload_time": "2024-10-31T13:23:35",
"upload_time_iso_8601": "2024-10-31T13:23:35.426525Z",
"url": "https://files.pythonhosted.org/packages/35/7f/b5e13a9ab05fc6bf41fdb2eaaf1e7f58e88f9ed6639d4c6a6ad51200b6b0/odsbox-1.0.3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "ac3820a99484793ebe2b40ff36660eabf6f9831c9cb647c9e578ca6c9fc581ea",
"md5": "3426205638370ffe702c6cc3e4268e0f",
"sha256": "26903f4b86fcb7799c51875391b0947a3c7a4c68027217ee52da6ded95ddbfdc"
},
"downloads": -1,
"filename": "odsbox-1.0.3.tar.gz",
"has_sig": false,
"md5_digest": "3426205638370ffe702c6cc3e4268e0f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10.12",
"size": 94012,
"upload_time": "2024-10-31T13:23:37",
"upload_time_iso_8601": "2024-10-31T13:23:37.291455Z",
"url": "https://files.pythonhosted.org/packages/ac/38/20a99484793ebe2b40ff36660eabf6f9831c9cb647c9e578ca6c9fc581ea/odsbox-1.0.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-10-31 13:23:37",
"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"
}