Changelog

0.3.3 (unreleased)

Contributors to this version: Ludwig Lierhammer (@ludwiglierhammer)

New features and environments

  • new_functions: do_valid_value_check and do_valid_value_clim_check are copies of the old versions from do_missing_value_check and do_missing_value_clim_check that return 1 (fail) for numerically invalid values, otherwise 0 (pass) (#205, #206)

Breaking changes

  • Both do_mising_value_check and do_missing_value_clim_check now return 0 (pass) for numerically invalid values, otherwise 1 (fail) (#205, #206)

0.3.2 (2023-04-21)

Contributors to this version: Ludwig Lierhammer (@ludwiglierhammer), Trevor James Smith (@Zeitsperre)

Announcements

  • marine_qc now fully supports Python 3.14 and drops support for Python 3.10. (#182, #161)

New features and environments

  • do_date_check now supports flexible input parameters year_init and year_end that define valid year range (#184)

Breaking changes

  • Development dependencies (“dev”, “docs”) are now installed via the new dependency-groups conventions (PEP 735) (#161)

  • prek is now the suggested pre-commit runner (installed by default via pip install –group dev) (#161)

Internal changes

  • Updated the project template and boilerplate code to address configuration issues and benefit from new workflows/conventions (#161):

    • A new workflow has been added to automatically accept minor/patch updates to GitHub Actions and Python deps coming from Dependabot.

    • tox.ini` has migrated to tox.toml (new standard).

    • pyproject.toml and tox.toml now use [dependency-groups] to manage non-end-user dependency lists.

    • The Makefile recipes are much cleaner and now manage some dependency installation calls.

    • Various dependency updates.

  • sphinx documentation now uses internal data types from “auxiliary.py” (#143, #185)

  • correct reporsitroy url in documentation (#185)

  • cdm_reader_mapper has been dropped from the dependencies (#183, #188)

  • copy code snippet to load files from GLAMOD test data repo from cdm_reader_mapper (used in testing suite only) (#183, #188)

Bug fixes

  • Staging and deployment worksflows are now fully working again (#160, #161)

  • bump-version workflow is now fully working again (#64, #161)

0.3.1 (2026-03-06)

Contributors to this version: Ludwig Lierhammer (@ludwiglierhammer), John Kennedy (@jjk-code-otter) and Trevor James Smith (@Zeitsperre)

New features and enhancements

  • New functions do_multiple_sequential_check and do_multiple_grouped_check analog to do_multiple_individual_check to run multiple checks at once (#32, #95)

  • Call both plotting functions latitude_longitude_plot and latitude_variable_plot directly from marine_qc (#95)

  • The documentation now uses the furo theme for Sphinx (#122)

  • New functions do_landlocked_check and do_maritime_check to test whether a position is on land/sea using a land-sea mask (#130, #141)

  • decorator external_clim.inspect_climatology now supports str, path-like and xarray objects as input (#141)

  • new validator to validate call signature types in multiple_checks (#15, #128)

Breaking changes

  • rename function do_multiple_row_check to multiple_individual_check (#95)

  • rename module marine_qc.multiple_row_checks to marine_qc.multiple_checks (#95)

  • multiple_checks now raises errors if qc_dict or preproc_dict has an invalid structure (#119, #128)

  • multiple_checks now raises errors if input directory values do not match the available QC functions or their arguments (#119, #128)

Internal changes

  • make multiple checks more flexible using several helper functions (#14, #95)

  • add plotting routines to documentation’s API reference (#95)

  • add helper functions to documentation’s API reference (#95)

  • add section “More theoretical information” to documentation (#95)

  • The numpydoc linting tool has been added to the linting checks, and the pre-commit configurations (#53, #59, #120)

  • The mypy type checking has been added to the pre-commit configurations (#59, #121)

  • Documentation is now build without any warning messages (#96, #122)

  • readthedocs.yaml: set fail_on_warnings to “true” (#61, #122)

  • new validation method validations to validate call signature types for all functions (#128)

  • multiple_checks: merge helper functions _prepare_preprocessed_vars and _prepare_qc_functions into _prepare_functions (#128)

  • multiple_checks: rename helper function _validate_and_normalize_input to _normalize_input (#128)

  • multiple_checks: replace concrete dict types with Mapping in function type hints (#128)

  • new helper function auxiliary.ensure_arrays to ensure that all inputs are NumPy arrays and to increase test coverage (#128)

  • new marine_qc data types: ScalarNumberType, SequenceNumberType and ValueNumberType (#128)

  • remove cdm_reader_mapper.DataBundle-related tests (#139, #146)

  • update testing suite to cover warnings (#148, #149)

  • add unit test for external_clim and increase test coverage (#17, #154)

0.3.0 (2026-03-06)

See 0.3.1

0.2.0 (2025-10-21)

Contributors to this version: Ludwig Lierhammer (@ludwiglierhammer)

Announcements

  • First release on zenodo (#66)

0.1.0 (2025-10-21)

Contributors to this version: Ludwig Lierhammer (@ludwiglierhammer), John Kennedy (@jjk-code-otter) and Trevor James Smith (@Zeitsperre)

Announcements

CI changes

  • Use cruft and cookicutter template https://github.com/Ouranosinc/cookiecutter-pypackage (#13, #30, #55)

New features and enhancements

  • do_night_check: reverse do_day_check (#21)

  • Added documentation (#4, #11, #12)

  • Added get_value_fast for extracting values from climatologies (#24)

  • Added mds_lat_to_yindex_fast for extracting values from climatologies (#24)

  • Added mds_lon_to_xindex_fast for extracting values from climatologies (#24)

  • Implement plotting routines for QC outcomes (#24):

    • marine_qc.plot_qc_outcomes.latitude_variable_plot: Plot a graph of points showing the latitude and value of a set of observations coloured according to the QC outcomes.

    • marine_qc.plot_qc_outcomes.latitude_longitude_plot: Plot a graph of points showing the latitude and longitude of a set of observations coloured according to the QC outcomes.

  • decorator post_formt_return_type has new parameters (#24):

    • dtype: Desired data type of the result. Default is int.

    • multiple: If True, assumes the function returns a sequence of results (e.g., a tuple), and applies format_return_type to each element individually.

  • Both do_bayesian_buddy_check and do_mds_buddy_check allow a list of row numbers to be skipped (ignore_index) (#24).

Internal changes

  • Remove both jupyter notebook specific (nbqa-pyupgrade, nbqa-black, nbqa-isort, nbstripout) and json-related (pretty-format-json) pre-commit hooks (#7)

  • Replace assert statements with if statement raising error messages (#7)

  • Split some try statements into single if statements giving warnings (#7)

  • Fixing some typos in docstrings and comments (#7)

  • Improved unit test coverage (#9)

  • combine time_control.day_in_year and time_control.dayinyear to time_control.day_in_year (#9)

  • new function time_control.valid_month_day to validate month and day information (#9)

  • extract daytime check from do_day_check and do_night_check (#21)

  • vectorised many of the QC checks to speed up processing on large datasets (#24)

  • moved to using pyproj for spherical geometry calculations (#24)

  • removed dependence on old Climatology class (#24)

  • utility functions moved from qc_sequential_reports to track_check_utils (#24)