Releases: OasisLMF/OasisPlatform
Release 2.4.11
Oasis Release v2.4.11
Docker Images (Platform)
- coreoasis/api_server:2.4.11
- coreoasis/model_worker:2.4.11
- coreoasis/model_worker:2.4.11-debian
- coreoasis/piwind_worker:2.4.11
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)
- testing update needed for OasisLMF/OasisLMF#1813
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
Oasis Release v2.4.10
Docker Images (Platform)
- coreoasis/api_server:2.4.10
- coreoasis/model_worker:2.4.10
- coreoasis/model_worker:2.4.10-debian
- coreoasis/piwind_worker:2.4.10
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/
BIPOITypeandBIWaitingPeriodTypeloaded 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_idxwhen 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_fieldsparameter toOedExposurewhich 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
Oasis Release v2.4.9
Docker Images (Platform)
- coreoasis/api_server:2.4.9
- coreoasis/model_worker:2.4.9
- coreoasis/model_worker:2.4.9-debian
- coreoasis/piwind_worker:2.4.9
Docker Images (User Interface)
Components
Changelogs
OasisPlatform Changelog - 2.4.9
- #1240 - Add task redelivery check to V1 workers
- #1276 - Zombie celery processes or memory building up in worker.
- #1284 - update django CVE-2025-59681
- #1269 - python unit testing takes 1h
- #1291 - Fixes for CI
- #1293 - Enhancement/oed schema version
- #1294 - CVE-2025-64458
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_childOASIS_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)
- fix for CVE-2025-64458
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)
- Pinned pip package on failing test
- Fixed PostgreSQL docker image mount
- OasisLMF/OasisPiWind#198
Fixed bug when loading complex_lookup_config_fp - (PR #1790)
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
Oasis Release v2.3.19
Docker Images (Platform)
- coreoasis/api_server:2.3.19
- coreoasis/model_worker:2.3.19
- coreoasis/model_worker:2.3.19-debian
- coreoasis/piwind_worker:2.3.19
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)
- Pinned pip package on failing test
- Fixed PostgreSQL docker image mount
- OasisLMF/OasisPiWind#198
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
Oasis Release v2.4.8
Docker Images (Platform)
- coreoasis/api_server:2.4.8
- coreoasis/model_worker:2.4.8
- coreoasis/model_worker:2.4.8-debian
- coreoasis/piwind_worker:2.4.8
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_templateendpoint - #1769 - Port
eveto 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_idsfunction 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)
- Added checks for running with MySQL DB OasisLMF/OasisPiWind#196
- Fixed DB connection settings for MySQL
Fixed UI timeout issue - (PR #1275)
- Swapped ingress from Nginx to traefik
- works with OasisLMF/OasisAzureDeployment#37
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
IDprovided - add tests to check for trailing slash
feature/evepy - (PR #1770)
- Implement
evein python as a new cli toolevepy - Maintains the same behaviour as
evewith 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
Oasis Release v2.4.7
Docker Images (Platform)
- coreoasis/api_server:2.4.7
- coreoasis/model_worker:2.4.7
- coreoasis/model_worker:2.4.7-debian
- coreoasis/piwind_worker:2.4.7
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_updatemethod inSettingsTemplatebut doing this_ns_updateis not necessary for requests that arrive atSettingsTemplate
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 useDB_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 connectionsDB_POOL_MIN_SIZE- Minimum number of connections to maintain in the connection poolDB_POOL_MAX_SIZE- Maximum number of connections allowed in the connection poolDB_POOL_TIMEOUT- Maximum time in seconds to wait for an available connection from the poolDB_POOL_MAX_LIFETIME- Maximum lifetime in seconds for a connection before it's replacedDB_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
SiteCoveragelevel. - 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 apiclient
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.csvWhat 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 placeholderRelease 2.3.18
Oasis Release v2.3.18
Docker Images (Platform)
- coreoasis/api_server:2.3.18
- coreoasis/model_worker:2.3.18
- coreoasis/model_worker:2.3.18-debian
- coreoasis/piwind_worker:2.3.18
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_updatemethod inSettingsTemplatebut doing this_ns_updateis not necessary for requests that arrive atSettingsTemplate
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
Oasis Release v1.28.15
Docker Images (Platform)
- coreoasis/api_server:1.28.15
- coreoasis/model_worker:1.28.15
- coreoasis/model_worker:1.28.15-debian
- coreoasis/piwind_worker:1.28.15
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
Oasis Release v2.4.6
Docker Images (Platform)
- coreoasis/api_server:2.4.6
- coreoasis/model_worker:2.4.6
- coreoasis/model_worker:2.4.6-debian
- coreoasis/piwind_worker:2.4.6
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 packageOASIS_ODS_VERSION=<valid-version>~ updates the 'ods-tools' python packageOASIS_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
loggingsection - Enhanced timestamps with ISO format and process ID support
Backward Compatibility:
- Existing
--verboseflag continues to work with deprecation warning - All existing logger names and patterns preserved
- Zero breaking changes to existing workflows
Migration:
- Replace
--verbosewith--log-level=DEBUGfor future compatibility
feature/bi improvement - (PR #1721)
- introduce a
damage_typefield indamage_bin_dictwhich 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).
- bins define the number of days of interruption. The loss is calculated by multiplying the sampled days by the daily loss (calculated as the
- by default the previous behaviour is preserved where
relativetype is used if the largestbin_to < 1andabsolutetype is used if the largestbin_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> -hThen run the following to see argument options for specific data types
<conversion_tool> <file/data_type> -hRelease 2.4.5
Oasis Release v2.4.5
Docker Images (Platform)
- coreoasis/api_server:2.4.5
- coreoasis/model_worker:2.4.5
- coreoasis/model_worker:2.4.5-debian
- coreoasis/piwind_worker:2.4.5
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
bintests 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_reportonly provides a reports based onperil - add a
model_settingsparametersummary_report_fieldswhich 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
binfiles 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.jsonnow has these additional fields:number_of_buildings- # locations disaggregated to the building levelnumber_of_risks- # locations disaggregated to the risk level (buildings are a single risk ifIsAggregateis 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...