Skip to content

Releases: OasisLMF/OasisPlatform

Release 2.4.11

17 Dec 11:09

Choose a tag to compare

Oasis Release v2.4.11

Docker Images (Platform)

Docker Images (User Interface)

Components

Changelogs

OasisPlatform Changelog - 2.4.11

  • #1307 - Update urllib3 to 2.6.0
  • #1308 - Update test for analyses_settings computation_settings merge

OasisLMF Changelog - 2.4.11

  • #1816 - very low Insurance Loss values for portfolio with account level terms on version 2.4
  • #1818 - use acc_id and loc_id from merge and agg_id generation in fm files generation
  • #1811 - add environment variables and coerce into integers
  • #1813 - Fixed merging analyses computation_settings on the platform

Release Notes

OasisPlatform Notes

Update urllib3 to 2.6.0 - (PR #1307)

Fix for CVE-2025-66418 and CVE-2025-66471

Update test for analyses_settings computation_settings merge - (PR #1308)

OasisLMF Notes

fix IL for ptf with empty Policy layer level and account terms - (PR #1817)

Fix an issue on the prev_agg_id used for account terms for portfolio with no Policy layer level.

use proxy acc_id and loc_id instead of LocNumber, AccNumber and PortNumber to speed up FM files generation - (PR #1818)

Environment Variable Overrides for min/max_bloc_size - (PR #1811)

Add environment variables to override the min/max_bloc_size in the BasicKeyServer

Fixed merging analyses computation_settings on the platform - (PR #1813)

The computation_settings sections in analyses and model settings are not pickup and merged by the platform.
Fixed so it works the same way as MDK

Release 2.4.10

28 Nov 16:40

Choose a tag to compare

Oasis Release v2.4.10

Docker Images (Platform)

Docker Images (User Interface)

Components

Changelogs

OasisPlatform Changelog - 2.4.10

  • #1297 - Consistency with LMF oed_schema_info
  • #1300 - Fix/minikube test always pass
  • #1301 - Minikube cicd workflow
  • #1298 - Server error with OIDC due to DB tables not matching

OasisLMF Changelog - 2.4.10

  • #1793 - clearer step param help info
  • #1794 - read coverages and lossfactors functions have faulty logic for stdin
  • #1684 - Validate output OED fields against portfolio early in the model run
  • #1803 - Port blocked issues
  • #1798 - bug/summary-info files not grouping by fields from accounts file
  • #1801 - allow selection of oed backend dtype (pyarrow of numpy)
  • #1804 - Build_merge accepts only csv arguments
  • #1800 - bug/BIPOIType and BIWaitingPeriodType loaded incorrectly

ODS_Tools Changelog - 4.0.5

  • #209 - acceptance conditions for oed_schema
  • #210 - support pyarrow backend dtype
  • #212 - feature/allow additional fields dtypes in oed exposure
  • #214 - Ci fix custom oed schema

Release Notes

OasisPlatform Notes

Fix server error - keycloak non staff user - (PR #1303)

Fixes #1298

OasisLMF Notes

Fix read coverages and lossfactors functions for stdin - (PR #1795)

Currently these functions wrongly check for an existing file before reading data, even when stdin is selected. Refactors functions to avoid this happening

Feature/analysis_settings_oed_fields_check - (PR #1796)

adds prelim check to GenerateFiles to check if oed_fields in analysis_settings are valid
Tries to solve OasisLMF/OasisLMF#1684

fix/summary-info files not merging on acc file fields - (PR #1799)

  • fix issue with merging acc_idx when generating summary-info in input generation

Add parameter oed_backend_dtype to allow selection of dtype when loading OED - (PR #1801)

Pandas now support two types of backend when loading csv files, pyarrow and numpy. this PR allow users to select which backend dtype ODS_tools should use

fix type of BIWaitingPeriodType and BIPOIType - (PR #1805)

ODS_Tools Notes

support pyarrow backend dtype - (PR #210)

Allow user to select pyarrow dtype as a backend when loading an exposure.

feature/allow additional fields dtypes in oed exposure - (PR #213)

  • adds additional_fields parameter to OedExposure which can load non OED fields with the provided dtype

CI fix - load in Custom OED spec - (PR #214)

  • Fixed issue where CI failed when testing package from OED-exposure branch
  • Fixed Rate limit when building ods-tools from github actions

Release 2.4.9

07 Nov 16:09

Choose a tag to compare

Oasis Release v2.4.9

Docker Images (Platform)

Docker Images (User Interface)

Components

Changelogs

OasisPlatform Changelog - 2.4.9

OasisLMF Changelog - 2.4.9

  • #1775 - Fix: Giving df engine to exposure
  • #1781 - Choice of OED schema
  • #1782 - Revamp/il by level
  • #8 - PiWind model run issues
  • #1784 - CI fix pip-comple error
  • #1785 - Lookup arg 'complex_lookup_config_fp' has unexpected value

ODS_Tools Changelog - 4.0.4

  • #197 - RE: Config option for "engine" not propagating to Oasis Data Manager for pd read/write causing critical performance issues
  • #200 - Added valid_pla_loss_factors_ids to event set options #199
  • #201 - Fix CI build script for ODM branch select
  • #202 - OEDSchema choice
  • #8 - Parquet OED ReinsScope incorrectly fail validation
  • #205 - Fix CI testing by pinning pip
  • #206 - make nb_peril_groups_dict more friendly with numba caching function
  • #207 - remove unused param

Release Notes

OasisPlatform Notes

Fix/1240 refactor celery error handler - (PR #1282)

Removed celery_request_handler from V2 workers and check_worker_lost from V1 workers, replacing both with a single OasisWorkerTask that performs the same role.

Added a pre-task check to detect if a worker died while processing a task, which triggers a retry. Once the maximum number of retries has been exceeded, the analysis is aborted.

feature/enable celery optimisation flags - (PR #1283)

enables the following flags:

  • OASIS_CELERY_WORKER_MAX_MEMORY_PER_CHILD: worker_max_tasks_per_child
  • OASIS_CELERY_MAX_TASKS_PER_CHILD: worker_max_memory_per_child

update django CVE-2025-59681 - (PR #1284)

  • updated to django 5.2.7

fix/slow_pythonapi_tests - (PR #1289)

Python api unittests are much slower after the 2.4.7 release, specifically the django 5 PR. They take ~1hr to run rather than ~20min. There is no one specific test that is slow, rather a large number of tests take longer to run each example via hypothesis. This PR aims to fix the slow runtime.

Fixes for CI - (PR #1291)

  • fixed mount point for postgres
  • fixed pip-compile error

schema choice in platform - (PR #1293)

Goes with OasisLMF/ODS_Tools#203

the default schema version is set via the oasislmf package configuration option oed_schema_info

This can be overridden on a container by setting the environment variable OASIS_OED_SCHEMA_VERSION={OED-version} (either workers or server images)

Django update - (PR #1294)

OasisLMF Notes

rewrite insurance loss fm file generation to process level one at a time - (PR #1782)

  • write il fm file one level at a time to reduce memory consumption and improve performance
  • fix a rare issue on fmpy layer calculation where extra info for min and max deductible were incorrect when setting new layers

part of work needed for #1082

adds option to check analysis_settings for join_summary_info - (PR #1783)

Allows join_summary_info via analysis_settings.json as well as the previous oasislmf.json file.

CI fix pip-comple error - (PR #1784)

Fixed bug when loading complex_lookup_config_fp - (PR #1790)

See: OasisLMF/OasisLMF#1785

ODS_Tools Notes

Fix CI build script for ODM branch select - (PR #201)

Add input for ODM github ref when testing ODS-tools

Join Summary Info - (PR #204)

Adds option to analysis settings to allow users to set the join_summary_info field.

speed up peril filtering by making nb_peril_groups_dict more friendly with numba caching function - (PR #206)

peril filtering is used for example in fm file generation. By using this implementation, the jitted function is better cached and will be faster once it has been run one.

Release 2.3.19

07 Nov 16:27

Choose a tag to compare

Oasis Release v2.3.19

Docker Images (Platform)

Docker Images (User Interface)

Components

Changelogs

OasisPlatform Changelog - 2.3.19

  • #1250 - Fix/CVE aug 2025 2.3.x
  • #1280 - Backport - Azure Service Principal for Postgres SQL authentication (2.3.x)
  • #1291 - Fixes for CI
  • #1169 - Azure Service Principal for Postgres SQL authentication -
  • #1170 - Azure Service Principal for Postgres SQL authentication - (#1169)

OasisLMF Changelog - 2.3.19

  • #1784 - CI fix pip-comple error
  • #1776 - fix simple step policies
  • #1788 - bypass amplification.bin load in pla when uniform factor is provided (backport)

Release Notes

OasisPlatform Notes

Updated packages for CVE issues - (PR #1250)

  • Updated pinned packages in requirements.in and requirements.txt files

Backport - Azure Service Principal for Postgres SQL authentication - (#1169) - (PR #1286)

See #1169

Fixes for CI - (PR #1291)

  • fixed mount point for postgres
  • fixed pip-compile error

OasisLMF Notes

CI fix pip-comple error - (PR #1784)

fix simple step policies - (PR #1776)

Fix an issue in need_account_aggregation step that remove step id from the aggregation key thus removing step policies.

bypass amplification.bin load in post loss amplification when uniform factor is provided - (PR #1788)

When a uniform factor is provided, amplification.bin load is not needed. This PR remove this step and allow user to provide a uniform factor without the need to create the amplification.bin file

Release 2.4.8

25 Sep 14:19

Choose a tag to compare

Oasis Release v2.4.8

Docker Images (Platform)

Docker Images (User Interface)

Components

Changelogs

OasisPlatform Changelog - 2.4.8

  • #1242 - Progress bar in platform with websocket
  • #1267 - Issue in worker monitor V2 - 2.4.7
  • #1266 - Error extracting sub-task celery ids in 2.4.7
  • #1264 - Check for scaling config = None in V1 models
  • #1273 - Update Django CVE-2025-57833
  • #1265 - Django 5 + connection pooling fails with MySQL 8.0
  • #652 - Oasis UI - idle session crash
  • #1278 - Fixed OAuth2 redirects

OasisLMF Changelog - 2.4.8

  • #1762 - adds check for full data buffer with read_buffer functions for fm and…
  • #1763 - Add areaperil_id filter for FootprintParquet
  • #1765, #1766 - Enhancement/add settings to lookup and hooks
  • #1768 - trailing slash missing for settings_template endpoint
  • #1769 - Port eve to pytools
  • #1771 - add cyber perils to hardcoded AA1 list of perils
  • #1773 - Fix: websocket does not support context manager
  • #1747 - Progress bar

ODS_Tools Changelog - 4.0.3

  • #191 - OED validation does not correctly handle spaces in numeric columns
  • #193 - Feature/validation progress
  • #196 - Add tqdm to requirements.in

Release Notes

OasisPlatform Notes

Fix timezone import - (PR #1270)

Fixes issue #1267

fix error extracting sub-task celery ids in 2.4.7 - (PR #1271)

  • improve update_all_task_ids function to handle nested celery chain structure

Fix running migrated models with missing scaling options - (PR #1272)

Fixes #1264

Fix CVE-2025-57833 - (PR #1273)

  • update Django for security patch

Fixed mysql DB settings - (PR #1274)

Fixed UI timeout issue - (PR #1275)

Fixed OAuth2 redirects - (PR #1278)

Django 4.0 plus has stricter cross-origin Policies which cause the swagger authentication to fail.
See https://docs.djangoproject.com/en/5.2/releases/4.0/#requests-and-responses

OasisLMF Notes

Bug fix for fm and gul bintocsv - (PR #1762)

There was no check for full data buffer which causes idx out of range error.

Add areaperil_id filter for FootprintParquet - (PR #1763)

Add areaperil_id filter when querying data from FootprintParquet. This is help reduce the data transfer needed when using parquet over S3.

add settings information to lookup and hooks - (PR #1764)

  • make settings information available in lookup and hooks.

  • use OasisDataManager in Built-in lookup.

fix/trailing slash missing for setting_templatesendpoint - (PR #1767)

  • trailing slash missing when no ID provided
  • add tests to check for trailing slash

feature/evepy - (PR #1770)

  • Implement eve in python as a new cli tool evepy
  • Maintains the same behaviour as eve with a round robin shuffle by default and the following command line options:
    • -n : no shuffle
    • -r : randomise using Fisher Yates algorithm and stream output whilst randomising
    • -R: randomise using builtin shuffle

Also support input and output file selection using the -i and -o flags respectively.

add cyber perils to hardcoded AA1 list of perils - (PR #1771)

Allow exposure run to work without the need to specify cyber perils in --model-perils-covered

ODS_Tools Notes

fix/handle empty strings - (PR #192)

  • handle spaces in columns with numeric dtypes

add progress bar to validation steps - (PR #193)

Add tqdm to requirements.in - (PR #196)

New package needed for OasisLMF/ODS_Tools#193, added to package requirements

Release 2.4.7

01 Sep 17:12

Choose a tag to compare

Oasis Release v2.4.7

Docker Images (Platform)

Docker Images (User Interface)

Components

Changelogs

OasisPlatform Changelog - 2.4.7

  • #1257 - settings template causes internal server errors
  • #1249 - Fix/CVE aug 2025 2.4.x
  • #1247 - Test older server images with latest build of workers (both V1 / V2)
  • #1209, #1132 - Update server to Django 5 to support DB connection pools

OasisLMF Changelog - 2.4.7

  • #1706 - improve BI calculations based on duration of interruption
  • #1749 - PLA amplification file should not be required when uniform factor is given
  • #1758 - add analysis settings template endpoint to platform_api
  • #1737 - pytools output cli should support pipe operations ( | , < , > )

Release Notes

OasisPlatform Notes

fix/analysis settings template _ns_update - (PR #1256)

  • retrieving analysis settings template causes internal server error due to lack of _ns_update method in SettingsTemplate but doing this _ns_update is not necessary for requests that arrive at SettingsTemplate

Updated packages for CVE issues - (PR #1249)

  • Updated pinned packages in requirements.in and requirements.txt files

CI check for server compatibility breaks within a stable version (2.4.x) - (PR #1251)

Added CI check for minimum server supported by currently published worker.
Goal is to not break compatibility with this minimum server version (within stable/2.4.x)

  • set to 2.4.4

Update server to Django 5 to support DB connection pools - (PR #1255)

  • Updated Django to 5.1
  • Added options to enable DB connection pooling for the Django server requests (not celery)

note: for pooling to work, psycopg2 needs to be swapped with psycopg3. This can be done using the connection DB strings OASIS_CELERY_DB_ENGINE: db+postgresql+psycopg2 --> OASIS_CELERY_DB_ENGINE: db+postgresql

Both psycopg2 and psycopg3 are included in the base images for backwards compatibility

New Environment variables

There are two options

persistent database connections

Persistent connections, keep database connections open for a specified duration rather than opening and closing them for each request, reducing the overhead of connection establishment. However, persistent connections are tied to individual worker processes and can lead to connection sprawl in multi-process deployments, potentially exhausting database connection limits.

  • DB_CONN_MAX_AGE - Maximum age in seconds for persistent database connections (set to 0 when pooling is enabled)
  • DB_CONN_HEALTH_CHECKS - Enable health checks on database connections to verify they're still valid before use
  • DB_DISABLE_SERVER_SIDE_CURSORS - Disable server-side cursors for PostgreSQL to use client-side cursors instead
connection pooling

Connection pooling, maintains a shared pool of reusable connections that can be efficiently distributed across requests and worker processes. This approach provides better resource management, prevents connection exhaustion, and offers more granular control over connection lifecycle through parameters like minimum/maximum pool sizes and connection timeouts. The two approaches are mutually exclusive.

  • DB_POOL_ENABLE - Enable Django's native connection pooling (Django 5.1+) instead of persistent connections
  • DB_POOL_MIN_SIZE - Minimum number of connections to maintain in the connection pool
  • DB_POOL_MAX_SIZE - Maximum number of connections allowed in the connection pool
  • DB_POOL_TIMEOUT - Maximum time in seconds to wait for an available connection from the pool
  • DB_POOL_MAX_LIFETIME - Maximum lifetime in seconds for a connection before it's replaced
  • DB_POOL_MAX_IDLE - Maximum time in seconds a connection can remain idle in the pool before being closed

OasisLMF Notes

feature/BI improvement - fmp - (PR #1745)

A new fm level SiteItem applies BIWaitingPeriod and BIPOI (period of indemnity).

  • This new level is applied before the SiteCoverage level.
  • Output loss from this level is calculated as output_loss = min(input_loss - BIWaitingPeriod, BIPOI).
  • For multi peril the terms are in accordance with the alloc_rule_il, by default allocation will occur proportional to the input loss.

bypass amplification.bin load in post loss amplification when uniform factor is provided - (PR #1756)

When a uniform factor is provided, amplification.bin load is not needed. This PR remove this step and allow user to provide a uniform factor without the need to create the amplification.bin file

add settings template endpoint to api client - (PR #1757)

  • add a interface for the /models/{model_pk}/setting_templates/ to the platform api client

adds stdin functionality for eltpy and pltpy - (PR #1751)

can use pipe operations for input summary files

Current command example

eltpy -E csv -i summary.bin -s selt.csv -m melt.csv -q qelt.csv

What is now possible

eltpy -E csv -i - -s selt.csv -m melt.csv -q qelt.csv < summary.bin  # Use '-' as placeholder for stdin
eltpy -E csv -s selt.csv -m melt.csv -q qelt.csv < summary.bin  # Pipe in without placeholder
cat summary.bin | eltpy -E -i - csv -s selt.csv -m melt.csv -q qelt.csv  # Use '-' as placeholder for stdin
cat summary.bin | eltpy -E csv -s selt.csv -m melt.csv -q qelt.csv  # Pipe in without placeholder

Release 2.3.18

29 Aug 11:51
7810ddf

Choose a tag to compare

Oasis Release v2.3.18

Docker Images (Platform)

Docker Images (User Interface)

Components

Changelogs

OasisPlatform Changelog - 2.3.18

  • #1257 - settings template causes internal server errors

  • #1250 - Fix/CVE aug 2025 2.3.x

  • #1247 - Test older server images with latest build of workers (both V1 / V2)

  • #1752 - Port/pandas 2.2.0 fix (backport 2.3.x)

Release Notes

OasisPlatform Notes

fix/analysis settings template _ns_update - (PR #1256)

  • retrieving analysis settings template causes internal server error due to lack of _ns_update method in SettingsTemplate but doing this _ns_update is not necessary for requests that arrive at SettingsTemplate

Updated packages for CVE issues - (PR #1250)

  • Updated pinned packages in requirements.in and requirements.txt files

CI check for server compatibility breaks within a stable version (2.3.x) - (PR #1252)

Added CI check for minimum server supported by currently published worker.
Goal is to not break compatibility with this minimum server version (within stable/2.3.x)

  • set to 2.3.2

OasisLMF Notes

Make OasisLMF compatible with pandas > 2.2 - (PR #1752)

In pandas 2.2, the ordering of merge operation is different from the one in 2.1. This leads to error in our test suite. Those error are actually red hearing because the result themselves are still correct.
This PR adapt the code to give the same result between the two versions.

Release 1.28.15

29 Aug 11:48

Choose a tag to compare

Oasis Release v1.28.15

Docker Images (Platform)

Docker Images (User Interface)

Components

Changelogs

OasisPlatform Changelog - 1.28.15

  • #1244 - CVE fix request for stable 1.28.x
  • #1247 - Test older server images with latest build of workers (both V1 / V2)

Release Notes

OasisPlatform Notes

Updated packages for CVE issues - (PR #1245)

  • Updated pinned packages in requirements.in and requirements.txt files

CI check for server compatibility breaks within a stable version (1.28.x) - (PR #1253)

Added CI check for minimum server supported by currently published worker.
Goal is to not break compatibility with this minimum server version (within stable/1.28.x)

  • set to 1.28.0

Release 2.4.6

04 Aug 12:21

Choose a tag to compare

Oasis Release v2.4.6

Docker Images (Platform)

Docker Images (User Interface)

Components

Changelogs

OasisPlatform Changelog - 2.4.6

  • #1232 - Tests fixes/new
  • #1231 - Missing file extension errors portfolio validation
  • #1233 - Key for v1 runs without analyses settings file
  • #1083 - Add override environment variable to load new oasislmf version on startup
  • #1238 - S3 object storage broken in model worker
  • #1243 - update upload to v3

OasisLMF Changelog - 2.4.6

  • #1733 - remove top level duplicate before xref merge to avoid massive cartesian product
  • #1736 - support pyarrow backend in pandas
  • #1626 - Multiprocessing error in lookup
  • #1657 - Add configurable logging levels to package
  • #1706 - improve BI calculations based on duration of interruption
  • #1661 - bintocsv/csvtobin for ktools and new pytools outputs

Release Notes

OasisPlatform Notes

Fix for v1 generate_inputs without settings file. - (PR #1235)

Fix for #1233

Added Env variables to override oasis python packages on start-up - (PR #1237)

Workers can update the following three packages by setting the following environment variables.

  • OASIS_OASISLMF_VERSION=<valid-version> ~ updates the 'oasislmf' python package
  • OASIS_ODS_VERSION=<valid-version> ~ updates the 'ods-tools' python package
  • OASIS_ODM_VERSION=<valid-version> ~ updates the 'oasis-data-manager' python package

Update ODM to fix S3 error - (PR #1239)

Fixes #1238 configuration issue caused S3 on EC2 instances to connect as anon

CI fix - uploading found vulnerabilities to github - (PR #1243)

fixes the following issue:

Error: CodeQL Action major versions v1 and v2 have been deprecated. Please update all occurrences of the CodeQL Action in your workflow files to v3. For more information, see https://github.blog/changelog/2025-01-10-code-scanning-codeql-action-v2-is-now-deprecated/

OasisLMF Notes

fix get_xref_df memory consumption issue - (PR #1733)

remove duplicated lines representing the top fm level to avoid issue with memory consumption due to cartesian product of those duplicated lines.
This product happens for each policy layer account that had no term creating OOM error in big empty account exposure

support pyarrow backend in pandas - (PR #1736)

adapt mdk file preparation to support pandas dataframe created using pyarrow backend

support for mac m2 in lookup multiprocessing - (PR #1740)

Apply suggested change to support mac m2 architecture in multiprocessing lookup.

  • use multiprocessing.get_context("fork") to create a context object that will create the queue and process
  • make target function module function instead of static method to avoid pickle error.

Configurable Logging Levels and Enhanced Formats - (PR #1741)

Add comprehensive logging configuration system with support for DEBUG, INFO, WARNING, ERROR, and CRITICAL levels. Includes multiple format templates, configuration via CLI arguments, environment variables, and JSON config files. Maintains full backward compatibility with existing --verbose flag (now deprecated with helpful migration guidance).

New Features:

  • Configurable log levels: --log-level=DEBUG|INFO|WARNING|ERROR|CRITICAL
  • Format templates: --log-format=simple|standard|detailed|iso_timestamp|production|compact
  • Environment variable support: OASISLMF_LOG_LEVEL
  • JSON configuration under logging section
  • Enhanced timestamps with ISO format and process ID support

Backward Compatibility:

  • Existing --verbose flag continues to work with deprecation warning
  • All existing logger names and patterns preserved
  • Zero breaking changes to existing workflows

Migration:

  • Replace --verbose with --log-level=DEBUG for future compatibility

feature/bi improvement - (PR #1721)

  • introduce a damage_type field in damage_bin_dict which supports the following bin types:
    • 1 : relative
      • bins describe a factor which is applied to the TIV during the loss calculation.
    • 2 : absolute
      • bins describe an absolute damage which is used in the loss calculation, the TIV is not used at all.
    • 3 : duration
      • bins define the number of days of interruption. The loss is calculated by multiplying the sampled days by the daily loss (calculated as the tiv / 365).
  • by default the previous behaviour is preserved where relative type is used if the largest bin_to < 1 and absolute type is used if the largest bin_to > 1

csv to bin and bin to csv conversion tools - (PR #1693)

For ktools input file conversion tools
Also includes new conversion tools for pytools outputs, including parquet to bin and bin to parquet

adds 4 new cli commands:

  • bintocsv
  • csvtobin
  • bintoparquet
  • parquettobin

removes and moves following cli commands to above cli commands:

  • correlationstobin
  • correlationstocsv
  • complex_itemtobin
  • complex_itemtocsv

Run the following to see supported file/data types

<conversion_tool> -h

Then run the following to see argument options for specific data types

<conversion_tool> <file/data_type> -h

Release 2.4.5

26 Jun 17:32

Choose a tag to compare

Oasis Release v2.4.5

Docker Images (Platform)

Docker Images (User Interface)

Components

Changelogs

OasisPlatform Changelog - 2.4.5

  • #1220 - Bugfix- errors not JSON serializable
  • #1212 - Validation on internal worker
  • #1219 - Transformation Endpoint

OasisLMF Changelog - 2.4.5

  • #1729 - Combus type fix
  • #1724 - add oed group fields to summary report
  • #1731 - Update README minimum python version to 3.9
  • #1699 - Error when requesting only ground-up losses by AccName
  • #1707 - Dynamic footprint - confluences
  • #1688 - Type 2 losses increasing differences when including secondary perils
  • #1713 - add forgotten fm test unit
  • #1715 - fix/lecpy bin tests assert equality with rounding
  • #1466 - Pandas 2.2.0 and up generates inconsistent results
  • #1714, #1711 - fix level_id when an extra account level is needed
  • #1718 - remove empty cdf bin
  • #1691 - Added disaggregated locations info to exposure summary
  • #1723 - use pd explode to split peril covered columns

ODS_Tools Changelog - 4.0.2

  • #185 - Reworked ODTF
  • #187 - Change of pol number swap
  • #188 - add summary_report_fields to model settings
  • #182 - Missleading description for numeric_parameters

Release Notes

OasisPlatform Notes

Validation on worker fix - (PR #1220)

Errors cannot be JSON serialized so cannot be passed between workers.

ODS Validation on internal worker - (PR #1212)

... See issue #1184

Endpoint for exposure transform - (PR #1219)

Endpoint to allow transform from oed<->air
Issue #1031

OasisLMF Notes

FIX: type inconsistencies when using pytools and ktools with 8 byte flags - (PR #1729)

Fix multiple inconsistencies between KTools and OasisLMF when using user defined types
specifically areaperil_int=u8 and oasis_float=u8 (required for the COMBUS models).

Also highlighted potential areas of inconsistencies. Alot of these types have been caught
in a bug driven manner but we hope with this final review and expanded internal testing
the last have them have been squashed.

However in the interest of completeness, would it be possible to request that user defined
types are tested as part of the oasis test suite. This would cover changes in oasis_int (which
we dont test or modify) and prevent future development of from introducing bugs.

This can treated separately in a future issue at your convenience.

feature/addional oed fields in summary report - (PR #1730)

  • currently the summary_report only provides a reports based on peril
  • add a model_settings parameter summary_report_fields which allows for additional OED exposure fields in the summary report

Python version change from 3.8 to 3.9 - (PR #1731)

update to readme to specify Python 3.9

Python 3.8 only supports numba up to 0.58.1. v0.60.0 required in oasislmf now

fix/running gul with account file oed fields - (PR #1702)

fixed bug where running gul_summaries with an oed field from the accounts file without il outputs crashed the run

Release notes - (PR #1708)

When creating a footprint dynamically, it's important to consider that areaperil_ids can appear in more than one section_id (for example, due to confluences in flood models). In these cases, the maximum intensity (flood depth) should be used in the footprint.

  • Allow for multiple section_id values per row in keys
  • During dynamic footprint creation, the maximum intensity is used when a location appears in multiple section_ids in an event

fix the loss for sidx 1 and 2 for alloc rule 2 - (PR #1712)

When using alloc rule 2, the function that modify the loss to be only coming from the perils that give the max loss (setmaxloss), was not applied to sidx 1 and 2.
This PR will fix this issue.

fix/lecpy bin tests assert equality with rounding - (PR #1715)

  • comparing bytes of binary files does not account for rounding
  • loads bin files as dataframes instead to confirm equality

Make OasisLMF compatible with pandas > 2.2 - (PR #1716)

In pandas 2.2, the ordering of merge operation is different from the one in 2.1. This leads to error in our test suite. Those error are actually red hearing because the result themselves are still correct.
This PR adapt the code to give the same result between the two versions.

Fix issue with invalid level id value when pass-through policy layer is needed for top level agggregation - (PR #1717)

In order to support the correct value for fm a1 allocation rule, some portfolio need an extra pass-through level to aggregate all location into one agg_id. In this case the level_id was incorrect leading to a KeyError in the financial module in the create-financial-structure-files step.
Also fix an issue with optional TIV columns

fix issue in gul calulation leading to np.inf loss - (PR #1718)

inf loss in the gul loss calculation hapend when the probability of the bin is 0, Normally this doesn't happen because the bin wouldn't be selected if the prob is 0.
However when it is the right side of the cdf, this is not guaranteed, particularly if the final probability is less that 1.
To remedy that, this fix remove the all the bin in the right end side of cdf that have a probability of 0.

feature/add number of disaggregated buildings and risks to exposure summary json - (PR #1722)

  • exposure_summary_report.json now has these additional fields:
    • number_of_buildings - # locations disaggregated to the building level
    • number_of_risks - # locations disaggregated to the risk level (buildings are a single risk if IsAggregate is 0)

small performance improvement for builtin lookup function split_loc_perils_covered - (PR #1723)

use pd explode function instead of pd series stack() and drop level to split the peril columns into multiple peril lines.
Test on Piwind full portfolio shows that the key file generation go from around 1.8 s to 0.9 s

ODS_Tools Notes

ODTF Transform Rework - (PR #185)

  • Config file simplified
  • Config file supports local paths (#149 )
  • Config class removed for simplicity
  • Mapper simplified
  • Mappings now represent one unique transformation: no reverse
  • Mapping file reworked: mapping and validation now together
  • Correctly mapping CEDE-OED location files for OedExposure Validation (account in progress)
  • No default mapping or validation
  • File inputs now files instead of directories
  • New example added
  • Validator simplified
  • Examples updated
  • Ability to enable logging in config file
  • CSV and SQLite support
  • Double replace transformations (e.g. country code and area name -> area code)
  • Better testing for transformations
  • Transformations can use \' for apostrophes (allows locations like St Helen's to be mapped)

Small update to the changes to let pol number be from layerid - (PR #187)

add summary_report_fields to model settings - (PR #188)

  • parameter to control additional...
Read more