Metadata-Version: 2.1
Name: kisters.network-store.client.network
Version: 0.2.2
Summary: Client library for the Kisters Network Store service
Home-page: https://gitlab.com/kisters/network-store/client
Author: Jesse VanderWees
Author-email: jesse.vanderwees@kisters-bv.nl
License: UNKNOWN
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: License :: OSI Approved :: GNU Lesser General Public License v2 or later (LGPLv2+)
Classifier: Operating System :: OS Independent
Description-Content-Type: text/markdown
Requires-Dist: kisters.network-store.model-library (>=0.2.3)
Requires-Dist: kisters.water.rest-client (>=0.0.8)
Provides-Extra: test
Requires-Dist: kisters.network-store.model-library.water ; extra == 'test'
Requires-Dist: pytest ; extra == 'test'
Provides-Extra: water
Requires-Dist: kisters.network-store.model-library.water ; extra == 'water'

# Hydraulic Network Client Library

This library allows connections to remote hydraulic network REST servers. It
supports authentication with OpenID Connect.

## Installation

Install with `pip`:

```bash
> python -m pip install kisters.water.hydraulic_network.client
```


## Example Usage

### Create the Kisters REST Client

```python
from kisters.water.rest_client import RESTClient
from kisters.water.rest_client.auth import OpenIDConnect


rest_client = RESTClient(
    url="https://jesse-test.hydraulic-network.kisters.cloud",
    authentication=OpenIDConnect(
        client_id="jesse-test",
        client_secret="c4b0f70d-d2e6-497f-b11c-d49fe806c29b",
    ),
)

# Verify the client is set up correctly
# Note: If you have not created any networks yet, this could be an empty list
rest_client.get(("rest", "networks"))
# ['my-network', 'my-other-network', ...]
```

### Connect to a Network

```python
from kisters.water.hydraulic_network.client import Network

# Instantiate the Network class with the network name and client
network = Network("my-network", rest_client)

# You can now access the properties of the network
network.get_nodes()
# [
# FlowBoundary(
#     created=datetime.datetime(2019, 6, 27, 16, 53, 5),
#     uid='flow_boundary',
#     display_name='flow_boundary',
#     location={'x': 0.0, 'y': 0.0, 'z': 0.0},
#     schematic_location={'x': 0.0, 'y': 0.0, 'z': 0.0})
# ,
# ...
# ]
```


