Metadata-Version: 2.4
Name: envoy_schema
Version: 1.1.0
Summary: Envoy Schema - a collection of pydantic models compatible with the Envoy utility server
Author: Battery Storage and Grid Integration Program
License: The MIT License (MIT)
        
        Copyright © 2024 
        
        
        Permission is hereby granted, free of charge, to any person obtaining a copy
        of this software and associated documentation files (the “Software”), to deal
        in the Software without restriction, including without limitation the rights
        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
        copies of the Software, and to permit persons to whom the Software is
        furnished to do so, subject to the following conditions:
        
        The above copyright notice and this permission notice shall be included in
        all copies or substantial portions of the Software.
        
        THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
        THE SOFTWARE.
Project-URL: Homepage, https://github.com/bsgip/envoy-schema
Keywords: envoy,csip-aus,2030.5,csip,pydantic
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development :: Testing
Classifier: Framework :: Pydantic
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: pydantic!=2.17.1,!=2.6.0,>=2.5.0
Requires-Dist: pydantic_xml[lxml]>=2.12.0
Provides-Extra: all
Requires-Dist: envoy_schema[dev,test]; extra == "all"
Provides-Extra: dev
Requires-Dist: bandit; extra == "dev"
Requires-Dist: flake8; extra == "dev"
Requires-Dist: mypy; extra == "dev"
Requires-Dist: types-python-dateutil; extra == "dev"
Requires-Dist: types-tzlocal; extra == "dev"
Provides-Extra: test
Requires-Dist: pytest; extra == "test"
Requires-Dist: assertical; extra == "test"
Dynamic: license-file

# envoy-schema
Public schema for the models/schema associated all envoy API endpoints.

This repository was built as a shared dependency for the envoy utility server and any external clients wishing to integrate. 

Envoy: https://github.com/bsgip/envoy


## Envoy Server Models

The models served under `envoy_schema.server` are derived from the following standards:

* [IEEE: Smart Energy Profile (2030.5-2018)](https://standards.ieee.org/ieee/2030.5/5897/)
* [Sunspec: Common Smart Inverter Profile](https://sunspec.org/2030-5-csip/)
* [Common Smart Inverter Profile (Australia)](https://csipaus.org/)


## Versioning

The `main` branch is the active development branch. Releases will be tagged off the associated release branch.

| CSIP-Aus Version | envoy-schema versions | release branches |
| ---------------- | -------------------- | --------------------- |
| `v1.1a` | `v0.*`, `v1.*` | `csipaus.org/ns/v1.2` |
| `v1.2` | `v0.*`, `v1.*` | `csipaus.org/ns/v1.2` |
| `v1.3` | `v2.*` | `csipaus.org/ns/v1.3` |



## Envoy Admin Models

The models served under `envoy_schema.admin` are typically only used for services directly integrating with the envoy utility server (via the admin server). This is for machine-machine services that are not typically exposed externally.

# Installation

Install directly from pypi

`pip install envoy_schema`


# Development

To install `envoy-schema` for development purposes, after cloning this repository:

```
pip install -e .[dev, test]
pytest
```

We use the following linting/formatting tools:
* [bandit](https://pypi.org/project/black/)
* [flake8](https://pypi.org/project/flake8/)
* [mypy](https://pypi.org/project/mypy/)

Contributions via a pull request are welcome but will be validated using the above tools.

Tests can be run with: `pytest` from the root directory.


