Metadata-Version: 2.4
Name: kiwis-pie
Version: 0.10.5
Summary: Python library for accessing a Kisters WISKI system via the KiWIS API.
Author-email: Andrew MacDonald <andrew@maccas.net>
License: BSD-3-Clause
License-File: LICENSE
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Software Development :: Build Tools
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.10
Requires-Dist: pandas
Requires-Dist: pytz>=2026.2
Requires-Dist: requests
Requires-Dist: tabulate
Provides-Extra: docs
Requires-Dist: mock>=5.2.0; extra == 'docs'
Requires-Dist: sphinx-rtd-theme>=3.1.0; extra == 'docs'
Provides-Extra: test
Requires-Dist: pytest; extra == 'test'
Requires-Dist: requests-mock; extra == 'test'
Description-Content-Type: text/x-rst

Kiwis Pie
===============
Python library for querying WISKI via KiWIS (KISTERS Web Interoperability Solution). See: http://www.kisters.net/NA/products/wiski/options/web-services/

.. image:: https://raw.githubusercontent.com/amacd31/kiwis_pie/master/kiwis_and_pie.jpg

Dependencies
------------
Requires the Python libraries requests, pandas and tabulate.

Installation
------------

Install from PyPI:

::

 pip install kiwis-pie

or install directly from github:

::

 pip install git+https://github.com/amacd31/kiwis_pie.git

Usage
-----
Example fetching some data from the KiWIS service that backs: http://kna.kisters.net/sjr/kiwidgets/tests/SanJoaquinRiver/

::

 from datetime import date
 from kiwis_pie import KIWIS
 k = KIWIS('http://kna.kisters.net/grassland/KiWIS')

 # Get station ID for 'SAN JOAQUIN RIVER NEAR PATTERSON'
 station_id = k.get_station_list(station_name = 'SAN JOAQUIN RIVER NEAR PATTERSON').station_id.values[0]

 # Get timeseries ID for 3-Hourly streamflow (Q) at SAN JOAQUIN RIVER NEAR PATTERSON
 ts_id = k.get_timeseries_list(station_id = station_id, parametertype_name = 'Q', ts_name = '3-Hourly').ts_id.values[0]

 # Read one day of 3-Hourly flow data for SAN JOAQUIN RIVER NEAR PATTERSON
 k.get_timeseries_values(ts_id = ts_id, to = date(2016,1,1), **{'from': date(2016,1,1)})

Example using the KiWIS service that backs the Australian Bureau of Meteorology's Water Data Online service: http://www.bom.gov.au/waterdata/

::

 from datetime import date
 from kiwis_pie import KIWIS
 k = KIWIS('http://www.bom.gov.au/waterdata/services')

 # Get station ID for 'Cotter River at Gingera'
 station_id = k.get_station_list(station_name = 'Cotter R. at Gingera').station_id.values[0]

 # Get timeseries ID for daily mean streamflow (Q) at Cotter River at Gingera
 ts_id = k.get_timeseries_list(station_id = station_id, ts_name = 'DMQaQc.Merged.DailyMean.24HR', parametertype_name = 'Water Course Discharge').ts_id.values[0]

 # Read 31 days of daily water course discharge data for Cotter River at Gingera
 k.get_timeseries_values(ts_id = ts_id, to = date(2016,1,31), **{'from': date(2016,1,1)})

 # Optionally use the `keep_tz` option to return in local timezone instead of UTC
 k.get_timeseries_values(ts_id = ts_id, to = date(2016,1,31), **{'from': date(2016,1,1)}, keep_tz=True)

Documentation
-------------
The methods on the KIWIS class all have docstrings detailing the keyword arguments they take.
Rendered documentation is available on Read the Docs: http://kiwis-pie.readthedocs.io/en/latest/
