OasisLMF Changelog
==================

`1.22.0`_
 ---------
* [#914](https://github.com/OasisLMF/OasisLMF/pull/929) - numba and numpy version incompatibility
* [#930](https://github.com/OasisLMF/OasisLMF/pull/930) - Fix/update dependencies
* [#857](https://github.com/OasisLMF/OasisLMF/pull/899) - getmodel revamping
* [#901](https://github.com/OasisLMF/OasisLMF/pull/900) - fmpy: areaperil_id 8 bytes support
* [#931](https://github.com/OasisLMF/OasisLMF/pull/931) - Disable memory map for non-utf8 encoding
* [#903](https://github.com/OasisLMF/OasisLMF/pull/903) - Generate Quantile Event Loss Table (QELT) and Quantile Period Loss Table (QPLT)
* [#935](https://github.com/OasisLMF/OasisLMF/pull/935) - fmpy:ignore sidx < -3
* [#936](https://github.com/OasisLMF/OasisLMF/pull/937) - Bash options overriden when running ktools in Subprrocess 
* [#913](https://github.com/OasisLMF/OasisLMF/pull/913) - Update API platform client
* [#858](https://github.com/OasisLMF/OasisLMF/pull/890) - support parquet for OED
* [#916](https://github.com/OasisLMF/OasisLMF/pull/916) - stashing
* [#917](https://github.com/OasisLMF/OasisLMF/pull/918) - High memory use in generating dummy model
* [#829](https://github.com/OasisLMF/OasisLMF/pull/919) - Step policies: support files with both step and non-step policies
* [#920](https://github.com/OasisLMF/OasisLMF/pull/921) - conditions for multi-layer accounts file generation 
* [#884](https://github.com/OasisLMF/OasisLMF/pull/922) - OasisLMF install fails on OSX Catalina because of ktools installation
* [#739, #740](https://github.com/OasisLMF/OasisLMF/pull/923) - Dummy model occurrence file generation supports repeated events over time and dummy model files are split into static and input directories
* [#924](https://github.com/OasisLMF/OasisLMF/pull/926) - Non UTF-8 portfolio causes model run to crash
.. _`1.22.0`:  https://github.com/OasisLMF/OasisLMF/compare/1.21.0...1.22.0

`1.22.0rc2`_
 ---------
* [#914](https://github.com/OasisLMF/OasisLMF/pull/929) - numba and numpy version incompatibility
* [#930](https://github.com/OasisLMF/OasisLMF/pull/930) - Fix/update dependencies
* [#857](https://github.com/OasisLMF/OasisLMF/pull/899) - getmodel revamping
* [#901](https://github.com/OasisLMF/OasisLMF/pull/900) - fmpy: areaperil_id 8 bytes support
* [#903](https://github.com/OasisLMF/OasisLMF/pull/903) - Generate Quantile Event Loss Table (QELT) and Quantile Period Loss Table (QPLT)
* [#913](https://github.com/OasisLMF/OasisLMF/pull/913) - Update API platform client
* [#858](https://github.com/OasisLMF/OasisLMF/pull/890) - support parquet for OED
* [#916](https://github.com/OasisLMF/OasisLMF/pull/916) - stashing
* [#917](https://github.com/OasisLMF/OasisLMF/pull/918) - High memory use in generating dummy model
* [#829](https://github.com/OasisLMF/OasisLMF/pull/919) - Step policies: support files with both step and non-step policies
* [#920](https://github.com/OasisLMF/OasisLMF/pull/921) - conditions for multi-layer accounts file generation 
* [#884](https://github.com/OasisLMF/OasisLMF/pull/922) - OasisLMF install fails on OSX Catalina because of ktools installation
* [#739, #740](https://github.com/OasisLMF/OasisLMF/pull/923) - Dummy model occurrence file generation supports repeated events over time and dummy model files are split into static and input directories
* [#924](https://github.com/OasisLMF/OasisLMF/pull/926) - Non UTF-8 portfolio causes model run to crash
.. _`1.22.0rc2`:  https://github.com/OasisLMF/OasisLMF/compare/1.21.0...1.22.0rc2

`1.21.0`_
 ---------
* [#897](https://github.com/OasisLMF/OasisLMF/pull/897) - added test cases with account terms
* [#803](https://github.com/OasisLMF/OasisLMF/pull/898) - Max Ded back allocation
* [#901](https://github.com/OasisLMF/OasisLMF/pull/900) - fmpy: areaperil_id 8 bytes support
* [#903](https://github.com/OasisLMF/OasisLMF/pull/903) - Generate Quantile Event Loss Table (QELT) and Quantile Period Loss Table (QPLT)
* [#858](https://github.com/OasisLMF/OasisLMF/pull/890) - support parquet for OED
.. _`1.21.0`:  https://github.com/OasisLMF/OasisLMF/compare/1.20.0...1.21.0

`1.21.0rc1`_
 ---------
* [#897](https://github.com/OasisLMF/OasisLMF/pull/897) - added test cases with account terms
* [#803](https://github.com/OasisLMF/OasisLMF/pull/898) - Max Ded back allocation
* [#901](https://github.com/OasisLMF/OasisLMF/pull/900) - fmpy: areaperil_id 8 bytes support
* [#903](https://github.com/OasisLMF/OasisLMF/pull/903) - Generate Quantile Event Loss Table (QELT) and Quantile Period Loss Table (QPLT)
* [#858](https://github.com/OasisLMF/OasisLMF/pull/890) - support parquet for OED
.. _`1.21.0rc1`:  https://github.com/OasisLMF/OasisLMF/compare/1.20.0...1.21.0rc1

`1.20.1`_
 ---------
* [#873, #885](https://github.com/OasisLMF/OasisLMF/pull/888) - Feature/873 issues testing update2
* [#857](https://github.com/OasisLMF/OasisLMF/pull/889) - getmodel revamping
* [#892](https://github.com/OasisLMF/OasisLMF/pull/893) - inconsistent assignment of group_id in items file leads to non-repeatable results for the same input
* [#894](https://github.com/OasisLMF/OasisLMF/pull/894) - Fix/arch 2020 update
* [#895](https://github.com/OasisLMF/OasisLMF/pull/895) - Generate Moment Event Loss Table (MELT), Sample Event Loss Table (SELT), Moment Period Loss Table (MPLT) and Sample Period Loss Table (SPLT)
.. _`1.20.1`:  https://github.com/OasisLMF/OasisLMF/compare/1.19.0...1.20.1

`1.20.0`_
 ---------
* [#873, #885](https://github.com/OasisLMF/OasisLMF/pull/888) - Feature/873 issues testing update2
* [#857](https://github.com/OasisLMF/OasisLMF/pull/889) - getmodel revamping
* [#892](https://github.com/OasisLMF/OasisLMF/pull/893) - inconsistent assignment of group_id in items file leads to non-repeatable results for the same input
* [#894](https://github.com/OasisLMF/OasisLMF/pull/894) - Fix/arch 2020 update
* [#895](https://github.com/OasisLMF/OasisLMF/pull/895) - Generate Moment Event Loss Table (MELT), Sample Event Loss Table (SELT), Moment Period Loss Table (MPLT) and Sample Period Loss Table (SPLT)
.. _`1.20.0`:  https://github.com/OasisLMF/OasisLMF/compare/1.19.0...1.20.0

`1.20.0rc1`_
 ---------
* [#873, #885](https://github.com/OasisLMF/OasisLMF/pull/888) - Feature/873 issues testing update2
* [#857](https://github.com/OasisLMF/OasisLMF/pull/889) - getmodel revamping
* [#892](https://github.com/OasisLMF/OasisLMF/pull/893) - inconsistent assignment of group_id in items file leads to non-repeatable results for the same input
* [#894](https://github.com/OasisLMF/OasisLMF/pull/894) - Fix/arch 2020 update
* [#895](https://github.com/OasisLMF/OasisLMF/pull/895) - Generate Moment Event Loss Table (MELT), Sample Event Loss Table (SELT), Moment Period Loss Table (MPLT) and Sample Period Loss Table (SPLT)
.. _`1.20.0rc1`:  https://github.com/OasisLMF/OasisLMF/compare/1.19.0...1.20.0rc1

`1.19.0`_
 ---------
* [#856](https://github.com/OasisLMF/OasisLMF/pull/880) - improve memory usage of fmpy
* [#883](https://github.com/OasisLMF/OasisLMF/pull/883) - Fix ri file detection
* [#877](https://github.com/OasisLMF/OasisLMF/pull/877) - Feature/873 automated issues tests
* [#832](https://github.com/OasisLMF/OasisLMF/pull/879) - Consolidate Arch2020 work
.. _`1.19.0`:  https://github.com/OasisLMF/OasisLMF/compare/1.18.0...1.19.0

`1.19.0rc1`_
 ---------
* [#856](https://github.com/OasisLMF/OasisLMF/pull/880) - improve memory usage of fmpy
* [#883](https://github.com/OasisLMF/OasisLMF/pull/883) - Fix ri file detection
* [#877](https://github.com/OasisLMF/OasisLMF/pull/877) - Feature/873 automated issues tests
* [#832](https://github.com/OasisLMF/OasisLMF/pull/879) - Consolidate Arch2020 work
.. _`1.19.0rc1`:  https://github.com/OasisLMF/OasisLMF/compare/1.18.0...1.19.0rc1

`1.18.0`_
 ---------
* [#865](https://github.com/OasisLMF/OasisLMF/pull/865) - correction for PolDed6All fields
* [#861](https://github.com/OasisLMF/OasisLMF/pull/866) - Add PALT to genbash 
* [#820](https://github.com/OasisLMF/OasisLMF/pull/868) - Pol Fac Contracts
* [#837](https://github.com/OasisLMF/OasisLMF/pull/837) - added new doc
* [#869](https://github.com/OasisLMF/OasisLMF/pull/869) - Feature/761 fm tests
* [#862](https://github.com/OasisLMF/OasisLMF/pull/871) - oasislmf test fm doesn't work and there is no documentation
* [#828](https://github.com/OasisLMF/OasisLMF/pull/872) - RI FM File Generation issue when locations have zero TIV
* [#850](https://github.com/OasisLMF/OasisLMF/pull/870) - Improve exit handler's process cleanup 
* [#874](https://github.com/OasisLMF/OasisLMF/pull/875) - Check and set minimum versions for optional packages 
* [#846](https://github.com/OasisLMF/OasisLMF/pull/847) - Update package dependencies for flexible lookup code 
* [#852](https://github.com/OasisLMF/OasisLMF/pull/854) - Issue with custom lookup_module_path relative path
* [#826](https://github.com/OasisLMF/OasisLMF/pull/826) - Automate Change logs and release notes
* [#860](https://github.com/OasisLMF/OasisLMF/pull/860) - slight interface changes for key server functions
.. _`1.18.0`:  https://github.com/OasisLMF/OasisLMF/compare/1.17.0...1.18.0

`1.17.0`_
 ---------
* [#833](https://github.com/OasisLMF/OasisLMF/pull/834) - Minor issue - error parsing fm CLI help text 
* [#831](https://github.com/OasisLMF/OasisLMF/pull/835) - Add timestamps to logger
* [#844](https://github.com/OasisLMF/OasisLMF/pull/836) - Built-in Lookup revamp
* [#840](https://github.com/OasisLMF/OasisLMF/pull/841) - Fix flaky tests in model_preparation/test_lookup.py
* [#843](https://github.com/OasisLMF/OasisLMF/pull/843) - Fix CI pipeline error, double tagging release causes script to fail
* [#842](https://github.com/OasisLMF/OasisLMF/pull/845) - Produce summary index files by default to reduce memory use of ktools output components
* [#816](https://github.com/OasisLMF/OasisLMF/pull/817) - Issue in coverage_type_id grouping of ground up loss results for multi-peril
* [#809](https://github.com/OasisLMF/OasisLMF/pull/818) - Error handling for invalid oasislmf.json config files 
* [#849](https://github.com/OasisLMF/OasisLMF/pull/849) - Fix CVE-2021-33503
* [#821](https://github.com/OasisLMF/OasisLMF/pull/821) - Add missing items to data settings
* [#824](https://github.com/OasisLMF/OasisLMF/pull/825) - Inputs directory preparation issue when ORD is enabled
* [#826](https://github.com/OasisLMF/OasisLMF/pull/826) - Automate Change logs and release notes
* [#822](https://github.com/OasisLMF/OasisLMF/pull/827) - Ktools exit handler killing off bash logging on exit
.. _`1.17.0`:  https://github.com/OasisLMF/OasisLMF/compare/1.16.0...1.17.0

`1.17.0rc1`_
 ---------
* [#833](https://github.com/OasisLMF/OasisLMF/pull/834) - Minor issue - error parsing fm CLI help text 
* [#831](https://github.com/OasisLMF/OasisLMF/pull/835) - Add timestamps to logger
* [#844](https://github.com/OasisLMF/OasisLMF/pull/836) - Built-in Lookup revamp
* [#840](https://github.com/OasisLMF/OasisLMF/pull/841) - Fix flaky tests in model_preparation/test_lookup.py
* [#843](https://github.com/OasisLMF/OasisLMF/pull/843) - Fix CI pipeline error, double tagging release causes script to fail
* [#842](https://github.com/OasisLMF/OasisLMF/pull/845) - Produce summary index files by default to reduce memory use of ktools output components
* [#816](https://github.com/OasisLMF/OasisLMF/pull/817) - Issue in coverage_type_id grouping of ground up loss results for multi-peril
* [#809](https://github.com/OasisLMF/OasisLMF/pull/818) - Error handling for invalid oasislmf.json config files 
* [#821](https://github.com/OasisLMF/OasisLMF/pull/821) - Add missing items to data settings
* [#824](https://github.com/OasisLMF/OasisLMF/pull/825) - Inputs directory preparation issue when ORD is enabled
* [#826](https://github.com/OasisLMF/OasisLMF/pull/826) - Automate Change logs and release notes
* [#822](https://github.com/OasisLMF/OasisLMF/pull/827) - Ktools exit handler killing off bash logging on exit
.. _`1.17.0rc1`:  https://github.com/OasisLMF/OasisLMF/compare/1.16.0...1.17.0rc1

`1.16.0`_
---------
.. start_latest_release
* [#669](https://github.com/OasisLMF/OasisLMF/pull/792) - Revamp of the Key service for improved performance (PR-792)
* [#802](https://github.com/OasisLMF/OasisLMF/pull/802) - Fix for null loss in max deductible case 
* [#766](https://github.com/OasisLMF/OasisLMF/issues/766) - Updated FM python documentation 
* [#753](https://github.com/OasisLMF/OasisLMF/pull/800) - Added ORD output options for ept/psept and updated json schema
* [#814](https://github.com/OasisLMF/OasisLMF/pull/814) - Fix back allocation child loss loop
* [#815](https://github.com/OasisLMF/OasisLMF/pull/815) - Update requirements and set tests to Python3.8
* [#806](https://github.com/OasisLMF/OasisLMF/issues/806) - Store analysis run settings to outputs via the MDK 
* [#807](https://github.com/OasisLMF/OasisLMF/issues/807) - Fixed fmpy numerical errors for step policies producing gross > ground up
.. end_latest_release

`1.15.6`_
---------
* [#803 - Hotfix](https://github.com/OasisLMF/OasisLMF/pull/802) - Partial fix for Max Ded back allocation in fmpy

`1.15.5`_
---------
* [#798 - Hotfix](https://github.com/OasisLMF/OasisLMF/issues/798) - Fix process cleanup on ktools script exit
* [#799 - Hotfix](https://github.com/OasisLMF/OasisLMF/issues/799) - Fix fmpy, multilayer stream writer for RI
* [#794 - Hotfix](https://github.com/OasisLMF/OasisLMF/issues/794) - Fix column duplication when using "tiv, loc_id, coverage_type_id" in oed_field

`1.15.4`_
---------
* [#464 - Hotfix](https://github.com/OasisLMF/OasisPlatform/issues/464) - Worker stuck idle on some bash errors
* [#785 - Hotfix](https://github.com/OasisLMF/OasisLMF/issues/785) - fmsummaryxref.csv not copied into top level RI directory

`1.15.3`_
---------
* [#780](https://github.com/OasisLMF/OasisLMF/pull/780) - Fix for fmpy, last event missing when using event terminator 0,0

`1.15.2`_
---------
* [#777](https://github.com/OasisLMF/OasisLMF/issues/777) - Summarise ground up only runs using Insured loss fields
* [#776](https://github.com/OasisLMF/OasisLMF/pull/776) - Fix tiv summary info feature, Pandas compatibility & column select issue

`1.15.1`_
---------
* [#771 - Hotfix](https://github.com/OasisLMF/OasisLMF/issues/771) - Fix running GUL only analyses with fmpy

`1.15.0`_
---------
* [#765](https://github.com/OasisLMF/OasisLMF/pull/765) - Add a first pass of FM python documentation
* [#770](https://github.com/OasisLMF/OasisLMF/pull/770) - Fix issue in lookup factory no results check
* [#755](https://github.com/OasisLMF/OasisLMF/pull/755) - Added updates fixes to fm testing tool
* [#759](https://github.com/OasisLMF/OasisLMF/issues/759) - Switched fmpy to the default financial module
* [#688](https://github.com/OasisLMF/OasisLMF/issues/688) - Added TIV reporting to summary info files
* [#623](https://github.com/OasisLMF/OasisLMF/issues/623) - Added check to raise an error if a locations file references account numbers missing from the account file.
* [#749](https://github.com/OasisLMF/OasisLMF/pull/749) - The Group ids can now be set by the following internal oasis fields 'item_id', 'peril_id', 'coverage_id', and 'coverage_type_id'
* [#760](https://github.com/OasisLMF/OasisLMF/pull/760) - Upgraded test harness for financial module and added numerical tests for fmpy.
* [#754](https://github.com/OasisLMF/OasisLMF/issues/754) - Added validation for unsupported special conditions
* [#752](https://github.com/OasisLMF/OasisLMF/issues/752) - Fixed issue with fmpy - not calculating net loss across all layers correctly.
* [#751](https://github.com/OasisLMF/OasisLMF/issues/751) - Remove dependence on ReinsNumber order when assigning layer ID
* [#763](https://github.com/OasisLMF/OasisLMF/issues/763) - Dropped binary wheel package for Mac OSX
* [#750](https://github.com/OasisLMF/OasisLMF/issues/750) - Switched oasislmf `exposure run` to use gul stream type 2 by default
* [#391](https://github.com/OasisLMF/OasisLMF/issues/391) - Added fix so error is raise when no data is returned from keys server.

`1.14.0`_
---------
* [#724](https://github.com/OasisLMF/OasisLMF/issues/724) - fm file generation issues with fac when combined with other types of reinsurance
* [#735](https://github.com/OasisLMF/OasisLMF/pull/735) - Bug fixes for python FM module
* [#731](https://github.com/OasisLMF/OasisLMF/issues/731) - Fix health check on exposure summary unittest
* [#692](https://github.com/OasisLMF/OasisLMF/issues/692) - Added FM testing jupyter notebook [binder link](https://mybinder.org/v2/gh/OasisLMF/OasisLMF/develop?filepath=FmTesting.ipynb)
* [#658](https://github.com/OasisLMF/OasisLMF/issues/658) - Changes in input file generation to extend special conditions functionality (requires testing)
* [#738](https://github.com/OasisLMF/OasisLMF/pull/738) - Fix setup.py fallback for ktools install in development mode
* [#665](https://github.com/OasisLMF/OasisLMF/issues/665) - Provide CL arguments for generating dummy model files
* [#744](https://github.com/OasisLMF/OasisLMF/pull/744) - Compatibility fix for older pandas versions
* [#708](https://github.com/OasisLMF/OasisLMF/issues/708) - Check for case sensitive event/occ sets with a fallback to lowercase names
* [#737](https://github.com/OasisLMF/OasisLMF/issues/737) - Added flag `--ktools-event-shuffle` to support ktools feature [Issue 119](https://github.com/OasisLMF/ktools/issues/119)

`1.13.2`_
---------
* [#690](https://github.com/OasisLMF/OasisLMF/pull/690) - Raise error is output node is missing its output_id
* [#700](https://github.com/OasisLMF/OasisLMF/issues/700) - Update error guard to cover all ktools binaries
* [#701](https://github.com/OasisLMF/OasisLMF/issues/701) - Fixed api search crash when metadata is empty
* [#702](https://github.com/OasisLMF/OasisLMF/issues/702) - Fixed error When Input data contains commas
* [#705](https://github.com/OasisLMF/OasisLMF/issues/705) - Select keys generator based on class type
* [#710](https://github.com/OasisLMF/OasisLMF/issues/710) - Added missing layer calcrules for limit only
* [#712](https://github.com/OasisLMF/OasisLMF/issues/712) - Fix missing gul_errors_map.csv file
* [#713](https://github.com/OasisLMF/OasisLMF/issues/713) - Fix for gul_errors_map containing duplicate columns
* [#722](https://github.com/OasisLMF/OasisLMF/issues/722) - Fixed error creating summary levels in Pandas 1.2.0

`1.13.1`_
---------
* [#709](https://github.com/OasisLMF/OasisLMF/issues/709) - Fix issue with generation of profile IDs for step policies that include separate coverages

`1.13.0`_
---------
* [#694](https://github.com/OasisLMF/OasisLMF/pull/694) - Schema update, restrict output options by eventset
* [#670](https://github.com/OasisLMF/OasisLMF/issues/670) - Add CLI flags for lookup multiprocessing options
* [#695](https://github.com/OasisLMF/OasisLMF/issues/695) - Set default value of optional OED step policy fields to 0
* [#686](https://github.com/OasisLMF/OasisLMF/issues/686) - Fixed fmpy numerical issues when using allocrule 1
* [#681](https://github.com/OasisLMF/OasisLMF/issues/681) - Added fmpy support for stepped policies
* [#680](https://github.com/OasisLMF/OasisLMF/issues/680) - Added user defined return periods option to `analysis_settings.json`
* [#677](https://github.com/OasisLMF/OasisLMF/pull/677) - Enabled Fmpy to handle multiple input streams
* [#678](https://github.com/OasisLMF/OasisLMF/issues/678) - Fixed environment variable loading

`1.12.1`_
---------
* [#674](https://github.com/OasisLMF/OasisLMF/pull/674) - Introduce check for step policies in genbash

`1.12.0`_
---------
* [#413](https://github.com/OasisLMF/OasisLMF/issues/413) - Peril Handling in Input Generation
* [#661](https://github.com/OasisLMF/OasisLMF/issues/661) - Added experimental financial module written in Python 'fmpy'
* [#662](https://github.com/OasisLMF/OasisLMF/issues/662) - Define relationships between event and occurrence in model_settings
* [#671](https://github.com/OasisLMF/OasisLMF/issues/671) - Fix issue with loading booleans in oasislmf.json and corrected the 'ktools-fifo-relative' flag
* [#666](https://github.com/OasisLMF/OasisLMF/pull/666) - Fix files created to generate-oasis-files, being cleared

`1.11.1`_
---------
* [#653](https://github.com/OasisLMF/OasisLMF/issues/653) - Fix pre-analysis exposure modification for generate-oasis-files command

`1.11.0`_
---------
* [#598](https://github.com/OasisLMF/OasisLMF/issues/598) - Fac Contracts being applied as multiple layers in RI file generation
* [#648](https://github.com/OasisLMF/OasisLMF/issues/648) - Correlation Group OED field to drive group_id directly
* [#458](https://github.com/OasisLMF/OasisLMF/issues/458) - Keys lookup response clean up
* [#575](https://github.com/OasisLMF/OasisLMF/issues/575) - Add option to test multi-peril in oasislmf exposure run and oasislmf test fm
* [#606](https://github.com/OasisLMF/OasisLMF/issues/606) - missing combination of terms in calcrules to add - part 2
* [#568](https://github.com/OasisLMF/OasisLMF/issues/568) - Min/max deductible not working when prior level locations are partially limited in OED input
* [#640](https://github.com/OasisLMF/OasisLMF/issues/640) - Use categorical dtype to reduce the memory usage of files generation
* [PR 651](https://github.com/OasisLMF/OasisLMF/pull/651) - Fixing typo in Probabilistic and usage of historical vs historic
* [PR 654](https://github.com/OasisLMF/OasisLMF/pull/654) - add check if epa when copying file for file generation
* [PR 652](https://github.com/OasisLMF/OasisLMF/pull/652) - If a path parameter is an empty string, load default value
* [PR 660](https://github.com/OasisLMF/OasisLMF/pull/660) - Fix pre Analysis input file paths for `oasislmf model run`

`1.10.2`_
---------
* [8fdc512](https://github.com/OasisLMF/OasisLMF/pull/644) - Fix issue with introduction of erroneous duplicate rows when calculating aggregated TIVs

`1.10.1`_
---------
* Fix issue with supplier model runner

`1.10.0`_
---------
* [#573](https://github.com/OasisLMF/OasisLMF/issues/573) - Extract and apply default values for OED mapped FM terms
* [#581](https://github.com/OasisLMF/OasisLMF/issues/581) - Split calc. rules files
* [#604](https://github.com/OasisLMF/OasisLMF/issues/604) - Include unsupported coverages in type 2 financial terms calculation
* [#608](https://github.com/OasisLMF/OasisLMF/issues/608) - Integration of GUL-FM load balancer
* [#614](https://github.com/OasisLMF/OasisLMF/issues/614) - Refactor oasislmf package
* [#617](https://github.com/OasisLMF/OasisLMF/issues/617) - Fix TypeError in write_exposure_summary
* [#636](https://github.com/OasisLMF/OasisLMF/issues/636) - Improve error handling in run_ktools.sh
* Fix minor issues in oasis file generation and complex model runs

`1.9.1`_
--------
* [#630](https://github.com/OasisLMF/OasisLMF/issues/630) - full_correlation gulcalc option creates large output files.

`1.9.0`_
--------
* [#566](https://github.com/OasisLMF/OasisLMF/issues/566) - Handle unlimited LayerLimit without large default value
* [#574](https://github.com/OasisLMF/OasisLMF/issues/574) - Use LayerNumber to identify unique policy layers in gross fm file generation
* [#578](https://github.com/OasisLMF/OasisLMF/issues/578) - Added missing combination of terms in calcrules
* [#603](https://github.com/OasisLMF/OasisLMF/issues/603) - Add type 2 financial terms tests for multi-peril to regression test
* [PR 600](https://github.com/OasisLMF/OasisLMF/pull/600) - Added Scripts for generated example model data for testing.

`1.8.3`_
--------
* [#601](https://github.com/OasisLMF/OasisLMF/issues/601) - Fix calculations for type 2 deductibles and limits in multi-peril models

`1.8.2`_
--------
* [#599](https://github.com/OasisLMF/OasisLMF/issues/599) - Allow setting 'loc_id' externally
* [#594](https://github.com/OasisLMF/OasisLMF/issues/594) - Pass copy of location df to custom lookup to avoid side effects
* [#593](https://github.com/OasisLMF/OasisLMF/issues/593) - Fail fast on analysis settings formatting problem
* [#591](https://github.com/OasisLMF/OasisLMF/issues/591) - Update pinned pandas package
* [#588](https://github.com/OasisLMF/OasisLMF/issues/588) - AreaCode is defined as "string" in OED, but loaded as a number in the DF
* [#596](https://github.com/OasisLMF/OasisLMF/issues/596) - Incorrect number of locations in Overview
* [3dce18f](https://github.com/OasisLMF/OasisLMF/pull/595/commits/3dce18f5872c2855f29548845212bdde8813f472) - Relax required fields in analysis_settings validation
* [bd052a6](https://github.com/OasisLMF/OasisLMF/pull/595/commits/bd052a641b53db5284fb9609b43d6080df77711c) - Fix issue in gen bash, only enable an output type if summary section exists

`1.8.1`_
--------
* [#589](https://github.com/OasisLMF/OasisLMF/issues/589) - Schema fix to allow for 0 samples
* [#583](https://github.com/OasisLMF/OasisLMF/pull/583) - Reduce memory use in gul_inputs creation (DanielFEvans)
* [#582](https://github.com/OasisLMF/OasisLMF/issues/582) -  Check for calc_type in all sections

`1.8.0`_
--------
* [#579](https://github.com/OasisLMF/OasisLMF/issues/579) - Install complex_itemstobin and complex_itemstocsv
* [#565](https://github.com/OasisLMF/OasisLMF/issues/565) - Non-unicode CSV data is not handled neatly
* [#570](https://github.com/OasisLMF/OasisLMF/issues/570) - Issue with item_id to from_agg_id mapping at level 1
* [#556](https://github.com/OasisLMF/OasisLMF/issues/556) - review calc_rules.csv mapping for duplicates and logical gaps
* [#549](https://github.com/OasisLMF/OasisLMF/issues/549) - Add FM Tests May 2020
* [#555](https://github.com/OasisLMF/OasisLMF/issues/555) - Add JSON schema validation on CLI
* [#577](https://github.com/OasisLMF/OasisLMF/issues/577) - Add api client progressbars for OasisAtScale


`1.7.1`_
--------
* #553 - Fix alc rule mapping error
* #550 - Fix enbash fmcalc and full_correlation
* #548 - Fix UL Alloc Rule 0
* Fix - Assign loc_id by sorted values of (LocNum, AccNum, PortNum) - location file resistant to reordering rows
* Fix - default `run_dir` in `oasislmf model generate-exposure-pre-analysis` cmd

`1.7.0`_
--------
* #497 - Add exception wrapping to OasisException
* #528 - FM validation tests with % damage range
* #531 - item file ordering of item_id
* #533 - Added new FM acceptance tests
* Added - Pre-analysis exposure modification (CLI interface)
* Added - revamped CLI Structure

`1.6.0`_
--------
* Fix #513 - Breaking change in msgpack 1.0.0
* Fix #503 - Change areaperil id datatype to unit64
* Fix #481 - Corrections to fm_profile for type 2 terms
* Fix #512 - Issue in generate rtree index CLI
* Fix #516 - Refactored the `upload_settings` method in API client
* Fix #514 - fix ; issues in LocPerilsCovered
* Fix #515 - Store the `loc_id` of failed location rows
* Added #508 - fm12 acceptance test
* Added #480 - Extend calcrules to cover more combinations of financial terms
* Added #523 - Long description field to `model_settings.json` schema
* Added #524 - Total TIV sums in exposure report
* Added #527 - Group OED fields from model settings
* Added #506 - Improve performance in `write_exposure_summary()`

`1.5.1`_
--------
* Fix - Issue in IL file generation, `fm_programme` file missing agg_id rows

`1.5.0`_
--------

* Added step policy support
* Added #453 - Allow user to select group_id based on columns in loc file
* Added #474 - Option to set gulcalc command - raises an error if not in path
* Update to Model Settings schema, #478 #484 #485
* Update #464 - API client with new Queued Job states
* Update #470 - Model_settings.json schema
* Fix #491 -  in `oasislmf exposure run` command
* Fix #477 - setup.py fails when behind a proxy
* Fix #482 - symlink error when rerunning analysis using existing analysis_folder
* Fix #460 - CLI, remove use of lowercase '-c'
* Fix #493 - generate_model_losses fix for spaces in filepath
* Fix #475 - Prevent copy of model_data directory on OSError
* Fix #486 - Run error using `pandas==1.0.0`
* Fix #459 - File generation issue in fm_programme
* Fix #456 - Remove calls to `get_ids` in favour of pandas groupby
* Fix #492 - ComplexModel error guard run in subshell
* Fix #451 - ComplexModel error guard in bash script
* Fix #415 - RI String matching issue
* Fix #462 - Issue in fm_programmes file generation
* Fix #463 - Incorrect limits in FM file generation
* Fix #468 - Fifo issue in Bash script generation


`1.4.6`_
--------
* Update to model_settings schema
* Fixes #452 - Check columns before grouping output
* Fixes #451 - Error checking ktools runs for complex models

`1.4.5`_
--------
* Fix for fm_programme mapping
* Fix for IL files generation
* Fix issue #439 - il summary groups
* Reduce memory use in GUL inputs generation (#440)
* Fix for api client - handle rotating refresh token
* Feature/setting schemas (#438)
* Update API client - add settings JSON endpoints (#444)
* Add fully correlated option to MDK (#446)
* Add dtype conversion and check for valid OED peril codes (#448)

`1.4.4`_
--------
* Hotfix - Added the run flag `--ktools-disable-guard` option for complex models & custom binaries

`1.4.3`_
--------
* Added support for compressed file extensions
* Fix docker kill error
* Fix in IL inputs
* Fix for multiprocessing lookup
* Fix for summary info data types
* Set IL alloc rule default to 3
* Various fixes for CLI
* Various fixes for ktools scripts

`1.4.2`_
--------
* Added Multi-process keys lookup
* Updated API client
* Added Verifying model files command
* Updated command line flags with backwards compatibility

`1.4.1`_
--------
* Added bash autocomplete #386
* Fix for exposure data types on lookup #387
* Fix for non-OED fields in summary levels #377
* Fix in Reinsurance Layer Logic #381
* Refactor deterministic loss generation #371
* Added bdist package for OSX #372
* Added Allocation rule for Ground up loss #376

`1.4.0`_
--------
* Cookiecutter CLI integration - commands for creating simple and complex Oasis model projects/repositories from project templates
* Extend calc. rules and FM test coverage
* Various fixes in FM and data utils
* Various fixes and updates for the API client module
* Add ktools static binary bdist_wheel to published package
* Fix for Layer_id in file generation
* Performance improvment and fixes for the exposure summary reporting
* Added optional `--summarise-exposure` flag for exposure report output
* Added `exposure_summary_levels.json` file to inputs directory, lists valid OED columns to build summary groups
* Added summary info files to output directory `gul_S1_summary-info.csv` which lists data for grouping summary_ids
* Ktools updated to v3.1.0

`1.3.10`_
---------
* Hotfix release - fix for models using custom lookups

`1.3.9`_
--------
* Updated validation and fixes for FM file generation
* Fixes for exposure-summary reporting
* Fixes for FM calc rule selection

`1.3.8`_
--------
* Add FM support for processing types and codes for deductibles and limits
* Improvements for complex model support and logging
* Update to summary sets for grouping results
* Exposure reporting added
* Fixes for Oasis files generation
* Updates to RI and Acceptance testing
* new sub-command `oasislmf exposure ..` for running and validating deterministic models

`1.3.7`_
--------
* Hotfix - ktools-num-processes not read as int from CLI

`1.3.6`_
--------
* Hotfix - Custom lookup issue in manager

`1.3.5`_
--------
* Issue found in ktools `3.0.7` hotfix downgrade to `3.0.6`

`1.3.4`_
--------
* Optimise FM/IL component (IL input items + input files generation)
* Optimise Oasis files generation (GUL + IL input items + input files generation)
* Upgrade data-related utilities
* Update API client
* Fixes for windows compatibility
* Support for Python 2.7 Ends

`1.3.3`_
--------
* Hotfix for GUL files generation
* Hotfix for lookup index generation
* Hotfix for ktools bash script

`1.3.2`_
--------
* Hotfix fix for analysis_settings custom model worker
* Hotfix tweak for deterministic RI loss calculation

`1.3.1`_
--------
* Hotfix for path issue with the analysis_setttings file
* Downgraded ktools from `3.0.6` to `3.0.5` fix pending in fmcalc

`1.3.0`_
--------
* Remove CSV file transformations from Oasis files generation - use OED source exposure directly
* Integrate backend RI functionality with the CLI model subcommands - full RI losses can now be generated
* Add new CLI subcommand for deterministic loss generation including direct and RI losses
* Optimise FM component (13x speedup achieved)
* Add support for custom complex models, python version of ground up losses `gulcalc.py`

`1.2.8`_
--------
* Hotfix for Ktools, version is now 3.0.5
* Hotfix for API Client Upload timeout issue

`1.2.7`_
--------
* Hotfix in Generate-Losses command

`1.2.6`_
--------
* Added Reinsurance to CLI
* Added Ktools run options to CLI
* Fix for Ktools Memory limits in Genbash

`1.2.5`_
--------
* Fix for setting Alloc Rule in genbash

`1.2.4`_
--------
* Fix for Windows 10 (Linux Sub-system), FIFO queues moved into `/tmp/<random>`
* Fix for Reinsurance, Set RiskLevel = `SEL` as default when value is not set
* Fix, calc rule for all positivedeductibles
* Fixes for new API Client
* Added Deterministic loss generation
* Added FM acceptance tests
* Added Automated testing

`1.2.3`_
--------
* Hotfix for Reinsurance required fields
* Dockerfile and run script for unittests

`1.2.2`_
--------
* Added API client for OED API update
* New MDK commands to run the updated API client
* Improved FM file generation testing
* Fixes to scope filters to correctly handle account, policy and location combinations.
* Added portfolio and location group scope filters.
* Fixes to required fields and default values to match OED
* Fixed binary file writing bug, corrupted tar output files


`1.2.1`_
--------

* Compatibility fix for new API worker
* Fix for Parsing config.json on MDK command line
* Fix for Reinsurance
* Add Reinsurance tests
* Fix GUL item group IDs to index item loc. IDs

`1.2.0`_
--------

* Update concurrency utils - replace multiprocessing.Pool by billiard.Pool in multiprocessing wrapper (oasislmf.utils.concurrency.multiprocess) to fix a problem with Celery tasks unable to run applications which use processes or process pools created using the built-in multiprocessing package (https://github.com/celery/celery/issues/1709)
* Add IL/FM support
* Various optimisations, including to GUL items generation

`1.1.27`_ (beta)
----------------

* Fix for installing ktools on mac OSX (3.0.1)
* Fix for Reinsurance input file validation
* Update Subcommand `oasislmf model generate-oasis-file` to use optional xml validation
* Update for unittest stability on CI/CD

`1.1.26`_ (beta)
----------------

* Merge in reinsurance update from feature/reinsurance
* Fix ktools install using pip instal editable mode `pip install -e ..`

`1.1.25`_ (beta)
----------------

* Fix install issue with utils/keys_data.py - file removed as its no longer used.

`1.1.24`_ (beta)
----------------

* Fix ordering of bulk lookup generation in base generic lookup - records should be generated as (loc. ID, peril ID, coverage type ID) combinations.

`1.1.23`_ (beta)
----------------

* Performace update for exposure transforms `transform-source-to-canonical` and `transform-canonical-to-model`.
* Validation of transform is now optional `--xsd-validation-file-path`, if no value is given this step is skipped.

`1.1.22`_ (beta)
----------------

* Fix bug in coverage type matching of canonical items and keys items in the GUL items generator in the exposure manager

`1.1.21`_ (beta)
----------------

* Enable lookup framework and exposure manager to support multi-peril and multi-coverage type models

`1.1.20`_ (beta)
----------------

* Refactor lookup factory to be compatible with new lookup framework
* Various enhancements to the peril areas index class, file index generation command and peril utils
* Fix for installing pip package without building ktools if binaries exist in system path.

`1.1.19`_ (beta)
----------------

* Fix string lowercasing of lookup config values in new lookup classes
* Fix object pickling to account for Python major version when creating Rtree file index from areas file
* Various fixes to arg parsing and logging in Rtree file index model subcommand class

`1.1.18`_ (beta)
----------------

* Upgrade peril utils, including a custom Rtree index class for peril areas
* Implement MDK model subcommand for writing Rtree file indexes for peril areas from peril area (area peril) files
* Various fixes to the new lookup class framework


`1.1.17`_ (beta)
----------------

* Fix list sorting in exposure manager to use explicit sort key

`1.1.15`_ (beta)
----------------

* Add new lookup class framework in `keys` subpackage

`1.1.14`_ (beta)
----------------

* Add MDK model subcommands for performing source -> canonical and canonical -> model file transformations
* Python 3 compatibility fixes to replace map and filter statements everywhere by list comprehensions

`1.1.13`_ (beta)
----------------

* Add performance improvement for exposure transforms
* Limit exposure validation messages to log level `DEBUG`

`1.1.12`_ (beta)
----------------

* Add concurrency utils (threading + multiprocessing) to `utils` sub. pkg.

`1.1.11`_ (beta)
----------------

* Hotfix for get_analysis_status - fixes issue in client api

`1.1.10`_ (beta)
----------------

* Hotfix for utils INI file loading method - fix parsing of IP
  strings

`1.0.9`_ (beta)
---------------

* Hotfix for JSON keys file writer in keys lookup factory - convert
  JSON string to Unicode literal before writing to file

`1.0.8`_ (beta)
---------------

* Enable custom model execution parameters when running models

`1.0.6`_ (beta)
---------------

* Remove timestamped Oasis files from Oasis files generation pipeline

`1.0.5`_ (beta)
---------------

* Add keys error file generation method to keys lookup factory and make
  exposures manager generate keys error files by default

`1.0.1`_ (beta)
---------------

* Add console logging

.. _`1.16.0`:  https://github.com/OasisLMF/OasisLMF/compare/1.15.6...1.16.0
.. _`1.15.6`:  https://github.com/OasisLMF/OasisLMF/compare/1.15.5...1.15.6
.. _`1.15.5`:  https://github.com/OasisLMF/OasisLMF/compare/1.15.4...1.15.5
.. _`1.15.4`:  https://github.com/OasisLMF/OasisLMF/compare/1.15.3...1.15.4
.. _`1.15.3`:  https://github.com/OasisLMF/OasisLMF/compare/1.15.2...1.15.3
.. _`1.15.2`:  https://github.com/OasisLMF/OasisLMF/compare/1.15.1...1.15.2
.. _`1.15.1`:  https://github.com/OasisLMF/OasisLMF/compare/1.15.0...1.15.1
.. _`1.15.0`:  https://github.com/OasisLMF/OasisLMF/compare/1.14.0...1.15.0
.. _`1.14.0`:  https://github.com/OasisLMF/OasisLMF/compare/1.13.2...1.14.0
.. _`1.13.2`:  https://github.com/OasisLMF/OasisLMF/compare/1.13.1...1.13.2
.. _`1.13.1`:  https://github.com/OasisLMF/OasisLMF/compare/1.13.0...1.13.1
.. _`1.13.0`:  https://github.com/OasisLMF/OasisLMF/compare/1.12.1...1.13.0
.. _`1.12.1`:  https://github.com/OasisLMF/OasisLMF/compare/1.12.0...1.12.1
.. _`1.12.0`:  https://github.com/OasisLMF/OasisLMF/compare/1.11.1...1.12.0
.. _`1.11.1`:  https://github.com/OasisLMF/OasisLMF/compare/1.11.0...1.11.1
.. _`1.11.0`:  https://github.com/OasisLMF/OasisLMF/compare/1.10.2...1.11.0
.. _`1.10.2`:  https://github.com/OasisLMF/OasisLMF/compare/1.10.1...1.10.2
.. _`1.10.1`:  https://github.com/OasisLMF/OasisLMF/compare/1.10.0...1.10.1
.. _`1.10.0`:  https://github.com/OasisLMF/OasisLMF/compare/1.9.1...1.10.0
.. _`1.9.1`:  https://github.com/OasisLMF/OasisLMF/compare/1.9.0...1.9.1
.. _`1.9.0`:  https://github.com/OasisLMF/OasisLMF/compare/1.8.3...1.9.0
.. _`1.8.3`:  https://github.com/OasisLMF/OasisLMF/compare/1.8.2...1.8.3
.. _`1.8.2`:  https://github.com/OasisLMF/OasisLMF/compare/1.8.1...1.8.2
.. _`1.8.1`:  https://github.com/OasisLMF/OasisLMF/compare/1.8.0...1.8.1
.. _`1.8.0`:  https://github.com/OasisLMF/OasisLMF/compare/1.7.1...1.8.0
.. _`1.7.1`:  https://github.com/OasisLMF/OasisLMF/compare/1.7.0...1.7.1
.. _`1.7.0`:  https://github.com/OasisLMF/OasisLMF/compare/1.6.0...1.7.0
.. _`1.6.0`:  https://github.com/OasisLMF/OasisLMF/compare/1.5.1...1.6.0
.. _`1.5.1`:  https://github.com/OasisLMF/OasisLMF/compare/1.5.0...1.5.1
.. _`1.5.0`:  https://github.com/OasisLMF/OasisLMF/compare/1.4.6...1.5.0
.. _`1.4.6`:  https://github.com/OasisLMF/OasisLMF/compare/1.4.5...1.4.6
.. _`1.4.5`:  https://github.com/OasisLMF/OasisLMF/compare/1.4.4...1.4.5
.. _`1.4.4`:  https://github.com/OasisLMF/OasisLMF/compare/1.4.3...1.4.4
.. _`1.4.3`:  https://github.com/OasisLMF/OasisLMF/compare/1.4.2...1.4.3
.. _`1.4.2`:  https://github.com/OasisLMF/OasisLMF/compare/1.4.1...1.4.2
.. _`1.4.1`:  https://github.com/OasisLMF/OasisLMF/compare/1.4.0...1.4.1
.. _`1.4.0`:  https://github.com/OasisLMF/OasisLMF/compare/1.3.10...1.4.0
.. _`1.3.10`:  https://github.com/OasisLMF/OasisLMF/compare/1.3.9...1.3.10
.. _`1.3.9`:  https://github.com/OasisLMF/OasisLMF/compare/1.3.8...1.3.9
.. _`1.3.8`:  https://github.com/OasisLMF/OasisLMF/compare/1.3.7...1.3.8
.. _`1.3.7`:  https://github.com/OasisLMF/OasisLMF/compare/1.3.6...1.3.7
.. _`1.3.6`:  https://github.com/OasisLMF/OasisLMF/compare/1.3.5...1.3.6
.. _`1.3.5`:  https://github.com/OasisLMF/OasisLMF/compare/1.3.4...1.3.5
.. _`1.3.4`:  https://github.com/OasisLMF/OasisLMF/compare/1.3.3...1.3.4
.. _`1.3.3`:  https://github.com/OasisLMF/OasisLMF/compare/1.3.2...1.3.3
.. _`1.3.2`:  https://github.com/OasisLMF/OasisLMF/compare/1.3.1...1.3.2
.. _`1.3.1`:  https://github.com/OasisLMF/OasisLMF/compare/1.3.0...1.3.1
.. _`1.3.0`:  https://github.com/OasisLMF/OasisLMF/compare/1.2.8...1.3.0
.. _`1.2.8`:  https://github.com/OasisLMF/OasisLMF/compare/1.2.7...1.2.8
.. _`1.2.7`:  https://github.com/OasisLMF/OasisLMF/compare/1.2.6...1.2.7
.. _`1.2.6`:  https://github.com/OasisLMF/OasisLMF/compare/1.2.5...1.2.6
.. _`1.2.5`:  https://github.com/OasisLMF/OasisLMF/compare/1.2.4...1.2.5
.. _`1.2.4`:  https://github.com/OasisLMF/OasisLMF/compare/1.2.3...1.2.4
.. _`1.2.3`:  https://github.com/OasisLMF/OasisLMF/compare/1.2.2...1.2.3
.. _`1.2.2`:  https://github.com/OasisLMF/OasisLMF/compare/d6dbf25...master
.. _`1.2.1`:  https://github.com/OasisLMF/OasisLMF/compare/f4d7390...master
.. _`1.2.0`:  https://github.com/OasisLMF/OasisLMF/compare/ad91e2a...master
.. _`1.1.27`: https://github.com/OasisLMF/OasisLMF/compare/ac4375e...master
.. _`1.1.26`: https://github.com/OasisLMF/OasisLMF/compare/dac703e...master
.. _`1.1.25`: https://github.com/OasisLMF/OasisLMF/compare/3a4b983...master
.. _`1.1.24`: https://github.com/OasisLMF/OasisLMF/compare/8f94cab...master
.. _`1.1.23`: https://github.com/OasisLMF/OasisLMF/compare/0577497...master
.. _`1.1.22`: https://github.com/OasisLMF/OasisLMF/compare/bfeee86...master
.. _`1.1.21`: https://github.com/OasisLMF/OasisLMF/compare/c04dc73...master
.. _`1.1.20`: https://github.com/OasisLMF/OasisLMF/compare/fd31879...master
.. _`1.1.19`: https://github.com/OasisLMF/OasisLMF/compare/5421b91...master
.. _`1.1.18`: https://github.com/OasisLMF/OasisLMF/compare/da8fcba...master
.. _`1.1.17`: https://github.com/OasisLMF/OasisLMF/compare/de90f11...master
.. _`1.1.15`: https://github.com/OasisLMF/OasisLMF/compare/18b34b9...master
.. _`1.1.14`: https://github.com/OasisLMF/OasisLMF/compare/f3e0ee8...master
.. _`1.1.13`: https://github.com/OasisLMF/OasisLMF/compare/33f96fd...master
.. _`1.1.12`: https://github.com/OasisLMF/OasisLMF/compare/5045ca2...master
.. _`1.1.10`: https://github.com/OasisLMF/OasisLMF/compare/a969192...master
.. _`1.0.9`:  https://github.com/OasisLMF/OasisLMF/compare/17c691b...master
.. _`1.0.8`:  https://github.com/OasisLMF/OasisLMF/compare/8eeaeaf...master
.. _`1.0.6`:  https://github.com/OasisLMF/OasisLMF/compare/9578398...master
.. _`1.0.5`:  https://github.com/OasisLMF/OasisLMF/compare/c87c782...master
.. _`1.0.1`:  https://github.com/OasisLMF/OasisLMF/compare/7de227d...master
