Metadata-Version: 2.1
Name: odsbox
Version: 0.2.0rc98.post1
Summary: Toolbox for accessing ASAM ODS servers using the HTTP API
Author-email: Andreas Krantz <a.krantz@peak-solution.de>
Requires-Python: >=3.10.14
Description-Content-Type: text/markdown
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Dist: protobuf
Requires-Dist: requests
Requires-Dist: pandas
Requires-Dist: grpcio ; extra == "exd-data"
Requires-Dist: bandit[toml]==1.7.9 ; extra == "test"
Requires-Dist: black==24.8.0 ; extra == "test"
Requires-Dist: check-manifest==0.49 ; extra == "test"
Requires-Dist: flake8-bugbear==24.8.19 ; 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==3.8.0 ; extra == "test"
Requires-Dist: pylint==3.2.7 ; extra == "test"
Requires-Dist: pylint_junit ; extra == "test"
Requires-Dist: pytest-cov==5.0.0 ; extra == "test"
Requires-Dist: pytest-mock<3.14.1 ; extra == "test"
Requires-Dist: pytest-runner ; extra == "test"
Requires-Dist: pytest==8.3.2 ; 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://github.com/peak-solution/odsbox/tree/main#readme
Project-URL: Source, 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 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)
```

## Messages send via HTTP

The API makes use of the ASAM ODS protobuf message definitions provided at
[ASAM-ODS-Interfaces](https://github.com/asam-ev/ASAM-ODS-Interfaces).

## 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.

