- Drop support for Python 3.8 since its end-of-life date is October 2024.
- Remove all exceptions from the main module and raise them from the
exceptions
module. This is to declutter the public API and make it easier to maintain.
- A release without change to match the version of other HyRiver packages.
- Add
baseflow_recession
function for computing the master recession curve and baseflow recession constant following Posavec et al. (2006).
- Add the
exceptions
module to the high-level API to declutter the main module. In the future, all exceptions will be raised from this module and not from the main module. For now, the exceptions are raised from both modules for backward compatibility. - Switch to using the
src
layout instead of theflat
layout for the package structure. This is to make the package more maintainable and to avoid any potential conflicts with other packages. - Add artifact attestations to the release workflow.
- Add a new function called
flashiness_index
for computing the flashiness index of a daily streamflow time series following Baker et al. (2004).
- Improve function naming convention by removing the
compute_
prefix from all functions and spelling out the full name of the function. For example,compute_fdc_slope
andcompute_ai
are nowflow_duration_curve_slope
andaridity_index
, respectively.
- Add an option to
compute_mean_monthly
for specifying whether the input data unit is in mm/day or m3/s. If m3/s, then the monthly values are computed by taking the mean of the daily values for each month. If mm/day, then the monthly values are computed by taking the sum of the daily values for each month.
From release 0.15 onward, all minor versions of HyRiver packages
will be pinned. This ensures that previous minor versions of HyRiver
packages cannot be installed with later minor releases. For example,
if you have py3dep==0.14.x
installed, you cannot install
pydaymet==0.15.x
. This is to ensure that the API is
consistent across all minor versions.
- Explicitly use
nopython
mode innumba
-decorated functions to avoid deprecation warnings.
- Address an issue in
compute_fdc_slope
where if the input includes NANs, it returns NAN. Now, the function correctly handles NAN values. Also, this function now works with any array-like input, i.e.,pandas.Series
,pandas.DataFrame
,numpy.ndarray
, andxarray.DataArray
. Also, the denominator should have been divided by 100 since the input bins are percentiles. - Fix a bug in
compute_ai
where instead of using mean annual average values, daily values was being used. Also, this function now acceptsxarray.DataArray
too.
- Sync all minor versions of HyRiver packages to 0.14.0.
- Fully migrate
setup.cfg
andsetup.py
topyproject.toml
. - Convert relative imports to absolute with
absolufy-imports
. - Sync all patch versions of HyRiver packages to x.x.12.
- Refactor the
show_versions
function to improve performance and print the output in a nicer table-like format.
- Use
pyright
for type checking and fix all typing issues that it raised. - Add
xarray
as a dependency.
- Add a new function called
compute_ai
for computing the aridity index. - Add a new function called
compute_flood_moments
for computing flood moments: Mean annual flood, coefficient of variation, and coefficient of skewness. - Add a stand-alone function for computing the FDC slope, called
compute_fdc_slope
.
- Remove the
runoff_ratio_annual
function.
- First release on PyPI.