diff --git a/Logo-S2.svg b/Logo-S2.svg new file mode 100644 index 0000000..be4d4bd --- /dev/null +++ b/Logo-S2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..f142f32 --- /dev/null +++ b/README.md @@ -0,0 +1,78 @@ +# Python Wrapper for S2 Flexibility Protocol + +
+ +
+ + +
+
+ + +
+
+
+ +This Python package implements the message validation for the EN50491-12-2 "S2" standard for home and building energy management. This implementation +is based on the asyncapi description of the protocol provided in the [s2-ws-json](https://github.com/flexiblepower/s2-ws-json/) repository. + +## To Install +You can install this package using pip or any Python dependency manager that collects the packages from PyPI: + +```bash +pip install s2-python +pip install s2-python[ws] # for S2 over WebSockets +``` + +The packages on PyPI may be found [here](https://pypi.org/project/s2-python/). + +## Mypy support +s2-python uses pydantic at its core to define the various S2 messages. As such, the pydantic mypy plugin is required +for type checking to succeed. + +Add to your pyproject.toml: + +```toml +[tool.mypy] +plugins = ['pydantic.mypy'] +``` + + +## Example + +```python +from s2python.common import PowerRange, CommodityQuantity + +# create s2 messages as Python objects +number_range = PowerRange( + start_of_range=4.0, + end_of_range=5.0, + commodity_quantity=CommodityQuantity.ELECTRIC_POWER_L1, +) +# serialize s2 messages +number_range.to_json() +# deserialize s2 messages +json_str = '{"start_of_range": 4.0, "end_of_range": 5.0, "commodity_quantity": "ELECTRIC.POWER.L1"}' +PowerRange.from_json(json_str) +``` + +## Development + +For development, you can install the required dependencies using the following command: +```bash + pip install -e .[testing,development,ws] +``` + +The tests can be run using tox: +```bash + tox +``` + +To build the package, you can use tox as well: +```bash + tox -e build,clean +``` + +## Funding Acknowledgements +This project is co-financed by [TKI-Energie](https://topsectorenergie.nl/nl/maak-kennis-met-tse/tki-energie-en-industrie/) from the Top Consortia for Knowledge and Innovation (TKI) surcharge of +the Ministry of Economic Affairs and Climate Policy. diff --git a/README.rst b/README.rst deleted file mode 100644 index b0eefd2..0000000 --- a/README.rst +++ /dev/null @@ -1,80 +0,0 @@ -Python Wrapper for S2 Flexibility Protocol -=========================================== -.. image:: https://img.shields.io/pypi/v/s2-python - :alt: PyPI - Version -.. image:: https://img.shields.io/pypi/pyversions/s2-python - :alt: PyPI - Python Version -.. image:: https://img.shields.io/pypi/l/s2-python - :alt: PyPI - License - -This Python package implements the message validation for the EN50491-12-2 "S2" standard for home and building energy management. This implementation -is based on the asyncapi description of the protocol provided in the `s2-ws-json `_ repository. - -To Install ------------ -You can install this package using pip or any Python dependency manager that collects the packages from PyPI: - -.. code-block:: bash - - pip install s2-python - pip install s2-python[ws] # for S2 over WebSockets - -The packages on PyPI may be found `here `_ - -Mypy support ------------- -s2-python uses pydantic at its core to define the various S2 messages. As such, the pydantic mypy plugin is required -for type checking to succeed. - -Add to your pyproject.toml: - -.. code-block:: toml - - [tool.mypy] - plugins = ['pydantic.mypy'] - -Example ---------- - -.. code-block:: python - - from s2python.common import PowerRange, CommodityQuantity - - # create s2 messages as Python objects - number_range = PowerRange( - start_of_range=4.0, - end_of_range=5.0, - commodity_quantity=CommodityQuantity.ELECTRIC_POWER_L1, - ) - # serialize s2 messages - number_range.to_json() - # deserialize s2 messages - json_str = '{"start_of_range": 4.0, "end_of_range": 5.0, "commodity_quantity": "ELECTRIC.POWER.L1"}' - PowerRange.from_json(json_str) - -Development -------------- - -For development, you can install the required dependencies using the following command: - - pip install -e .[testing,development,ws] - - -The tests can be run using tox: - - tox - -To build the package, you can use tox as well: - - tox -e build,clean - - -Funding Acknowledgements --------------------------- -This project is co-financed by `TKI-Energie`_ from the Top Consortia for Knowledge and Innovation (TKI) surcharge of -the Ministry of Economic Affairs and Climate Policy. - -.. _TKI-Energie: https://topsectorenergie.nl/nl/maak-kennis-met-tse/tki-energie-en-industrie/ - - -