Skip to content

Release 1.1.0 - #143

Merged
BerriJ merged 28 commits into
mainfrom
develop
May 12, 2026
Merged

Release 1.1.0#143
BerriJ merged 28 commits into
mainfrom
develop

Conversation

@BerriJ

@BerriJ BerriJ commented May 12, 2026

Copy link
Copy Markdown
Owner

This pull request introduces several improvements and new features across the codebase, focusing on enhancing data normalization, time zone handling, API endpoint coverage, and project metadata. The most notable changes are the robust overhaul of the normalize_to_records utility to correctly expand nested lists into multiple records, the addition of a utility for formatting ENTSO-E datetimes with proper timezone handling, and the implementation of a new API endpoint for balancing bid availability archives. Documentation and metadata have also been updated to reflect these enhancements.

Data normalization and testing improvements:

  • Refactored normalize_to_records in entsoe.utils.records to correctly handle nested lists, ensuring that all nested data is expanded into multiple records rather than dropping data. Added comprehensive unit tests in tests/test_normalize_to_records.py to cover flat dicts, nested dicts, lists, cross-joins, and field ignoring. [1] [2] [3]

Datetime and timezone utilities:

  • Added format_entsoe_datetime to entsoe.utils, which converts both timezone-aware and naive datetimes (including pandas Timestamps) to the ENTSO-E API integer format, assuming UTC for naive datetimes. Updated documentation and utility exports accordingly. [1] [2] [3] [4] [5]

API endpoint and parameter coverage:

  • Added support for the "Changes to Bid Availability Archives" balancing endpoint, including a new parameter class ChangesToBidAvailabilityArchives in entsoe.Balancing, updates to __init__.py exports, and a corresponding endpoint JSON definition. Updated endpoint listings in all_endpoints.json and README.md. (misc/endpoints/Balancing/IFs mFRR 9.9, aFRR 9.6&9.8 Changes to Bid Availability Archives.jsonR1-R48, [1] [2] [3] [4] [5]

Documentation and metadata updates:

  • Added and reorganized documentation for utility functions and datetime handling in docs/utilities.md and docs/examples.md. Added a CITATION.cff file for software citation metadata and a GitHub workflow to automatically update it on new tags. [1] [2] [3]

Endpoint corrections and maintenance:

  • Fixed and updated sample parameters and values in several endpoint JSON files for accuracy and consistency, including the removal of unused parameters and corrections to process types and domain codes. [1] [2] [3] [4]

BerriJ and others added 26 commits April 2, 2026 05:31
Handle time zones and expose format_entsoe_datetime to user as helper function
…elements within a time_series entry

Until now I did not discover nested elements within a time_series entry but the ProductionAndGenerationUnits endpoint returns those.
This change may increase the number of rows and columns for existing queries but its absolutely necessary for not silently dropping data.
Endpoints like Load and EnergyPrices are not affected as they do not have nested structures in the `time_series` objects.
Copilot AI review requested due to automatic review settings May 12, 2026 07:21

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR prepares the 1.1.0 release by improving record normalization (correct nested-list expansion), adding a timezone-aware ENTSO-E datetime formatter utility, and expanding Balancing endpoint coverage (including archived “Changes to Bid Availability” support). It also updates endpoint metadata/docs and adds citation metadata automation.

Changes:

  • Refactors normalize_to_records to cross-join/expand nested lists correctly and adds comprehensive unit tests.
  • Adds format_entsoe_datetime with UTC normalization for tz-aware datetimes and exports/documents it.
  • Introduces a new Balancing parameter class + endpoint JSON for “Changes to Bid Availability Archives”, plus metadata/docs updates.

Reviewed changes

Copilot reviewed 15 out of 15 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
tests/test_normalize_to_records.py Adds regression and feature tests for nested list expansion and cross-joins.
src/entsoe/utils/utils.py Updates format_entsoe_datetime to handle tz-aware datetimes (convert to UTC).
src/entsoe/utils/records.py Refactors normalization logic to collect expansions and perform cross-joins.
src/entsoe/utils/init.py Exposes format_entsoe_datetime via entsoe.utils.
src/entsoe/Balancing/specific_params.py Adds ChangesToBidAvailabilityArchives parameter class.
src/entsoe/Balancing/init.py Exports ChangesToBidAvailabilityArchives.
misc/endpoints/README.md Updates endpoint listing (adds archives endpoint, reorders one Load entry).
misc/endpoints/Market/11.1.B Flow Based Allocations.json Adjusts example query parameters/values.
misc/endpoints/Market/11.1 Continuous Allocations - Offered Transfer Capacity.json Removes an unused/disabled offset entry from the example.
misc/endpoints/Balancing/IFs mFRR 9.9, aFRR 9.6&9.8 Changes to Bid Availability Archives.json Adds new endpoint definition JSON for the archives variant.
misc/endpoints/all_endpoints.json Adds the new Balancing archives endpoint name and reorders one Load entry.
docs/utilities.md Documents the new format_entsoe_datetime utility.
docs/examples.md Adds a datetime/timezone usage example for API calls.
CITATION.cff Adds citation metadata file.
.github/workflows/citation-sync.yml Adds workflow intended to sync/update CITATION on tag pushes.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/entsoe/utils/utils.py Outdated
Comment thread src/entsoe/utils/utils.py
Comment thread docs/examples.md Outdated
Comment thread CITATION.cff
Comment thread .github/workflows/citation-sync.yml Outdated
@BerriJ
BerriJ merged commit 61c8a5e into main May 12, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants