Metadata-Version: 2.1
Name: sila2-feature-lib
Version: 2024.24a2
Summary: SiLA2 feature library
Author-email: Erik Trygg <etrg@novonordisk.com>
License: MIT License
        
        Copyright (c) 2024 Erik Trygg
        
        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.
        
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: OS Independent
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
License-File: AUTHORS.rst
Provides-Extra: sila2
Requires-Dist: sila2; extra == "sila2"
Provides-Extra: unitelabs
Requires-Dist: unitelabs-connector-framework; extra == "unitelabs"
Provides-Extra: dev
Requires-Dist: black==24.4.2; extra == "dev"
Requires-Dist: bumpver; extra == "dev"
Requires-Dist: flake8==7.0.0; extra == "dev"
Requires-Dist: isort==5.13.2; extra == "dev"
Provides-Extra: test
Requires-Dist: pytest; extra == "test"

# SiLA2 Feature Library

## Introduction

This library provides a set of SiLA2 feature templates that can be used to create SiLA2-compliant devices.
It fills two use cases:

1. Make it simple to add features to any SiLA server, with standard implementations that does what you want in 90% of the cases. :)
2. Or just get the feature definition and implement it yourself.

## Example

Example using the unitelabs framework.

Install sila2-feature-library, with the `unitelabs` dependency.

```bash
$ pip install sila2-feature-lib[unitelabs]
```

Import and add a feature from the library to your SiLA server.

```python
from unitelabs import Connector
from sila2_feature_lib.simulation.v001_0.feature_ul import SimulatorController

# Create SiLA server
app = Connector({...})

# Append feature to SiLA server
app.register(SimulatorController())

# Run server
asyncio.get_event_loop().run_until_complete(app.start())
```

That's it. You now have a running SiLA server with the default implementation of the `SimulatorController` feature running.

## Library Structure

TBD
