hydroserverpy 0.5.0b3__tar.gz → 0.5.0b5__tar.gz
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-0.5.0b3/src/hydroserverpy.egg-info → hydroserverpy-0.5.0b5}/PKG-INFO +1 -1
- {hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/setup.cfg +1 -1
- {hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/api/models/etl/data_source.py +12 -9
- {hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/api/models/sta/datastream.py +26 -22
- {hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/etl_csv/hydroserver_etl_csv.py +27 -9
- {hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5/src/hydroserverpy.egg-info}/PKG-INFO +1 -1
- {hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/LICENSE +0 -0
- {hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/README.md +0 -0
- {hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/pyproject.toml +0 -0
- {hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/setup.py +0 -0
- {hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/__init__.py +0 -0
- {hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/api/__init__.py +0 -0
- {hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/api/http.py +0 -0
- {hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/api/main.py +0 -0
- {hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/api/models/__init__.py +0 -0
- {hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/api/models/base.py +0 -0
- {hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/api/models/etl/__init__.py +0 -0
- {hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/api/models/etl/data_archive.py +0 -0
- {hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/api/models/etl/orchestration_configuration.py +0 -0
- {hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/api/models/etl/orchestration_system.py +0 -0
- {hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/api/models/iam/__init__.py +0 -0
- {hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/api/models/iam/account.py +0 -0
- {hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/api/models/iam/collaborator.py +0 -0
- {hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/api/models/iam/role.py +0 -0
- {hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/api/models/iam/workspace.py +0 -0
- {hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/api/models/sta/__init__.py +0 -0
- {hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/api/models/sta/observed_property.py +0 -0
- {hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/api/models/sta/processing_level.py +0 -0
- {hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/api/models/sta/result_qualifier.py +0 -0
- {hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/api/models/sta/sensor.py +0 -0
- {hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/api/models/sta/thing.py +0 -0
- {hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/api/models/sta/unit.py +0 -0
- {hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/api/services/__init__.py +0 -0
- {hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/api/services/base.py +0 -0
- {hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/api/services/etl/__init__.py +0 -0
- {hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/api/services/etl/data_archive.py +0 -0
- {hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/api/services/etl/data_source.py +0 -0
- {hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/api/services/etl/orchestration_system.py +0 -0
- {hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/api/services/iam/__init__.py +0 -0
- {hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/api/services/iam/workspace.py +0 -0
- {hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/api/services/sta/__init__.py +0 -0
- {hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/api/services/sta/datastream.py +0 -0
- {hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/api/services/sta/observed_property.py +0 -0
- {hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/api/services/sta/processing_level.py +0 -0
- {hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/api/services/sta/result_qualifier.py +0 -0
- {hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/api/services/sta/sensor.py +0 -0
- {hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/api/services/sta/thing.py +0 -0
- {hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/api/services/sta/unit.py +0 -0
- {hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/etl/__init__.py +0 -0
- {hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/etl/extractors/__init__.py +0 -0
- {hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/etl/extractors/base.py +0 -0
- {hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/etl/extractors/ftp_extractor.py +0 -0
- {hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/etl/extractors/http_extractor.py +0 -0
- {hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/etl/extractors/local_file_extractor.py +0 -0
- {hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/etl/hydroserver_etl.py +0 -0
- {hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/etl/loaders/__init__.py +0 -0
- {hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/etl/loaders/base.py +0 -0
- {hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/etl/loaders/hydroserver_loader.py +0 -0
- {hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/etl/transformers/__init__.py +0 -0
- {hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/etl/transformers/base.py +0 -0
- {hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/etl/transformers/csv_transformer.py +0 -0
- {hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/etl/transformers/json_transformer.py +0 -0
- {hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/etl/types.py +0 -0
- {hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/etl_csv/__init__.py +0 -0
- {hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/etl_csv/exceptions.py +0 -0
- {hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/quality/__init__.py +0 -0
- {hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/quality/service.py +0 -0
- {hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy.egg-info/SOURCES.txt +0 -0
- {hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy.egg-info/dependency_links.txt +0 -0
- {hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy.egg-info/requires.txt +0 -0
- {hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy.egg-info/top_level.txt +0 -0
- {hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy.egg-info/zip-safe +0 -0
{hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/api/models/etl/data_source.py
RENAMED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
+
import requests
|
|
1
2
|
import tempfile
|
|
2
3
|
from typing import Union, List, Optional, TYPE_CHECKING
|
|
3
4
|
from uuid import UUID
|
|
4
5
|
from pydantic import BaseModel, Field
|
|
5
|
-
from urllib.request import urlopen
|
|
6
6
|
from hydroserverpy.etl_csv.hydroserver_etl_csv import HydroServerETLCSV
|
|
7
7
|
from .orchestration_system import OrchestrationSystem
|
|
8
8
|
from .orchestration_configuration import OrchestrationConfigurationFields
|
|
@@ -135,14 +135,17 @@ class DataSource(HydroServerModel, DataSourceFields, OrchestrationConfigurationF
|
|
|
135
135
|
)
|
|
136
136
|
loader.run()
|
|
137
137
|
elif self.settings["extractor"]["type"] == "HTTP":
|
|
138
|
-
with tempfile.NamedTemporaryFile(mode="w") as temp_file:
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
138
|
+
with tempfile.NamedTemporaryFile(mode="w+") as temp_file:
|
|
139
|
+
response = requests.get(
|
|
140
|
+
self.settings["extractor"]["urlTemplate"],
|
|
141
|
+
stream=True,
|
|
142
|
+
timeout=60,
|
|
143
|
+
)
|
|
144
|
+
response.raise_for_status()
|
|
145
|
+
chunk_size = 1024 * 1024 * 10 # Use a 10mb chunk size.
|
|
146
|
+
for chunk in response.iter_content(chunk_size=chunk_size):
|
|
147
|
+
if chunk:
|
|
148
|
+
temp_file.write(chunk.decode("utf-8"))
|
|
146
149
|
temp_file.seek(0)
|
|
147
150
|
loader = HydroServerETLCSV(
|
|
148
151
|
self._connection, data_file=temp_file, data_source=self
|
{hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/api/models/sta/datastream.py
RENAMED
|
@@ -141,20 +141,6 @@ class Datastream(HydroServerModel, DatastreamFields):
|
|
|
141
141
|
_connection=_connection, _model_ref="datastreams", _uid=_uid, **data
|
|
142
142
|
)
|
|
143
143
|
|
|
144
|
-
self._workspace_id = str(
|
|
145
|
-
data.get("workspace_id")
|
|
146
|
-
or data.get("workspaceId")
|
|
147
|
-
or data["properties"]["workspace"]["id"]
|
|
148
|
-
)
|
|
149
|
-
self._processing_level_id = str(
|
|
150
|
-
data.get("workspace_id")
|
|
151
|
-
or data.get("workspaceId")
|
|
152
|
-
or data["properties"]["processingLevelId"]
|
|
153
|
-
)
|
|
154
|
-
self._unit_id = str(
|
|
155
|
-
data.get("unit_id") or data.get("unitId") or data["properties"]["unitId"]
|
|
156
|
-
)
|
|
157
|
-
|
|
158
144
|
self._workspace = None
|
|
159
145
|
self._thing = None
|
|
160
146
|
self._observed_property = None
|
|
@@ -167,7 +153,8 @@ class Datastream(HydroServerModel, DatastreamFields):
|
|
|
167
153
|
"""The workspace this datastream belongs to."""
|
|
168
154
|
|
|
169
155
|
if self._workspace is None:
|
|
170
|
-
|
|
156
|
+
datastream = self._connection.request("get", f"/api/data/datastreams/{str(self.uid)}").json()
|
|
157
|
+
self._workspace = self._connection.workspaces.get(uid=datastream["workspaceId"])
|
|
171
158
|
|
|
172
159
|
return self._workspace
|
|
173
160
|
|
|
@@ -246,7 +233,8 @@ class Datastream(HydroServerModel, DatastreamFields):
|
|
|
246
233
|
"""The unit this datastream uses."""
|
|
247
234
|
|
|
248
235
|
if self._unit is None:
|
|
249
|
-
|
|
236
|
+
datastream = self._connection.request("get", f"/api/data/datastreams/{str(self.uid)}").json()
|
|
237
|
+
self._unit = self._connection.units.get(uid=datastream["unitId"])
|
|
250
238
|
self._original_data["unit"] = self._unit
|
|
251
239
|
|
|
252
240
|
return self._unit
|
|
@@ -263,9 +251,8 @@ class Datastream(HydroServerModel, DatastreamFields):
|
|
|
263
251
|
"""The processing level of this datastream."""
|
|
264
252
|
|
|
265
253
|
if self._processing_level is None:
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
)
|
|
254
|
+
datastream = self._connection.request("get", f"/api/data/datastreams/{str(self.uid)}").json()
|
|
255
|
+
self._processing_level = self._connection.processinglevels.get(uid=datastream["processingLevelId"])
|
|
269
256
|
self._original_data["processing_level"] = self._processing_level
|
|
270
257
|
|
|
271
258
|
return self._processing_level
|
|
@@ -285,13 +272,10 @@ class Datastream(HydroServerModel, DatastreamFields):
|
|
|
285
272
|
"""Refresh this datastream from HydroServer."""
|
|
286
273
|
|
|
287
274
|
self._workspace = None
|
|
288
|
-
self._workspace_id = None
|
|
289
275
|
self._thing = None
|
|
290
276
|
self._observed_property = None
|
|
291
277
|
self._unit = None
|
|
292
|
-
self._unit_id = None
|
|
293
278
|
self._processing_level = None
|
|
294
|
-
self._processing_level_id = None
|
|
295
279
|
self._sensor = None
|
|
296
280
|
super()._refresh()
|
|
297
281
|
|
|
@@ -336,3 +320,23 @@ class Datastream(HydroServerModel, DatastreamFields):
|
|
|
336
320
|
uid=self.uid,
|
|
337
321
|
observations=observations,
|
|
338
322
|
)
|
|
323
|
+
|
|
324
|
+
# TODO: Find a better long-term solution for this issue.
|
|
325
|
+
def sync_phenomenon_end_time(self):
|
|
326
|
+
"""Ensures the phenomenon_end_time field matches the actual end time of the observations."""
|
|
327
|
+
|
|
328
|
+
response = self._connection.request(
|
|
329
|
+
"get", f"/api/data/datastreams/{str(self.uid)}/observations",
|
|
330
|
+
params={
|
|
331
|
+
"order": "desc",
|
|
332
|
+
"page": 1,
|
|
333
|
+
"page_size": 1
|
|
334
|
+
}
|
|
335
|
+
).json()
|
|
336
|
+
|
|
337
|
+
if len(response["phenomenon_time"]) > 0:
|
|
338
|
+
self.phenomenon_end_time = datetime.fromisoformat(response["phenomenon_time"][0])
|
|
339
|
+
else:
|
|
340
|
+
self.phenomenon_end_time = None
|
|
341
|
+
|
|
342
|
+
self.save()
|
{hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/etl_csv/hydroserver_etl_csv.py
RENAMED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import csv
|
|
2
|
+
import math
|
|
2
3
|
import logging
|
|
3
4
|
import croniter
|
|
4
5
|
import pandas as pd
|
|
@@ -51,7 +52,7 @@ class HydroServerETLCSV:
|
|
|
51
52
|
self._file_header_error = False
|
|
52
53
|
self._file_timestamp_error = False
|
|
53
54
|
|
|
54
|
-
self._chunk_size =
|
|
55
|
+
self._chunk_size = 1000
|
|
55
56
|
self._observations = {}
|
|
56
57
|
|
|
57
58
|
def run(self):
|
|
@@ -124,6 +125,9 @@ class HydroServerETLCSV:
|
|
|
124
125
|
timestamp = self._parse_row_timestamp(row)
|
|
125
126
|
|
|
126
127
|
for datastream in self._datastreams.values():
|
|
128
|
+
if index == self._data_source.settings["transformer"]["dataStartRow"]:
|
|
129
|
+
datastream.sync_phenomenon_end_time()
|
|
130
|
+
|
|
127
131
|
if str(datastream.uid) not in self._datastream_start_row_indexes.keys():
|
|
128
132
|
if (
|
|
129
133
|
not datastream.phenomenon_end_time
|
|
@@ -138,14 +142,27 @@ class HydroServerETLCSV:
|
|
|
138
142
|
if str(datastream.uid) not in self._observations.keys():
|
|
139
143
|
self._observations[str(datastream.uid)] = []
|
|
140
144
|
|
|
145
|
+
raw_result = row[
|
|
146
|
+
self._datastream_column_indexes[
|
|
147
|
+
self._datastream_mapping[str(datastream.uid)]
|
|
148
|
+
]
|
|
149
|
+
]
|
|
150
|
+
|
|
151
|
+
if isinstance(raw_result, (int, float)):
|
|
152
|
+
result = raw_result
|
|
153
|
+
else:
|
|
154
|
+
try:
|
|
155
|
+
result = float(raw_result)
|
|
156
|
+
except (TypeError, ValueError):
|
|
157
|
+
result = datastream.no_data_value
|
|
158
|
+
|
|
159
|
+
if math.isnan(result):
|
|
160
|
+
result = datastream.no_data_value
|
|
161
|
+
|
|
141
162
|
self._observations[str(datastream.uid)].append(
|
|
142
163
|
{
|
|
143
164
|
"phenomenon_time": timestamp,
|
|
144
|
-
"result":
|
|
145
|
-
self._datastream_column_indexes[
|
|
146
|
-
self._datastream_mapping[str(datastream.uid)]
|
|
147
|
-
]
|
|
148
|
-
],
|
|
165
|
+
"result": result,
|
|
149
166
|
}
|
|
150
167
|
)
|
|
151
168
|
|
|
@@ -282,8 +299,9 @@ class HydroServerETLCSV:
|
|
|
282
299
|
uid=datastream_id,
|
|
283
300
|
observations=observations_df,
|
|
284
301
|
)
|
|
285
|
-
except HTTPError:
|
|
302
|
+
except HTTPError as e:
|
|
286
303
|
failed_datastreams.append(datastream_id)
|
|
304
|
+
logger.error(f"Failed to POST observations to datastream: {str(datastream_id)} - {e}")
|
|
287
305
|
|
|
288
306
|
elif datastream_id in self._failed_datastreams:
|
|
289
307
|
logger.info(
|
|
@@ -308,13 +326,13 @@ class HydroServerETLCSV:
|
|
|
308
326
|
|
|
309
327
|
if self._data_source.crontab is not None:
|
|
310
328
|
next_run = croniter.croniter(
|
|
311
|
-
self._data_source.crontab, datetime.now()
|
|
329
|
+
self._data_source.crontab, datetime.now(timezone.utc)
|
|
312
330
|
).get_next(datetime)
|
|
313
331
|
elif (
|
|
314
332
|
self._data_source.interval is not None
|
|
315
333
|
and self._data_source.interval_units is not None
|
|
316
334
|
):
|
|
317
|
-
next_run = datetime.now() + timedelta(
|
|
335
|
+
next_run = datetime.now(timezone.utc) + timedelta(
|
|
318
336
|
**{self._data_source.interval_units: self._data_source.interval}
|
|
319
337
|
)
|
|
320
338
|
else:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/api/models/etl/__init__.py
RENAMED
|
File without changes
|
{hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/api/models/etl/data_archive.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/api/models/iam/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/api/models/iam/collaborator.py
RENAMED
|
File without changes
|
|
File without changes
|
{hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/api/models/iam/workspace.py
RENAMED
|
File without changes
|
{hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/api/models/sta/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/api/models/sta/processing_level.py
RENAMED
|
File without changes
|
{hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/api/models/sta/result_qualifier.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/api/services/etl/__init__.py
RENAMED
|
File without changes
|
{hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/api/services/etl/data_archive.py
RENAMED
|
File without changes
|
{hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/api/services/etl/data_source.py
RENAMED
|
File without changes
|
|
File without changes
|
{hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/api/services/iam/__init__.py
RENAMED
|
File without changes
|
{hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/api/services/iam/workspace.py
RENAMED
|
File without changes
|
{hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/api/services/sta/__init__.py
RENAMED
|
File without changes
|
{hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/api/services/sta/datastream.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/api/services/sta/sensor.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/etl/extractors/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/etl/extractors/ftp_extractor.py
RENAMED
|
File without changes
|
{hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/etl/extractors/http_extractor.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/etl/loaders/hydroserver_loader.py
RENAMED
|
File without changes
|
{hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy/etl/transformers/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hydroserverpy-0.5.0b3 → hydroserverpy-0.5.0b5}/src/hydroserverpy.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|