Release 5.0.4
ODS_Tools Changelog - 5.0.4
- #238 - added oed test file generator
- #257 - enhancement/perf quantile loss sampling
- #262 - Deprecation from logger.warn -> logger.warning
- #265 - Add 'rl' perspective to model_settings_schema enums (#1495)
ODS_Tools Notes
Add OED test data generator CLI command
Add a new ods_tools generate CLI command that produces synthetic OED test data files
Loc, Acc, ReinsInfo, ReinsScope) from a JSON configuration. The generator creates files
with referential integrity across all four OED file types and supports configurable
portfolio structure, field selection, financial terms, and output format (csv/parquet).
Changes:
- ods_tools/oed/oed_generator.py — New module containing OEDFileGenerator and
DataGenerator classes that produce synthetic OED data driven by a JSON config. Schema
loading updated to use the existing OedSchema class. - ods_tools/main.py — Registered the generate subcommand with options: --config,
--output-dir, --format, --example-config, --list-versions, --list-fields, --oed-version. - tests/data/oed_generator_config.json — Example configuration file for the generator.
- README.md — Documented all CLI commands (convert, check, transform, combine, generate).
Previously only convert and transform were documented.
Usage:
ods_tools generate --config config.json --output-dir ./output
ods_tools generate --example-config > my_config.json
ods_tools generate --list-fields Loc --oed-version 4.0.0
perf: vectorised quantile loss sampling - (PR #257)
Replaces the pandas quantile_loss_sampling__summary_id with a vectorised NumPy implementation.
Benchmarks (1k SummaryIds, 10k Group Periods)
combine.combine: 22.2s → 14.0s (1.6×)combine.sampling.quantile_loss_sampling: 18.6s → 8.58s (2.2×)
QELT assumptions
The implementation requires that QELT files have every Quantile present for every EventId (shape asserted at runtime) and that LTQuantile is in increasing order (relied on implicitly by np.digitize and indexing logic).