Skip to content

2.7.0

Latest

Choose a tag to compare

@stephenholleran stephenholleran released this 14 May 15:32
d80baac

Below is an extract from the CHANGELOG file showing all the updates for this release.


[2.7.0]

14-May-2026

New Features and Enhancements

  1. Updated apply_cleaning_rules() to support nested boolean conditions (and/or/not) inside the conditions block and a new optional time_range_conditions block on cleaning rules, in line with the updated BrightHub /measurement-locations/{uuid}/cleaning-rules API response. Existing flat-condition cleaning rule files continue to work unchanged. The new measurement_point_uuid and statistic_type_id fields on conditions and clean_out items are accepted but currently ignored — column resolution still relies on assembled_column_name. The cleaning_rule.schema.json was extended with a time_condition definition. (#609)
  2. Rewrote README.md and contributing.md to align with the docs site, with clearer install options (venv / conda), a quick-start example, and an expanded contributing guide covering the fork workflow, editable dev install and running the test suite. (#602)
  3. test_load_brighthub is now skipped automatically when no BrightHub credentials are available — either BRIGHTHUB_CLIENT_ID and BRIGHTHUB_CLIENT_SECRET, or the deprecated BRIGHTHUB_EMAIL and BRIGHTHUB_PASSWORD — so the test suite runs cleanly without BrightHub credentials. (#602)
  4. Added support for reading Parquet files from BrightHub in LoadBrightHub.get_data() via a new file_extension argument (one of '.csv' or '.parquet'). Default remains '.csv' for backwards compatibility; Parquet is expected to become the default in the next major release. Reading Parquet requires a parquet engine — install with pip install brightwind[parquet] (pyarrow) or pip install brightwind[parquet-fastparquet] (fastparquet). (#601)

Bug Fixes

Deprecated

  1. The implicit default of file_extension='.csv' in LoadBrightHub.get_data() is deprecated and will change to '.parquet' in the next major release. Calls that do not pass file_extension explicitly will emit a DeprecationWarning. Pass file_extension='.csv' to keep the current behaviour, or file_extension='.parquet' to opt in early. (#601)