hydroserverpy 0.2.3__py3-none-any.whl → 0.3.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of hydroserverpy might be problematic. Click here for more details.
- hydroserverpy/__init__.py +6 -15
- hydroserverpy/core/endpoints/__init__.py +9 -0
- hydroserverpy/core/endpoints/base.py +133 -0
- hydroserverpy/core/endpoints/data_loaders.py +92 -0
- hydroserverpy/core/endpoints/data_sources.py +92 -0
- hydroserverpy/core/endpoints/datastreams.py +188 -0
- hydroserverpy/core/endpoints/observed_properties.py +93 -0
- hydroserverpy/core/endpoints/processing_levels.py +93 -0
- hydroserverpy/core/endpoints/result_qualifiers.py +93 -0
- hydroserverpy/core/endpoints/sensors.py +93 -0
- hydroserverpy/core/endpoints/things.py +240 -0
- hydroserverpy/core/endpoints/units.py +93 -0
- hydroserverpy/{components → core/schemas}/__init__.py +1 -2
- hydroserverpy/core/schemas/base.py +117 -0
- hydroserverpy/core/schemas/data_loaders.py +71 -0
- hydroserverpy/core/schemas/data_sources.py +206 -0
- hydroserverpy/core/schemas/datastreams.py +299 -0
- hydroserverpy/core/schemas/observed_properties.py +35 -0
- hydroserverpy/core/schemas/processing_levels.py +27 -0
- hydroserverpy/core/schemas/result_qualifiers.py +23 -0
- hydroserverpy/core/schemas/sensors.py +53 -0
- hydroserverpy/core/schemas/things.py +309 -0
- hydroserverpy/core/schemas/units.py +30 -0
- hydroserverpy/core/service.py +186 -0
- hydroserverpy/etl/__init__.py +0 -0
- hydroserverpy/{etl.py → etl/service.py} +32 -47
- hydroserverpy/quality/__init__.py +1 -0
- hydroserverpy/quality/service.py +391 -0
- {hydroserverpy-0.2.3.dist-info → hydroserverpy-0.3.0.dist-info}/METADATA +6 -3
- hydroserverpy-0.3.0.dist-info/RECORD +36 -0
- {hydroserverpy-0.2.3.dist-info → hydroserverpy-0.3.0.dist-info}/WHEEL +1 -1
- hydroserverpy/components/data_loaders.py +0 -67
- hydroserverpy/components/data_sources.py +0 -98
- hydroserverpy/components/datastreams.py +0 -47
- hydroserverpy/components/observed_properties.py +0 -48
- hydroserverpy/components/processing_levels.py +0 -48
- hydroserverpy/components/result_qualifiers.py +0 -48
- hydroserverpy/components/sensors.py +0 -48
- hydroserverpy/components/things.py +0 -48
- hydroserverpy/components/units.py +0 -48
- hydroserverpy/components/users.py +0 -28
- hydroserverpy/main.py +0 -62
- hydroserverpy/models.py +0 -218
- hydroserverpy/schemas/data_loaders.py +0 -27
- hydroserverpy/schemas/data_sources.py +0 -58
- hydroserverpy/schemas/datastreams.py +0 -56
- hydroserverpy/schemas/observed_properties.py +0 -33
- hydroserverpy/schemas/processing_levels.py +0 -33
- hydroserverpy/schemas/result_qualifiers.py +0 -32
- hydroserverpy/schemas/sensors.py +0 -39
- hydroserverpy/schemas/things.py +0 -108
- hydroserverpy/schemas/units.py +0 -32
- hydroserverpy/schemas/users.py +0 -28
- hydroserverpy/service.py +0 -170
- hydroserverpy/utils.py +0 -37
- hydroserverpy-0.2.3.dist-info/RECORD +0 -35
- /hydroserverpy/{schemas → core}/__init__.py +0 -0
- /hydroserverpy/{exceptions.py → etl/exceptions.py} +0 -0
- {hydroserverpy-0.2.3.dist-info → hydroserverpy-0.3.0.dist-info}/LICENSE +0 -0
- {hydroserverpy-0.2.3.dist-info → hydroserverpy-0.3.0.dist-info}/top_level.txt +0 -0
- {hydroserverpy-0.2.3.dist-info → hydroserverpy-0.3.0.dist-info}/zip-safe +0 -0
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
import tempfile
|
|
2
|
-
from urllib.request import urlopen
|
|
3
|
-
from uuid import UUID
|
|
4
|
-
from typing import List
|
|
5
|
-
from hydroserverpy.schemas.data_sources import DataSourceGetResponse, DataSourcePostBody, DataSourcePatchBody
|
|
6
|
-
from hydroserverpy.schemas.datastreams import DatastreamGetResponse
|
|
7
|
-
from hydroserverpy.etl import HydroServerETL
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
class DataSource:
|
|
11
|
-
|
|
12
|
-
def __init__(self, service):
|
|
13
|
-
self._service = service
|
|
14
|
-
|
|
15
|
-
def list(self):
|
|
16
|
-
|
|
17
|
-
return self._service.get(
|
|
18
|
-
'data-sources',
|
|
19
|
-
response_schema=List[DataSourceGetResponse]
|
|
20
|
-
)
|
|
21
|
-
|
|
22
|
-
def list_datastreams(self, data_source_id: UUID):
|
|
23
|
-
|
|
24
|
-
return self._service.get(
|
|
25
|
-
f'data-sources/{data_source_id}/datastreams',
|
|
26
|
-
response_schema=List[DatastreamGetResponse]
|
|
27
|
-
)
|
|
28
|
-
|
|
29
|
-
def get(self, data_source_id: UUID):
|
|
30
|
-
|
|
31
|
-
return self._service.get(
|
|
32
|
-
f'data-sources/{data_source_id}',
|
|
33
|
-
response_schema=DataSourceGetResponse
|
|
34
|
-
)
|
|
35
|
-
|
|
36
|
-
def create(self, data_source_body: DataSourcePostBody):
|
|
37
|
-
|
|
38
|
-
return self._service.post(
|
|
39
|
-
f'data-sources',
|
|
40
|
-
headers={'Content-type': 'application/json'},
|
|
41
|
-
data=data_source_body.json(by_alias=True),
|
|
42
|
-
response_schema=DataSourceGetResponse
|
|
43
|
-
)
|
|
44
|
-
|
|
45
|
-
def update(self, data_source_id: UUID, data_source_body: DataSourcePatchBody):
|
|
46
|
-
return self._service.patch(
|
|
47
|
-
f'data-sources/{str(data_source_id)}',
|
|
48
|
-
headers={'Content-type': 'application/json'},
|
|
49
|
-
data=data_source_body.json(exclude_unset=True, by_alias=True),
|
|
50
|
-
response_schema=DataSourceGetResponse
|
|
51
|
-
)
|
|
52
|
-
|
|
53
|
-
def delete(self, data_source_id: UUID):
|
|
54
|
-
|
|
55
|
-
return self._service.delete(
|
|
56
|
-
f'data-sources/{str(data_source_id)}'
|
|
57
|
-
)
|
|
58
|
-
|
|
59
|
-
def load_data(self, data_source_id: UUID):
|
|
60
|
-
|
|
61
|
-
data_source_response = self.get(data_source_id=data_source_id)
|
|
62
|
-
|
|
63
|
-
if data_source_response.data:
|
|
64
|
-
data_source = data_source_response.data
|
|
65
|
-
else:
|
|
66
|
-
return None
|
|
67
|
-
|
|
68
|
-
datastreams_response = self.list_datastreams(data_source_id=data_source_id)
|
|
69
|
-
datastreams = datastreams_response.data
|
|
70
|
-
|
|
71
|
-
if data_source.path:
|
|
72
|
-
with open(data_source.path) as data_file:
|
|
73
|
-
hs_etl = HydroServerETL(
|
|
74
|
-
service=self._service,
|
|
75
|
-
data_file=data_file,
|
|
76
|
-
data_source=data_source,
|
|
77
|
-
datastreams=datastreams
|
|
78
|
-
)
|
|
79
|
-
hs_etl.run()
|
|
80
|
-
elif data_source.url:
|
|
81
|
-
with tempfile.NamedTemporaryFile(mode='w') as temp_file:
|
|
82
|
-
with urlopen(data_source.url) as response:
|
|
83
|
-
chunk_size = 1024 * 1024 * 10 # Use a 10mb chunk size.
|
|
84
|
-
while True:
|
|
85
|
-
chunk = response.read(chunk_size)
|
|
86
|
-
if not chunk:
|
|
87
|
-
break
|
|
88
|
-
temp_file.write(chunk)
|
|
89
|
-
temp_file.seek(0)
|
|
90
|
-
hs_etl = HydroServerETL(
|
|
91
|
-
service=self._service,
|
|
92
|
-
data_file=temp_file,
|
|
93
|
-
data_source=data_source,
|
|
94
|
-
datastreams=datastreams
|
|
95
|
-
)
|
|
96
|
-
hs_etl.run()
|
|
97
|
-
else:
|
|
98
|
-
return None
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
from uuid import UUID
|
|
2
|
-
from typing import List
|
|
3
|
-
from hydroserverpy.schemas.datastreams import DatastreamGetResponse, DatastreamPostBody, DatastreamPatchBody
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
class Datastream:
|
|
7
|
-
|
|
8
|
-
def __init__(self, service):
|
|
9
|
-
self._service = service
|
|
10
|
-
|
|
11
|
-
def list(self):
|
|
12
|
-
|
|
13
|
-
return self._service.get(
|
|
14
|
-
'datastreams',
|
|
15
|
-
response_schema=List[DatastreamGetResponse]
|
|
16
|
-
)
|
|
17
|
-
|
|
18
|
-
def get(self, datastream_id: str):
|
|
19
|
-
|
|
20
|
-
return self._service.get(
|
|
21
|
-
f'datastreams/{datastream_id}',
|
|
22
|
-
response_schema=DatastreamGetResponse
|
|
23
|
-
)
|
|
24
|
-
|
|
25
|
-
def create(self, datastream_body: DatastreamPostBody):
|
|
26
|
-
|
|
27
|
-
return self._service.post(
|
|
28
|
-
f'datastreams',
|
|
29
|
-
headers={'Content-type': 'application/json'},
|
|
30
|
-
data=datastream_body.json(by_alias=True),
|
|
31
|
-
response_schema=DatastreamGetResponse
|
|
32
|
-
)
|
|
33
|
-
|
|
34
|
-
def update(self, datastream_id: UUID, datastream_body: DatastreamPatchBody):
|
|
35
|
-
|
|
36
|
-
return self._service.patch(
|
|
37
|
-
f'datastreams/{str(datastream_id)}',
|
|
38
|
-
headers={'Content-type': 'application/json'},
|
|
39
|
-
data=datastream_body.json(exclude_unset=True, by_alias=True),
|
|
40
|
-
response_schema=DatastreamGetResponse
|
|
41
|
-
)
|
|
42
|
-
|
|
43
|
-
def delete(self, datastream_id: UUID):
|
|
44
|
-
|
|
45
|
-
return self._service.delete(
|
|
46
|
-
f'datastreams/{str(datastream_id)}'
|
|
47
|
-
)
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
from typing import List
|
|
2
|
-
from uuid import UUID
|
|
3
|
-
from hydroserverpy.schemas.observed_properties import ObservedPropertyGetResponse, ObservedPropertyPostBody, \
|
|
4
|
-
ObservedPropertyPatchBody
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
class ObservedProperty:
|
|
8
|
-
|
|
9
|
-
def __init__(self, service):
|
|
10
|
-
self._service = service
|
|
11
|
-
|
|
12
|
-
def list(self):
|
|
13
|
-
|
|
14
|
-
return self._service.get(
|
|
15
|
-
'observed-properties',
|
|
16
|
-
response_schema=List[ObservedPropertyGetResponse]
|
|
17
|
-
)
|
|
18
|
-
|
|
19
|
-
def get(self, observed_property_id: UUID):
|
|
20
|
-
|
|
21
|
-
return self._service.get(
|
|
22
|
-
f'observed-properties/{observed_property_id}',
|
|
23
|
-
response_schema=ObservedPropertyGetResponse
|
|
24
|
-
)
|
|
25
|
-
|
|
26
|
-
def create(self, observed_property_body: ObservedPropertyPostBody):
|
|
27
|
-
|
|
28
|
-
return self._service.post(
|
|
29
|
-
f'observed-properties',
|
|
30
|
-
headers={'Content-type': 'application/json'},
|
|
31
|
-
data=observed_property_body.json(by_alias=True),
|
|
32
|
-
response_schema=ObservedPropertyGetResponse
|
|
33
|
-
)
|
|
34
|
-
|
|
35
|
-
def update(self, observed_property_id: UUID, observed_property_body: ObservedPropertyPatchBody):
|
|
36
|
-
|
|
37
|
-
return self._service.patch(
|
|
38
|
-
f'observed-properties/{str(observed_property_id)}',
|
|
39
|
-
headers={'Content-type': 'application/json'},
|
|
40
|
-
data=observed_property_body.json(exclude_unset=True, by_alias=True),
|
|
41
|
-
response_schema=ObservedPropertyGetResponse
|
|
42
|
-
)
|
|
43
|
-
|
|
44
|
-
def delete(self, observed_property_id: UUID):
|
|
45
|
-
|
|
46
|
-
return self._service.delete(
|
|
47
|
-
f'observed-properties/{str(observed_property_id)}'
|
|
48
|
-
)
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
from typing import List
|
|
2
|
-
from uuid import UUID
|
|
3
|
-
from hydroserverpy.schemas.processing_levels import ProcessingLevelGetResponse, ProcessingLevelPostBody, \
|
|
4
|
-
ProcessingLevelPatchBody
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
class ProcessingLevel:
|
|
8
|
-
|
|
9
|
-
def __init__(self, service):
|
|
10
|
-
self._service = service
|
|
11
|
-
|
|
12
|
-
def list(self):
|
|
13
|
-
|
|
14
|
-
return self._service.get(
|
|
15
|
-
'processing-levels',
|
|
16
|
-
response_schema=List[ProcessingLevelGetResponse]
|
|
17
|
-
)
|
|
18
|
-
|
|
19
|
-
def get(self, processing_level_id: str):
|
|
20
|
-
|
|
21
|
-
return self._service.get(
|
|
22
|
-
f'processing-levels/{processing_level_id}',
|
|
23
|
-
response_schema=ProcessingLevelGetResponse
|
|
24
|
-
)
|
|
25
|
-
|
|
26
|
-
def create(self, processing_level_body: ProcessingLevelPostBody):
|
|
27
|
-
|
|
28
|
-
return self._service.post(
|
|
29
|
-
f'processing-levels',
|
|
30
|
-
headers={'Content-type': 'application/json'},
|
|
31
|
-
data=processing_level_body.json(by_alias=True),
|
|
32
|
-
response_schema=ProcessingLevelGetResponse
|
|
33
|
-
)
|
|
34
|
-
|
|
35
|
-
def update(self, processing_level_id: UUID, processing_level_body: ProcessingLevelPatchBody):
|
|
36
|
-
|
|
37
|
-
return self._service.patch(
|
|
38
|
-
f'processing-levels/{str(processing_level_id)}',
|
|
39
|
-
headers={'Content-type': 'application/json'},
|
|
40
|
-
data=processing_level_body.json(exclude_unset=True, by_alias=True),
|
|
41
|
-
response_schema=ProcessingLevelGetResponse
|
|
42
|
-
)
|
|
43
|
-
|
|
44
|
-
def delete(self, processing_level_id: UUID):
|
|
45
|
-
|
|
46
|
-
return self._service.delete(
|
|
47
|
-
f'processing-levels/{str(processing_level_id)}'
|
|
48
|
-
)
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
from typing import List
|
|
2
|
-
from uuid import UUID
|
|
3
|
-
from hydroserverpy.schemas.result_qualifiers import ResultQualifierGetResponse, ResultQualifierPostBody, \
|
|
4
|
-
ResultQualifierPatchBody
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
class ResultQualifier:
|
|
8
|
-
|
|
9
|
-
def __init__(self, service):
|
|
10
|
-
self._service = service
|
|
11
|
-
|
|
12
|
-
def list(self):
|
|
13
|
-
|
|
14
|
-
return self._service.get(
|
|
15
|
-
'result-qualifiers',
|
|
16
|
-
response_schema=List[ResultQualifierGetResponse]
|
|
17
|
-
)
|
|
18
|
-
|
|
19
|
-
def get(self, result_qualifier_id: str):
|
|
20
|
-
|
|
21
|
-
return self._service.get(
|
|
22
|
-
f'result-qualifiers/{result_qualifier_id}',
|
|
23
|
-
response_schema=ResultQualifierGetResponse
|
|
24
|
-
)
|
|
25
|
-
|
|
26
|
-
def create(self, result_qualifier_body: ResultQualifierPostBody):
|
|
27
|
-
|
|
28
|
-
return self._service.post(
|
|
29
|
-
f'result-qualifiers',
|
|
30
|
-
headers={'Content-type': 'application/json'},
|
|
31
|
-
data=result_qualifier_body.json(by_alias=True),
|
|
32
|
-
response_schema=ResultQualifierGetResponse
|
|
33
|
-
)
|
|
34
|
-
|
|
35
|
-
def update(self, result_qualifier_id: UUID, result_qualifier_body: ResultQualifierPatchBody):
|
|
36
|
-
|
|
37
|
-
return self._service.patch(
|
|
38
|
-
f'result-qualifiers/{str(result_qualifier_id)}',
|
|
39
|
-
headers={'Content-type': 'application/json'},
|
|
40
|
-
data=result_qualifier_body.json(exclude_unset=True, by_alias=True),
|
|
41
|
-
response_schema=ResultQualifierGetResponse
|
|
42
|
-
)
|
|
43
|
-
|
|
44
|
-
def delete(self, result_qualifier_id: UUID):
|
|
45
|
-
|
|
46
|
-
return self._service.delete(
|
|
47
|
-
f'result-qualifiers/{str(result_qualifier_id)}'
|
|
48
|
-
)
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
from typing import List
|
|
2
|
-
from uuid import UUID
|
|
3
|
-
from hydroserverpy.schemas.sensors import SensorGetResponse, SensorPostBody, \
|
|
4
|
-
SensorPatchBody
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
class Sensor:
|
|
8
|
-
|
|
9
|
-
def __init__(self, service):
|
|
10
|
-
self._service = service
|
|
11
|
-
|
|
12
|
-
def list(self):
|
|
13
|
-
|
|
14
|
-
return self._service.get(
|
|
15
|
-
'sensors',
|
|
16
|
-
response_schema=List[SensorGetResponse]
|
|
17
|
-
)
|
|
18
|
-
|
|
19
|
-
def get(self, sensor_id: str):
|
|
20
|
-
|
|
21
|
-
return self._service.get(
|
|
22
|
-
f'sensors/{sensor_id}',
|
|
23
|
-
response_schema=SensorGetResponse
|
|
24
|
-
)
|
|
25
|
-
|
|
26
|
-
def create(self, sensor_body: SensorPostBody):
|
|
27
|
-
|
|
28
|
-
return self._service.post(
|
|
29
|
-
f'sensors',
|
|
30
|
-
headers={'Content-type': 'application/json'},
|
|
31
|
-
data=sensor_body.json(by_alias=True),
|
|
32
|
-
response_schema=SensorGetResponse
|
|
33
|
-
)
|
|
34
|
-
|
|
35
|
-
def update(self, sensor_id: UUID, sensor_body: SensorPatchBody):
|
|
36
|
-
|
|
37
|
-
return self._service.patch(
|
|
38
|
-
f'sensors/{str(sensor_id)}',
|
|
39
|
-
headers={'Content-type': 'application/json'},
|
|
40
|
-
data=sensor_body.json(exclude_unset=True, by_alias=True),
|
|
41
|
-
response_schema=SensorGetResponse
|
|
42
|
-
)
|
|
43
|
-
|
|
44
|
-
def delete(self, sensor_id: UUID):
|
|
45
|
-
|
|
46
|
-
return self._service.delete(
|
|
47
|
-
f'sensors/{str(sensor_id)}'
|
|
48
|
-
)
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
from typing import List
|
|
2
|
-
from uuid import UUID
|
|
3
|
-
from hydroserverpy.schemas.things import ThingGetResponse, ThingPostBody, \
|
|
4
|
-
ThingPatchBody
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
class Thing:
|
|
8
|
-
|
|
9
|
-
def __init__(self, service):
|
|
10
|
-
self._service = service
|
|
11
|
-
|
|
12
|
-
def list(self):
|
|
13
|
-
|
|
14
|
-
return self._service.get(
|
|
15
|
-
'things',
|
|
16
|
-
response_schema=List[ThingGetResponse]
|
|
17
|
-
)
|
|
18
|
-
|
|
19
|
-
def get(self, thing_id: str):
|
|
20
|
-
|
|
21
|
-
return self._service.get(
|
|
22
|
-
f'things/{thing_id}',
|
|
23
|
-
response_schema=ThingGetResponse
|
|
24
|
-
)
|
|
25
|
-
|
|
26
|
-
def create(self, thing_body: ThingPostBody):
|
|
27
|
-
|
|
28
|
-
return self._service.post(
|
|
29
|
-
f'things',
|
|
30
|
-
headers={'Content-type': 'application/json'},
|
|
31
|
-
data=thing_body.json(by_alias=True),
|
|
32
|
-
response_schema=ThingGetResponse
|
|
33
|
-
)
|
|
34
|
-
|
|
35
|
-
def update(self, thing_id: UUID, thing_body: ThingPatchBody):
|
|
36
|
-
|
|
37
|
-
return self._service.patch(
|
|
38
|
-
f'things/{str(thing_id)}',
|
|
39
|
-
headers={'Content-type': 'application/json'},
|
|
40
|
-
data=thing_body.json(exclude_unset=True, by_alias=True),
|
|
41
|
-
response_schema=ThingGetResponse
|
|
42
|
-
)
|
|
43
|
-
|
|
44
|
-
def delete(self, thing_id: UUID):
|
|
45
|
-
|
|
46
|
-
return self._service.delete(
|
|
47
|
-
f'things/{str(thing_id)}'
|
|
48
|
-
)
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
from typing import List
|
|
2
|
-
from uuid import UUID
|
|
3
|
-
from hydroserverpy.schemas.units import UnitGetResponse, UnitPostBody, \
|
|
4
|
-
UnitPatchBody
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
class Unit:
|
|
8
|
-
|
|
9
|
-
def __init__(self, service):
|
|
10
|
-
self._service = service
|
|
11
|
-
|
|
12
|
-
def list(self):
|
|
13
|
-
|
|
14
|
-
return self._service.get(
|
|
15
|
-
'units',
|
|
16
|
-
response_schema=List[UnitGetResponse]
|
|
17
|
-
)
|
|
18
|
-
|
|
19
|
-
def get(self, unit_id: str):
|
|
20
|
-
|
|
21
|
-
return self._service.get(
|
|
22
|
-
f'units/{unit_id}',
|
|
23
|
-
response_schema=UnitGetResponse
|
|
24
|
-
)
|
|
25
|
-
|
|
26
|
-
def create(self, unit_body: UnitPostBody):
|
|
27
|
-
|
|
28
|
-
return self._service.post(
|
|
29
|
-
f'units',
|
|
30
|
-
headers={'Content-type': 'application/json'},
|
|
31
|
-
data=unit_body.json(by_alias=True),
|
|
32
|
-
response_schema=UnitGetResponse
|
|
33
|
-
)
|
|
34
|
-
|
|
35
|
-
def update(self, unit_id: UUID, unit_body: UnitPatchBody):
|
|
36
|
-
|
|
37
|
-
return self._service.patch(
|
|
38
|
-
f'units/{str(unit_id)}',
|
|
39
|
-
headers={'Content-type': 'application/json'},
|
|
40
|
-
data=unit_body.json(exclude_unset=True, by_alias=True),
|
|
41
|
-
response_schema=UnitGetResponse
|
|
42
|
-
)
|
|
43
|
-
|
|
44
|
-
def delete(self, unit_id: UUID):
|
|
45
|
-
|
|
46
|
-
return self._service.delete(
|
|
47
|
-
f'units/{str(unit_id)}'
|
|
48
|
-
)
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
from pydantic import BaseModel, Field
|
|
2
|
-
from typing import Optional
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
class Organization(BaseModel):
|
|
6
|
-
code: str
|
|
7
|
-
name: str
|
|
8
|
-
description: Optional[str]
|
|
9
|
-
type: str
|
|
10
|
-
link: Optional[str]
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
class UserResponse(BaseModel):
|
|
14
|
-
email: str
|
|
15
|
-
first_name: str = Field(..., alias='firstName')
|
|
16
|
-
last_name: str = Field(..., alias='lastName')
|
|
17
|
-
middle_name: Optional[str] = Field(None, alias='middleName')
|
|
18
|
-
phone: Optional[str]
|
|
19
|
-
address: Optional[str]
|
|
20
|
-
type: str
|
|
21
|
-
link: Optional[str]
|
|
22
|
-
organization: Optional[Organization]
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
class User:
|
|
26
|
-
|
|
27
|
-
def __init__(self, service):
|
|
28
|
-
self._service = service
|
hydroserverpy/main.py
DELETED
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
from typing import Optional, Union, Tuple
|
|
2
|
-
from pydantic import AnyHttpUrl
|
|
3
|
-
from hydroserverpy.service import BaseService
|
|
4
|
-
from hydroserverpy.components import DataLoader, DataSource, Datastream, ObservedProperty, ProcessingLevel, \
|
|
5
|
-
ResultQualifier, Sensor, Thing, Unit, User
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
class HydroServer(BaseService):
|
|
9
|
-
|
|
10
|
-
def __init__(
|
|
11
|
-
self,
|
|
12
|
-
host: Union[AnyHttpUrl, str],
|
|
13
|
-
auth: Optional[Tuple[str, str]] = None,
|
|
14
|
-
sta_path: str = 'api/sensorthings/v1.1',
|
|
15
|
-
api_path: str = 'api/data'
|
|
16
|
-
):
|
|
17
|
-
super().__init__(
|
|
18
|
-
host=host,
|
|
19
|
-
auth=auth,
|
|
20
|
-
sta_path=sta_path,
|
|
21
|
-
api_path=api_path
|
|
22
|
-
)
|
|
23
|
-
|
|
24
|
-
@property
|
|
25
|
-
def data_loaders(self):
|
|
26
|
-
return DataLoader(self)
|
|
27
|
-
|
|
28
|
-
@property
|
|
29
|
-
def data_sources(self):
|
|
30
|
-
return DataSource(self)
|
|
31
|
-
|
|
32
|
-
@property
|
|
33
|
-
def datastreams(self):
|
|
34
|
-
return Datastream(self)
|
|
35
|
-
|
|
36
|
-
@property
|
|
37
|
-
def observed_properties(self):
|
|
38
|
-
return ObservedProperty(self)
|
|
39
|
-
|
|
40
|
-
@property
|
|
41
|
-
def processing_levels(self):
|
|
42
|
-
return ProcessingLevel(self)
|
|
43
|
-
|
|
44
|
-
@property
|
|
45
|
-
def result_qualifiers(self):
|
|
46
|
-
return ResultQualifier(self)
|
|
47
|
-
|
|
48
|
-
@property
|
|
49
|
-
def sensors(self):
|
|
50
|
-
return Sensor(self)
|
|
51
|
-
|
|
52
|
-
@property
|
|
53
|
-
def things(self):
|
|
54
|
-
return Thing(self)
|
|
55
|
-
|
|
56
|
-
@property
|
|
57
|
-
def units(self):
|
|
58
|
-
return Unit(self)
|
|
59
|
-
|
|
60
|
-
@property
|
|
61
|
-
def users(self):
|
|
62
|
-
return User(self)
|