Releases: BerriJ/entsoe-apy
Release list
Release 1.2.0
Adds the new curve_type parameter of the Transparency Platform R3.20.1.1 Release to the python implementation.
A new optional Web API request parameter "curveType" is introduced, enabling users to retrieve data in A01 (Sequential fixed block) format. Requests that do not specify this parameter will continue to return data in the default A03 (Variable sized blocks) format. The parameter is available for the majority of data items, while some data items are excluded due to technical constraints. The updated Postman API documentation identifies the data items that support this feature. For more details, please refer to the CurveType specification document and the CurveType A01 vs A03 help page.
Warning
Entsoe keeps the deduplication (A03) the default behavior. We deviate from that and set (A01) as the default. So for example you will get 96 observations of Quarter-Hourly Prices per Day, even if consecutive prices may be identical.
Also adds a py.typed file to signal linters that this package is typed.
Release 1.1.1
This is a patch release updating the 12.1.F endpoint with respect to change upstream docs.
- Added a new entry for
businessTypewith valueB09(Net position) in the endpoint metadata file12.1.F Commercial Schedules - Net Positions.json. - Updated the class docstring in
CommercialSchedulesNetPositionsto document thatbusinessType: B09is now a fixed parameter. - Modified the
CommercialSchedulesNetPositionsclass initializer to always setbusiness_type="B09"for all requests.
Release 1.1.0
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.
Data normalization improvements:
- Refactored
normalize_to_recordsto correctly handle nested lists, ensuring all nested data is expanded into multiple records - Added comprehensive unit tests to prevent regressions
Datetime and timezone utilities:
- Added
format_entsoe_datetimewith proper timezone handling for both timezone-aware and naive datetimes - Automatically converts to UTC for ENTSO-E API compatibility
API endpoint coverage:
- Added support for 'Changes to Bid Availability Archives' balancing endpoint
- Updated endpoint listings and metadata
Documentation and metadata:
- Added CITATION.cff for software citation metadata
- Updated documentation for utilities and datetime handling
- Added GitHub workflow for automatic citation updates
v1.0.0
This Release targets XML parsing errors. Re-Aligns the package code to updated documentation and fixes an issue in the EIC validation.
XML Parsing
When XML parsing errors happen, we do not raise an error anymore, see #135. This is necessary to parse and return any remaining valid XML responses. Instead we:
- Print a log message on the
ERRORlevel informing about the failed parsing attempt. This message includes the query parameters and the filename so users can further investigate - Print the raw XML on the
TRACElevel so you can directly inspect the XML content
Offset Parameter
ENTSO-E removed the upper limit for the offset parameter, which was 4800 before. Now we increase the offset parameter until we receive a response that returns no data. For two endpoints, we also adjusted the offset_increment to align with the updated documentation, see #134.
EIC Validation
We do not validate EIC codes that are present in the mappings dictionary anymore, as three of them are not valid according to the checksum calculation but are accepted by API endpoints.
v0.9.2
What's Changed
This release introduces improved EIC code validation logic with more robust checks:
- Added EIC code length validation (must be 16 characters)
- Added character validation (only alphanumeric and hyphen allowed)
- Implemented checksum character verification
- Enhanced error messages for better debugging
- Fixed parameter ordering in validate_eic_code function
This addresses issue #130 and ensures better data integrity when working with EIC codes.
Full Changelog: v0.9.1...v0.9.2
Release 0.9.1: Configuration Improvements
What's Changed
Configuration
- Removed warning on package load: The package no longer emits a warning when a security token is not provided at import time. This streamlines the initialization process and avoids unnecessary log output (Fixes #127).
Full Changelog: v0.9.0...v0.9.1
Release 0.9.0: Python 3.14 Support
Release 0.8.1 - Parameter Alignment and Improvements
What's Changed
Parameter Alignment
This release fixes inconsistencies in Python classes to better align with the ENTSO-E API specification.
Balancing Endpoints
- Updated parameter names in several balancing endpoints to match API requirements:
- Changed
bidding_zone_domaintocontrol_area_domainwhere appropriate - Changed
bidding_zone_domaintoacquiring_domainorconnecting_domainfor specific endpoints
- Changed
- Fixed parameter requirements in
VolumesAndPricesOfContractedReserves - Added missing
standard_market_productparameter toCrossBorderMarginalPricesForAFRR - Corrected optional parameter handling in various balancing classes
Market Endpoints
- Updated
TotalCapacityAllocatedbusiness type from B07 to A29 - Added
auction_categoryoptional parameter support - Made
contract_market_agreement_typerequired with expanded options (A01-A08) - Fixed
ExplicitAllocationsUseTransferCapacityto support both A43 and B05 business types - Updated
ContinuousAllocationsOfferedCapacityto allow document type selection (A31 or B33)
Transmission Endpoints
- Made
contract_market_agreement_typeconfigurable forCommercialSchedules(A01 or A05) - Made
contract_market_agreement_typerequired forForecastedTransferCapacitieswith full range (A01-A04)
Configuration Improvements
- Increased default timeout: Changed from 5 seconds to 20 seconds for better reliability with slower API responses
- Python version support: Explicitly set supported Python versions to 3.11 - 3.13
Bug Fixes
- Fixed typo:
type_marketplace_agreement_type→type_marketagreement_typethroughout the codebase - Corrected parameter documentation and validation messages
- Updated test cases to reflect new parameter requirements
Full Changelog: v0.8.0...v0.8.1
Release 0.8.0 - ENTSOE API Realignment
What's New
Major Updates
This release re-aligns the package with the upstream ENTSO-E Transparency Platform API. Some endpoints had to be removed, while others were added to match the current API specification.
API Endpoint Changes
- Updated Endpoint Structure: Realigned all endpoints with the latest ENTSO-E API documentation
- New Balancing Endpoints: Added several new balancing-related endpoints as per the updated API specification
- New Transmission Endpoints: Added transmission infrastructure endpoints
- Removed Deprecated Endpoints: Removed endpoints that are no longer supported by the ENTSO-E API
- Updated XML Models: Regenerated XML models to match current API schemas
Improvements
- Enhanced Error Handling: Improved retry logic for 502 Bad Gateway responses
- Better Response Checking: Added new check-response type decorator for more robust error handling
- Updated Code Mappings: Refreshed all code enumerations to match the latest ENTSO-E specifications
- Improved Documentation: Updated endpoint documentation and export tree structure
Bug Fixes
- Fixed missing offset parameter in Outages endpoints
- Corrected FlowBasedAllocations classification
- Fixed various typing and validation issues
Maintenance
- Updated flake.nix for better development environment
- Improved code quality with ruff style fixes
- Enhanced test coverage
Breaking Changes
Full Changelog: v0.7.0...v0.8.0
Release 0.7.0 - Rate Limiting Support
What's New
Rate Limiting
- Added rate_limit decorator: Automatically enforces rate limits to prevent API throttling (380 calls per minute)
- Added check_if_banned decorator: Handles 429 responses from the ENTSO-E API with improved error messages
- Better error handling: Extracts meaningful error messages from HTML responses
Improvements
- Enhanced logging: Added comprehensive logging to rate limiting decorators for better debugging
- Millisecond precision: Logs now show timestamps with millisecond precision
- Comprehensive test coverage: Added extensive tests for rate limiting and ban detection
Bug Fixes
- Fixed import statements and docstrings based on code review feedback
Contributors
Thanks to all contributors who helped make this release possible!
Full Changelog: v0.6.1...v0.7.0