Metadata-Version: 2.3
Name: odsbox
Version: 1.0.3rc200.post1
Summary: Toolbox for accessing ASAM ODS servers using the HTTP API
Keywords: asam,ods,measurement,data access,data science,data analysis
Author-email: Andreas Krantz <a.krantz@peak-solution.de>
Requires-Python: >=3.10.12
Description-Content-Type: text/markdown
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Scientific/Engineering :: Information Analysis
Requires-Dist: protobuf>=5.27.0,<6.0.0
Requires-Dist: requests>=2.30.0,<3.0.0
Requires-Dist: pandas>=2.2.0,<3.0.0
Requires-Dist: grpcio>=1.59.3,<2.0.0 ; extra == "exd-data"
Requires-Dist: bandit[toml]==1.8.0 ; extra == "test"
Requires-Dist: black==24.10.0 ; extra == "test"
Requires-Dist: check-manifest==0.50 ; extra == "test"
Requires-Dist: flake8-bugbear==24.10.31 ; extra == "test"
Requires-Dist: flake8-docstrings ; extra == "test"
Requires-Dist: flake8-formatter_junit_xml ; extra == "test"
Requires-Dist: flake8 ; extra == "test"
Requires-Dist: flake8-pyproject ; extra == "test"
Requires-Dist: pre-commit==4.0.1 ; extra == "test"
Requires-Dist: pylint==3.3.2 ; extra == "test"
Requires-Dist: pylint_junit ; extra == "test"
Requires-Dist: pytest-cov==6.0.0 ; extra == "test"
Requires-Dist: pytest-mock<3.14.1 ; extra == "test"
Requires-Dist: pytest-runner ; extra == "test"
Requires-Dist: pytest==8.3.4 ; extra == "test"
Requires-Dist: pytest-github-actions-annotate-failures ; extra == "test"
Requires-Dist: pytest-xdist ; extra == "test"
Requires-Dist: shellcheck-py==0.10.0.1 ; extra == "test"
Project-URL: Documentation, https://peak-solution.github.io/odsbox
Project-URL: Homepage, https://github.com/peak-solution/odsbox/tree/main#readme
Project-URL: Repository, https://github.com/peak-solution/odsbox
Project-URL: Tracker, https://github.com/peak-solution/odsbox/issues
Provides-Extra: exd-data
Provides-Extra: test

# 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]
```

