2.4.2 (2026-06-11)
- i90: pair MW and price per quarter-hour in multi-measure sheets (06efdb6)
2.4.1 (2026-05-19)
- i90: detect separator columns dynamically by header label (1a9bf77)
- i90: detect separator columns dynamically by header label (d6c747f)
2.4.0 (2026-03-23)
- concurrent & adaptive chunk fetching for indicators (1ef2590)
2.3.0 (2026-03-16)
- restore column_name parameter in historical() (a967b6f)
- handle DST transitions in I90 datetime parsing (aa1deef)
2.2.0 (2026-03-04)
- add YAML-backed catalog with enriched indicator metadata (00cc4b6)
- update skill with catalog commands and Python-first approach (6051fb3)
2.1.0 (2026-03-04)
- add archives sheets and exec CLI commands for I90 processing (b54f94a)
- add static archives catalog (153 archives) and improve download API (22e6095)
- replace manual PyPI workflow with release-please (3c0dcb3)
- correct author email to datons.com (8e17132)
- rename release-please config to expected non-dotted filename (2f53b76)
- update archives test to match static catalog default (9bbd98b)
- lazy sheet loading in I90Book — only read sheets on demand (2dfe941)
Complete rewrite of the library with a new architecture, CLI, and caching system.
- New package structure:
from esios import ESIOSClient(wasfrom esios.client import Esios) - Indicators return wide-format DataFrames with geo names as columns (e.g.,
"España") - Archives API redesigned with
client.archives.download()
- CLI (
esios): full command-line interface withindicators,archives,cache, andconfigcommands - Multi-geo support: indicators with multiple geographies return one column per geo (e.g., España, Francia, Portugal)
--geofilter: filter by geography ID or name in both CLI and Python API- Smart caching: parquet-based cache with per-column gap detection and sparse column support
- Per-indicator directories (
{id}/data.parquet+{id}/meta.json) - Global geo registry (
geos.json) learned incrementally from API responses - Per-endpoint catalog (
catalog.json) with 24h TTL - Per-indicator metadata (
meta.json) with 7-day TTL - Auto-migration from v1 flat cache files
- Per-indicator directories (
esios exec: ad-hoc pandas expressions on indicator dataesios indicators meta: inspect indicator metadataesios cache status: Rich panel showing cache health, geos registry, and catalog infoesios cache geos: inspect the global geography registryesios config set token: store API token in~/.config/esios/config.toml- I90 processing:
I90Bookclass for parsing settlement files with automatic frequency detection - Async client:
AsyncESIOSClientfor concurrent requests - Claude Code plugin: installable skill with full domain knowledge (
/plugin marketplace add datons/python-esios)
- Automatic date-range chunking for large queries (>3 weeks)
- Atomic file writes (tempfile + rename) for cache safety
- TTL-based cache freshness: recent data (48h) re-fetched for electricity market corrections
- Geo enrichment: learns missing geo mappings from API values (e.g., indicator 600 omits Países Bajos/8828)
- Custom exceptions:
ESIOSError,AuthenticationError,APIResponseError,NetworkError
Initial release.
- Basic indicator data download
- Archive file download (I90, Liquicomun, CoefK)
- I90 preprocessing with sheet access