Skip to content

feat: ENTSO-E Transparency Platform client with day-ahead prices#8

Merged
tommed merged 4 commits intomainfrom
feat/entsoe-client
Mar 28, 2026
Merged

feat: ENTSO-E Transparency Platform client with day-ahead prices#8
tommed merged 4 commits intomainfrom
feat/entsoe-client

Conversation

@tommed
Copy link
Copy Markdown
Contributor

@tommed tommed commented Mar 28, 2026

Summary

  • Implements ENTSOEClient wrapping entsoe-py, supporting 20 bidding zones (NO1-5, SE1-4, DK1-2, FI, DE-LU, FR, BE, NL, AT, CH, GB, PL)
  • All prices returned as Decimal with a UTC-aware DatetimeIndex; HTTP errors mapped to AuthenticationError / RateLimitError / ExchangeAPIError
  • Wires CH and GB zones into NexaClient so they route to ENTSO-E automatically when an API key is configured
  • Adds entsoe-py dependency; 20 unit tests (mocked, no live calls in CI) + 4 live integration tests (skipped unless ENTSOE_API_KEY set)
  • Adds example notebook examples/entsoe_day_ahead_prices.ipynb

Test plan

  • make ci passes (lint + format + mypy + pytest) — 53 tests, 97% coverage
  • Unit tests cover: DataFrame structure, Decimal prices, UTC index conversion, date range bounds, area code mapping, all HTTP error codes (401, 403, 429, 5xx), NoMatchingDataError, unsupported zone
  • Live integration tests available but skipped in CI (require ENTSOE_API_KEY)

🤖 Generated with Claude Code

tommed and others added 3 commits March 28, 2026 16:43
Implements ENTSOEClient wrapping entsoe-py, covering 20 bidding zones
(NO1-5, SE1-4, DK1-2, FI, DE-LU, FR, BE, NL, AT, CH, GB, PL). Maps HTTP
errors to AuthenticationError/RateLimitError/ExchangeAPIError, converts all
prices to Decimal, and normalises the index to UTC. Wires CH and GB zones
into NexaClient so they route to ENTSO-E automatically. Adds 20 unit tests
(mocked) and 4 live integration tests (skipped in CI).

Also adds the entsoe-py dependency, updates pyproject.toml, CI workflow,
CLAUDE.md, README status table, and an example notebook.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@codecov
Copy link
Copy Markdown

codecov bot commented Mar 28, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@tommed tommed merged commit b58e988 into main Mar 28, 2026
2 checks passed
@tommed tommed deleted the feat/entsoe-client branch March 28, 2026 18:18
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.

1 participant