hydroserverpy 1.5.1__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.
Files changed (69) hide show
  1. hydroserverpy/__init__.py +7 -0
  2. hydroserverpy/api/__init__.py +0 -0
  3. hydroserverpy/api/client.py +203 -0
  4. hydroserverpy/api/models/__init__.py +22 -0
  5. hydroserverpy/api/models/base.py +207 -0
  6. hydroserverpy/api/models/etl/__init__.py +26 -0
  7. hydroserverpy/api/models/etl/data_archive.py +77 -0
  8. hydroserverpy/api/models/etl/data_source.py +146 -0
  9. hydroserverpy/api/models/etl/etl_configuration.py +224 -0
  10. hydroserverpy/api/models/etl/extractors/__init__.py +6 -0
  11. hydroserverpy/api/models/etl/extractors/base.py +52 -0
  12. hydroserverpy/api/models/etl/extractors/ftp_extractor.py +50 -0
  13. hydroserverpy/api/models/etl/extractors/http_extractor.py +28 -0
  14. hydroserverpy/api/models/etl/extractors/local_file_extractor.py +20 -0
  15. hydroserverpy/api/models/etl/factories.py +23 -0
  16. hydroserverpy/api/models/etl/loaders/__init__.py +4 -0
  17. hydroserverpy/api/models/etl/loaders/base.py +11 -0
  18. hydroserverpy/api/models/etl/loaders/hydroserver_loader.py +98 -0
  19. hydroserverpy/api/models/etl/orchestration_configuration.py +35 -0
  20. hydroserverpy/api/models/etl/orchestration_system.py +63 -0
  21. hydroserverpy/api/models/etl/schedule.py +16 -0
  22. hydroserverpy/api/models/etl/status.py +14 -0
  23. hydroserverpy/api/models/etl/timestamp_parser.py +112 -0
  24. hydroserverpy/api/models/etl/transformers/__init__.py +5 -0
  25. hydroserverpy/api/models/etl/transformers/base.py +135 -0
  26. hydroserverpy/api/models/etl/transformers/csv_transformer.py +88 -0
  27. hydroserverpy/api/models/etl/transformers/json_transformer.py +48 -0
  28. hydroserverpy/api/models/etl/types.py +7 -0
  29. hydroserverpy/api/models/iam/__init__.py +0 -0
  30. hydroserverpy/api/models/iam/account.py +12 -0
  31. hydroserverpy/api/models/iam/apikey.py +96 -0
  32. hydroserverpy/api/models/iam/collaborator.py +70 -0
  33. hydroserverpy/api/models/iam/role.py +38 -0
  34. hydroserverpy/api/models/iam/workspace.py +297 -0
  35. hydroserverpy/api/models/sta/__init__.py +0 -0
  36. hydroserverpy/api/models/sta/datastream.py +254 -0
  37. hydroserverpy/api/models/sta/observation.py +103 -0
  38. hydroserverpy/api/models/sta/observed_property.py +37 -0
  39. hydroserverpy/api/models/sta/processing_level.py +35 -0
  40. hydroserverpy/api/models/sta/result_qualifier.py +34 -0
  41. hydroserverpy/api/models/sta/sensor.py +44 -0
  42. hydroserverpy/api/models/sta/thing.py +113 -0
  43. hydroserverpy/api/models/sta/unit.py +36 -0
  44. hydroserverpy/api/services/__init__.py +12 -0
  45. hydroserverpy/api/services/base.py +118 -0
  46. hydroserverpy/api/services/etl/__init__.py +0 -0
  47. hydroserverpy/api/services/etl/data_archive.py +166 -0
  48. hydroserverpy/api/services/etl/data_source.py +163 -0
  49. hydroserverpy/api/services/etl/orchestration_system.py +66 -0
  50. hydroserverpy/api/services/iam/__init__.py +0 -0
  51. hydroserverpy/api/services/iam/role.py +38 -0
  52. hydroserverpy/api/services/iam/workspace.py +232 -0
  53. hydroserverpy/api/services/sta/__init__.py +0 -0
  54. hydroserverpy/api/services/sta/datastream.py +296 -0
  55. hydroserverpy/api/services/sta/observed_property.py +82 -0
  56. hydroserverpy/api/services/sta/processing_level.py +72 -0
  57. hydroserverpy/api/services/sta/result_qualifier.py +64 -0
  58. hydroserverpy/api/services/sta/sensor.py +102 -0
  59. hydroserverpy/api/services/sta/thing.py +195 -0
  60. hydroserverpy/api/services/sta/unit.py +78 -0
  61. hydroserverpy/api/utils.py +22 -0
  62. hydroserverpy/quality/__init__.py +1 -0
  63. hydroserverpy/quality/service.py +405 -0
  64. hydroserverpy-1.5.1.dist-info/METADATA +66 -0
  65. hydroserverpy-1.5.1.dist-info/RECORD +69 -0
  66. hydroserverpy-1.5.1.dist-info/WHEEL +5 -0
  67. hydroserverpy-1.5.1.dist-info/licenses/LICENSE +28 -0
  68. hydroserverpy-1.5.1.dist-info/top_level.txt +1 -0
  69. hydroserverpy-1.5.1.dist-info/zip-safe +1 -0
@@ -0,0 +1,66 @@
1
+ Metadata-Version: 2.4
2
+ Name: hydroserverpy
3
+ Version: 1.5.1
4
+ Summary: A Python client for managing HydroServer data
5
+ Requires-Python: <4,>=3.9
6
+ Description-Content-Type: text/markdown
7
+ License-File: LICENSE
8
+ Requires-Dist: requests>=2
9
+ Requires-Dist: pydantic>=2.6
10
+ Requires-Dist: pydantic[email]>=2.6
11
+ Requires-Dist: pandas>=2.1
12
+ Requires-Dist: numpy>=1.22.4
13
+ Requires-Dist: pyyaml>=5
14
+ Requires-Dist: simplejson>=3
15
+ Requires-Dist: crontab>=1
16
+ Requires-Dist: python-dateutil>=2.8.2
17
+ Requires-Dist: croniter>=2.0.1
18
+ Requires-Dist: jmespath>=1.0.1
19
+ Provides-Extra: docs
20
+ Requires-Dist: sphinx_autodoc_typehints; extra == "docs"
21
+ Dynamic: license-file
22
+
23
+ # HydroServer Python Client
24
+
25
+ The hydroserverpy Python package provides an interface for managing HydroServer data and metadata, loading observations, and performing data quality control. This guide will go over how to install the package and connect to a HydroServer instance. Full hydroserverpy documentation and examples can be found [here](https://hydroserver2.github.io/hydroserver/how-to/hydroserverpy/hydroserverpy-examples.html).
26
+
27
+ ## Installation
28
+
29
+ You can install the package via pip:
30
+
31
+ ```bash
32
+ pip install hydroserverpy
33
+ ```
34
+
35
+ ## Connecting to HydroServer
36
+
37
+ To connect to HydroServer, you need to initialize the client with the instance of HydroServer you're using and your user credentials if you want to access and modify your own data. If you don't provide authentication credentials you can read public data, but you will not be able to create or modify any data.
38
+
39
+ ### Example: Anonymous User
40
+
41
+ ```python
42
+ from hydroserverpy import HydroServer
43
+
44
+ # Initialize HydroServer connection.
45
+ hs_api = HydroServer(
46
+ host='https://playground.hydroserver.org'
47
+ )
48
+ ```
49
+
50
+ ### Example: Basic Authentication
51
+
52
+ ```python
53
+ from hydroserverpy import HydroServer
54
+
55
+ # Initialize HydroServer connection with credentials.
56
+ hs_api = HydroServer(
57
+ host='https://playground.hydroserver.org',
58
+ email='user@example.com',
59
+ password='******'
60
+ )
61
+ ```
62
+
63
+ ## Funding and Acknowledgements
64
+
65
+ Funding for this project was provided by the National Oceanic & Atmospheric Administration (NOAA), awarded to the Cooperative Institute for Research to Operations in Hydrology (CIROH) through the NOAA Cooperative Agreement with The University of Alabama (NA22NWS4320003). Utah State University is a founding member of CIROH and receives funding under subaward from the University of Alabama. Additional funding and support have been provided by the State of Utah Division of Water Rights, the World Meteorological Organization, and the Utah Water Research laboratory at Utah State University.
66
+
@@ -0,0 +1,69 @@
1
+ hydroserverpy/__init__.py,sha256=xnuWIehUYshy05GptyIvHiD52FOjoWOloXAfT1LgP3U,150
2
+ hydroserverpy/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
+ hydroserverpy/api/client.py,sha256=jduKZV2cOkPVRjIjAiVYnTncMfEtW6IaCb895Y_PfiI,5697
4
+ hydroserverpy/api/utils.py,sha256=1RUglpvegBZOcu9BEExxsAzaGOyu4tdUk2JyiBEbzxI,496
5
+ hydroserverpy/api/models/__init__.py,sha256=NLq95t1oC2co5aqVYSw9Pq0RAsLHnLjNq1tsgbMepTg,773
6
+ hydroserverpy/api/models/base.py,sha256=mQZbanDg9t2GN9mOR_XOOtAfYF7AkY0fBZ6fHat6NRs,6944
7
+ hydroserverpy/api/models/etl/__init__.py,sha256=_D8_Nbs06-47wwsHOAF9tOohQYQ52gOhz_NUyfloMUw,699
8
+ hydroserverpy/api/models/etl/data_archive.py,sha256=rnmD_FQ1yjJ0KPBigylAQ3uQ6QBppJtBopJK4oCPLSo,2613
9
+ hydroserverpy/api/models/etl/data_source.py,sha256=YWSdudFONe1eniGBkruLRAP8BDyt0tGmZD8hzzByjKU,5123
10
+ hydroserverpy/api/models/etl/etl_configuration.py,sha256=_HuU6Uwtn7PSsMWSbO46lei2AtopmSKHcYtPRUmlF0g,5894
11
+ hydroserverpy/api/models/etl/factories.py,sha256=-inTw_C694YieDU4vbrm1qyeZMEYZqVhHSyEQJLMueo,802
12
+ hydroserverpy/api/models/etl/orchestration_configuration.py,sha256=ElSrgi7ioFZJFJg6aGogW5ZZk7fA17y4p--yWwiOhZ0,1367
13
+ hydroserverpy/api/models/etl/orchestration_system.py,sha256=5wdGsXCMqHfE3--zG-3WAPAVPNMPIx99y-7UUhdCink,2060
14
+ hydroserverpy/api/models/etl/schedule.py,sha256=WF4C9aQhEDh0ldMXhuCWvTYYMnc2roqz9lEYUPn1xEs,498
15
+ hydroserverpy/api/models/etl/status.py,sha256=BWM1cNx_bKza9dGn769s2tThtyFtzb2JX8_dlmO11Fg,489
16
+ hydroserverpy/api/models/etl/timestamp_parser.py,sha256=sPkMGEVqifzaFwVqi3QxHNzwMeS7YG8RAUaQBFXcPZE,4374
17
+ hydroserverpy/api/models/etl/types.py,sha256=4PY3CM-uoXIsf2lhcqtLC6HaRGXe7HKGDU22R8-H35c,135
18
+ hydroserverpy/api/models/etl/extractors/__init__.py,sha256=Z0viw2vk96Ytpz3n7ODtkYz9Zx0I0NsZUbna2ZWvhkw,243
19
+ hydroserverpy/api/models/etl/extractors/base.py,sha256=uLAdi1PrOVMtuCU1ZN_liBW_ElD2mklrBrQ_AZZQtNw,1949
20
+ hydroserverpy/api/models/etl/extractors/ftp_extractor.py,sha256=5LwvHuvLk6LwRSVyE9EkV3DPgVlAvRrOBpl1a8B7dLg,1387
21
+ hydroserverpy/api/models/etl/extractors/http_extractor.py,sha256=AgS0vDmHhN3do1FII-hNEvkK40lDjlS1iftHplWd1No,805
22
+ hydroserverpy/api/models/etl/extractors/local_file_extractor.py,sha256=48Q0EuslzCdtJerI6rRSASaV9uaPYWBHmXDb7QvtaZE,665
23
+ hydroserverpy/api/models/etl/loaders/__init__.py,sha256=rEqYo1Tim7Fzrp1jPhV_yn3ll90dUGMAjcieEqh_4Pk,118
24
+ hydroserverpy/api/models/etl/loaders/base.py,sha256=J3dqm_b6BmEsF7VR3sUxBVQpLJsRx7fTIir5v5TORE0,229
25
+ hydroserverpy/api/models/etl/loaders/hydroserver_loader.py,sha256=LLZTdwu7hOP9w1ta9t5Mdlco1FUDi1Tpfu9F08msoJo,3767
26
+ hydroserverpy/api/models/etl/transformers/__init__.py,sha256=YQhjdoRdq4xikLWETnsRIaMvCae5flRpPrfw9lj9pOA,184
27
+ hydroserverpy/api/models/etl/transformers/base.py,sha256=LiJ_hpH8Y_6g8CTM3kAdR3ldTqxIGzC7W-24OWPGV8w,4924
28
+ hydroserverpy/api/models/etl/transformers/csv_transformer.py,sha256=F1f5_eNwpxktNyz1kgR2m0jw1AOdJIGlCXBWFVjtRc8,3464
29
+ hydroserverpy/api/models/etl/transformers/json_transformer.py,sha256=8nPumuhqnYRbJw1sf81NUGHk6FJEyUJjP1PFWEpPTpw,1793
30
+ hydroserverpy/api/models/iam/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
31
+ hydroserverpy/api/models/iam/account.py,sha256=7COk_CPYFlthg1uFWTBlJESfnuqMW90TSjZoIcBb-_8,439
32
+ hydroserverpy/api/models/iam/apikey.py,sha256=Z4iXg_K056naT3ogwc5wzyNnRpxHkOCz0lk-Gim4eL8,3146
33
+ hydroserverpy/api/models/iam/collaborator.py,sha256=w1D72PsiwmdgFVNlkNV3TPjMR6lxNCHhGZMzPcPPxbA,2316
34
+ hydroserverpy/api/models/iam/role.py,sha256=zYTzMwnnpelZHP0uPg3vZqWqcpSROqrJ58bVkpFeTEQ,1092
35
+ hydroserverpy/api/models/iam/workspace.py,sha256=68iyZ7yhb7UdWiVICo3oUwm6MSziwCHMs-yoE3wxUb0,9370
36
+ hydroserverpy/api/models/sta/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
37
+ hydroserverpy/api/models/sta/datastream.py,sha256=YS6BTc_MBEecbtOnyrQPb9YyYdt1orP43Ku9jONi5A0,8886
38
+ hydroserverpy/api/models/sta/observation.py,sha256=DcLMqObILhj0w0xgTak512KF_UV7DK8YCJv9j3Sd9wo,3697
39
+ hydroserverpy/api/models/sta/observed_property.py,sha256=KpeU8mn0U-e6iBQh34YewSBEC4fY88sJr30B8O6kiXQ,1204
40
+ hydroserverpy/api/models/sta/processing_level.py,sha256=OQKc3pxi6ST36O7qEmLPA6ALXpuUXW2ADhR7XX-CaBk,1080
41
+ hydroserverpy/api/models/sta/result_qualifier.py,sha256=kenPF1B11Q5aa3c7mnHcmMmSQMziWNyiYxGK1Il4Df8,1012
42
+ hydroserverpy/api/models/sta/sensor.py,sha256=rOuMZAcqgSYr-ZHm66EbnoXx_6-UZLeeQXZv59AHIAY,1559
43
+ hydroserverpy/api/models/sta/thing.py,sha256=c7nOvMcnNZ18pr9oOgArnUK4Ei8UgZjXORaaoeemTW8,4108
44
+ hydroserverpy/api/models/sta/unit.py,sha256=H_0HyE5-ni1lglaORSaaxF0c6ZreroeQgN4JcMynkTQ,1094
45
+ hydroserverpy/api/services/__init__.py,sha256=Nb7rc1Zt8kpRElgFdWPdcyUDrtm7XdJDgzes90EzNKQ,566
46
+ hydroserverpy/api/services/base.py,sha256=f7CoQ1m-pdgVwqJsdvE7vcannw-3i7yJgBMI4eHZxAQ,3725
47
+ hydroserverpy/api/services/etl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
48
+ hydroserverpy/api/services/etl/data_archive.py,sha256=-Pmv9EqNJncVX3gPDIeNM4TsR6fHgOIjmMGt9fGOeYg,5842
49
+ hydroserverpy/api/services/etl/data_source.py,sha256=XWWgbVyhyZxRt4s6wBc9-lnv_O86Bte1Vk3_Aza4HGY,5773
50
+ hydroserverpy/api/services/etl/orchestration_system.py,sha256=Otj_DiFpFBQzSc4Ei7LxneBf3VPnodI0pqoQM2BldcM,1935
51
+ hydroserverpy/api/services/iam/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
52
+ hydroserverpy/api/services/iam/role.py,sha256=PV0odC_lL9kV3ggrTjAUEMTo0WNUzv4AeMHNAXlkbN8,1137
53
+ hydroserverpy/api/services/iam/workspace.py,sha256=V4ter_XJQocdXB-11IRdL5jzVmXdtOHlbAuqw42bEks,7995
54
+ hydroserverpy/api/services/sta/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
55
+ hydroserverpy/api/services/sta/datastream.py,sha256=fiLXDB4u2yyGOK16gNm0O4cWm9hJ0wgPf8elRk6arX4,11577
56
+ hydroserverpy/api/services/sta/observed_property.py,sha256=hKoTXRhoJSveR7S9KuokUowadhS3b1VFE-VqCnMRbvU,2516
57
+ hydroserverpy/api/services/sta/processing_level.py,sha256=d5ReGxX193NsYW18k1RWPPIBoEsDPc6LVerDAD_UBvs,2175
58
+ hydroserverpy/api/services/sta/result_qualifier.py,sha256=gkgofUqzGXgdkyAvK9RW_dyTn1MPxpd99jdcn7zpWHM,1783
59
+ hydroserverpy/api/services/sta/sensor.py,sha256=SmrIFNHD_vrlnbZvzsv0Wf0Pexk2oDWQ28LtWdj2kao,3274
60
+ hydroserverpy/api/services/sta/thing.py,sha256=Hyo3zTghSs7IIdsOGRu35i9w-aGOYlK9bl2AnmU4bBs,6666
61
+ hydroserverpy/api/services/sta/unit.py,sha256=NFToSAIGTwDfwYWe8Q-I_f5xsw_GYzFEkMnhSJ-ChvE,2178
62
+ hydroserverpy/quality/__init__.py,sha256=GGBMkFSXciJLYrbV-NraFrj_mXWCy_GTcy9KKrKXU4c,84
63
+ hydroserverpy/quality/service.py,sha256=U02UfLKVmFvr5ySiH0n0JYzUIabq5uprrHIiwcqBlqY,13879
64
+ hydroserverpy-1.5.1.dist-info/licenses/LICENSE,sha256=xVqFxDw3QOEJukakL7gQCqIMTQ1dlSCTo6Oc1otNW80,1508
65
+ hydroserverpy-1.5.1.dist-info/METADATA,sha256=1pH0768X84qnwlzi65zmoxJdGxums5msnr_h4dKM1Tk,2585
66
+ hydroserverpy-1.5.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
67
+ hydroserverpy-1.5.1.dist-info/top_level.txt,sha256=Zf37hrncXLOYvXhgCrf5mZdeq81G9fShdE2LfYbtb7w,14
68
+ hydroserverpy-1.5.1.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
69
+ hydroserverpy-1.5.1.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (80.9.0)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,28 @@
1
+ BSD 3-Clause License
2
+
3
+ Copyright (c) 2023, Utah State University
4
+
5
+ Redistribution and use in source and binary forms, with or without
6
+ modification, are permitted provided that the following conditions are met:
7
+
8
+ 1. Redistributions of source code must retain the above copyright notice, this
9
+ list of conditions and the following disclaimer.
10
+
11
+ 2. Redistributions in binary form must reproduce the above copyright notice,
12
+ this list of conditions and the following disclaimer in the documentation
13
+ and/or other materials provided with the distribution.
14
+
15
+ 3. Neither the name of the copyright holder nor the names of its
16
+ contributors may be used to endorse or promote products derived from
17
+ this software without specific prior written permission.
18
+
19
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
22
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
23
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
25
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
26
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
27
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -0,0 +1 @@
1
+ hydroserverpy
@@ -0,0 +1 @@
1
+