Metadata-Version: 2.4
Name: bermuda-ledger
Version: 2.1.29
Summary: A module for manipulating insurance loss triangles
Project-URL: Homepage, https://ledger-investing-bermuda-ledger.readthedocs-hosted.com/en/latest/
Project-URL: Documentation, https://ledger-investing-bermuda-ledger.readthedocs-hosted.com/en/latest/
Project-URL: Repository, https://github.com/LedgerInvesting/bermuda-ledger
Author: Korra
License-File: LICENSE.txt
Requires-Python: >3.10
Requires-Dist: altair
Requires-Dist: awswrangler
Requires-Dist: babel
Requires-Dist: frozendict
Requires-Dist: numpy<2,>1.23.1
Requires-Dist: pandas>1.4.1
Requires-Dist: scipy
Requires-Dist: toolz
Provides-Extra: dev
Requires-Dist: beautifulsoup4==4.13.3; extra == 'dev'
Requires-Dist: boto3==1.36.22; extra == 'dev'
Requires-Dist: botocore==1.36.22; extra == 'dev'
Requires-Dist: build==1.2.2.post1; extra == 'dev'
Requires-Dist: certifi==2025.1.31; extra == 'dev'
Requires-Dist: cffi==1.17.1; extra == 'dev'
Requires-Dist: cfgv==3.4.0; extra == 'dev'
Requires-Dist: chainladder==0.8.23; extra == 'dev'
Requires-Dist: charset-normalizer==3.4.1; extra == 'dev'
Requires-Dist: click==8.1.8; extra == 'dev'
Requires-Dist: contourpy==1.3.1; extra == 'dev'
Requires-Dist: cryptography==44.0.1; extra == 'dev'
Requires-Dist: cycler==0.12.1; extra == 'dev'
Requires-Dist: deepdiff==8.2.0; extra == 'dev'
Requires-Dist: defusedxml==0.7.1; extra == 'dev'
Requires-Dist: dill==0.3.9; extra == 'dev'
Requires-Dist: distlib==0.3.9; extra == 'dev'
Requires-Dist: filelock==3.17.0; extra == 'dev'
Requires-Dist: fonttools==4.56.0; extra == 'dev'
Requires-Dist: identify==2.6.7; extra == 'dev'
Requires-Dist: idna==3.10; extra == 'dev'
Requires-Dist: iniconfig==2.0.0; extra == 'dev'
Requires-Dist: isort==6.0.0; extra == 'dev'
Requires-Dist: jinja2==3.1.5; extra == 'dev'
Requires-Dist: jmespath==1.0.1; extra == 'dev'
Requires-Dist: joblib==1.4.2; extra == 'dev'
Requires-Dist: kiwisolver==1.4.8; extra == 'dev'
Requires-Dist: llvmlite==0.44.0; extra == 'dev'
Requires-Dist: markupsafe==3.0.2; extra == 'dev'
Requires-Dist: matplotlib==3.10.0; extra == 'dev'
Requires-Dist: moto==5.0.28; extra == 'dev'
Requires-Dist: nodeenv==1.9.1; extra == 'dev'
Requires-Dist: numba==0.61.0; extra == 'dev'
Requires-Dist: numpy==1.26.4; extra == 'dev'
Requires-Dist: orderly-set==5.3.0; extra == 'dev'
Requires-Dist: packaging==24.2; extra == 'dev'
Requires-Dist: pandas==2.2.3; extra == 'dev'
Requires-Dist: patsy==1.0.1; extra == 'dev'
Requires-Dist: pillow==11.1.0; extra == 'dev'
Requires-Dist: pip-tools==7.4.1; extra == 'dev'
Requires-Dist: pip==25.0.1; extra == 'dev'
Requires-Dist: platformdirs==4.3.6; extra == 'dev'
Requires-Dist: pluggy==1.5.0; extra == 'dev'
Requires-Dist: pre-commit==4.1.0; extra == 'dev'
Requires-Dist: pycparser==2.22; extra == 'dev'
Requires-Dist: pyparsing==3.2.1; extra == 'dev'
Requires-Dist: pyproject-hooks==1.2.0; extra == 'dev'
Requires-Dist: pytest==8.3.4; extra == 'dev'
Requires-Dist: python-dateutil==2.9.0.post0; extra == 'dev'
Requires-Dist: pytz==2025.1; extra == 'dev'
Requires-Dist: pyyaml==6.0.2; extra == 'dev'
Requires-Dist: requests==2.32.3; extra == 'dev'
Requires-Dist: responses==0.25.6; extra == 'dev'
Requires-Dist: ruff==0.9.6; extra == 'dev'
Requires-Dist: s3transfer==0.11.2; extra == 'dev'
Requires-Dist: scikit-learn==1.6.1; extra == 'dev'
Requires-Dist: scipy==1.15.1; extra == 'dev'
Requires-Dist: setuptools==75.8.0; extra == 'dev'
Requires-Dist: six==1.17.0; extra == 'dev'
Requires-Dist: soupsieve==2.6; extra == 'dev'
Requires-Dist: sparse==0.15.5; extra == 'dev'
Requires-Dist: threadpoolctl==3.5.0; extra == 'dev'
Requires-Dist: typing-extensions==4.12.2; extra == 'dev'
Requires-Dist: tzdata==2025.1; extra == 'dev'
Requires-Dist: urllib3==2.3.0; extra == 'dev'
Requires-Dist: virtualenv==20.29.2; extra == 'dev'
Requires-Dist: werkzeug==3.1.3; extra == 'dev'
Requires-Dist: wheel==0.45.1; extra == 'dev'
Requires-Dist: xmltodict==0.14.2; extra == 'dev'
Provides-Extra: docs
Requires-Dist: alabaster==1.0.0; extra == 'docs'
Requires-Dist: altair==5.5.0; extra == 'docs'
Requires-Dist: attrs==25.1.0; extra == 'docs'
Requires-Dist: babel==2.17.0; extra == 'docs'
Requires-Dist: beautifulsoup4==4.13.3; extra == 'docs'
Requires-Dist: bleach==6.2.0; extra == 'docs'
Requires-Dist: certifi==2025.1.31; extra == 'docs'
Requires-Dist: charset-normalizer==3.4.1; extra == 'docs'
Requires-Dist: commonmark==0.9.1; extra == 'docs'
Requires-Dist: defusedxml==0.7.1; extra == 'docs'
Requires-Dist: docutils==0.21.2; extra == 'docs'
Requires-Dist: fastjsonschema==2.21.1; extra == 'docs'
Requires-Dist: idna==3.10; extra == 'docs'
Requires-Dist: imagesize==1.4.1; extra == 'docs'
Requires-Dist: jinja2==3.1.5; extra == 'docs'
Requires-Dist: jsonschema-specifications==2024.10.1; extra == 'docs'
Requires-Dist: jsonschema==4.23.0; extra == 'docs'
Requires-Dist: jupyter-client==8.6.3; extra == 'docs'
Requires-Dist: jupyter-core==5.7.2; extra == 'docs'
Requires-Dist: jupyterlab-pygments==0.3.0; extra == 'docs'
Requires-Dist: markdown==3.7; extra == 'docs'
Requires-Dist: markupsafe==3.0.2; extra == 'docs'
Requires-Dist: mistune==3.1.1; extra == 'docs'
Requires-Dist: narwhals==1.39.1; extra == 'docs'
Requires-Dist: nbclient==0.10.2; extra == 'docs'
Requires-Dist: nbconvert==7.16.6; extra == 'docs'
Requires-Dist: nbformat==5.10.4; extra == 'docs'
Requires-Dist: nbsphinx==0.9.6; extra == 'docs'
Requires-Dist: packaging==24.2; extra == 'docs'
Requires-Dist: pandocfilters==1.5.1; extra == 'docs'
Requires-Dist: platformdirs==4.3.6; extra == 'docs'
Requires-Dist: pockets==0.9.1; extra == 'docs'
Requires-Dist: pygments==2.19.1; extra == 'docs'
Requires-Dist: python-dateutil==2.9.0.post0; extra == 'docs'
Requires-Dist: pyzmq==26.2.1; extra == 'docs'
Requires-Dist: recommonmark==0.7.1; extra == 'docs'
Requires-Dist: referencing==0.36.2; extra == 'docs'
Requires-Dist: requests==2.32.3; extra == 'docs'
Requires-Dist: rpds-py==0.22.3; extra == 'docs'
Requires-Dist: six==1.17.0; extra == 'docs'
Requires-Dist: snowballstemmer==2.2.0; extra == 'docs'
Requires-Dist: soupsieve==2.6; extra == 'docs'
Requires-Dist: sphinx-copybutton==0.5.2; extra == 'docs'
Requires-Dist: sphinx-markdown-tables==0.0.17; extra == 'docs'
Requires-Dist: sphinx-wagtail-theme==6.5.0; extra == 'docs'
Requires-Dist: sphinx==8.1.3; extra == 'docs'
Requires-Dist: sphinxcontrib-applehelp==2.0.0; extra == 'docs'
Requires-Dist: sphinxcontrib-devhelp==2.0.0; extra == 'docs'
Requires-Dist: sphinxcontrib-htmlhelp==2.1.0; extra == 'docs'
Requires-Dist: sphinxcontrib-jsmath==1.0.1; extra == 'docs'
Requires-Dist: sphinxcontrib-napoleon==0.7; extra == 'docs'
Requires-Dist: sphinxcontrib-qthelp==2.0.0; extra == 'docs'
Requires-Dist: sphinxcontrib-serializinghtml==2.0.0; extra == 'docs'
Requires-Dist: sphinxext-altair==0.2.0; extra == 'docs'
Requires-Dist: tinycss2==1.4.0; extra == 'docs'
Requires-Dist: tornado==6.4.2; extra == 'docs'
Requires-Dist: traitlets==5.14.3; extra == 'docs'
Requires-Dist: typing-extensions==4.12.2; extra == 'docs'
Requires-Dist: urllib3==2.3.0; extra == 'docs'
Requires-Dist: webencodings==0.5.1; extra == 'docs'
Description-Content-Type: text/x-rst

|build-status| |ruff| |docs|

Bermuda 
-----------------------

Bermuda is a Python package for the representation, manipulation,
and exploration of insurance loss triangles, created
by `Korra <https://korra.com>`_.
It offers a user-friendly interface for:

* Loading and saving insurance loss triangles using a number of formats (e.g. JSON, CSV, Pandas :code:`DataFrame` objects, binary files).
* A single :code:`Triangle` class for manipulating triangles of varying complexities (e.g. ragged, multi-program, cumulative or incremental triangles).
* An intuitive :code:`Cell` type that can hold multiple data types and metadata.
* A collection of useful :code:`Cell`- and :code:`Triangle`-level functionality, including summarizing, aggregating, extending, filtering, and bootstrapping insurance loss triangles.

Check out the `full documentation <https://ledger-investing-bermuda-ledger.readthedocs-hosted.com/en/latest/?badge=latest>`_.

If you're new to Bermuda, take a look at the 
`Quick Start <https://ledger-investing-bermuda-ledger.readthedocs-hosted.com/en/latest/quick-start.html>`_
guide
for a brief overview of its functionality, or the
`User Guide <https://ledger-investing-bermuda-ledger.readthedocs-hosted.com/en/latest/user-guide/index.html>`_ 
for a more complete explanation
of Bermuda's design decisions, insurance triangles, and Bermuda's overall architecture.
The 
`Tutorials <https://ledger-investing-bermuda-ledger.readthedocs-hosted.com/en/latest/tutorials/index.html>`_ 
section includes common usage
patterns.

If you're interested in contributing to Bermuda,
take a look at our
`Developer Guide <https://ledger-investing-bermuda-ledger.readthedocs-hosted.com/en/latest/developer-guide/index.html>`_.

Installation
-------------

Core:

..  code-block:: bash

    python3.11 -m pip install bermuda-ledger

Developing:

..  code-block:: bash

    python3.11 -m pip install 'bermuda-ledger[dev]'

Docs:

..  code-block:: bash

    python3.11 -m pip install 'bermuda-ledger[docs]'

.. |build-status| image:: https://github.com/LedgerInvesting/bermuda-ledger/actions/workflows/test.yml/badge.svg
    :target: https://github.com/LedgerInvesting/bermuda-ledger/blob/main/.github/workflows/test.yml

.. |ruff| image:: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json
    :target: https://github.com/astral-sh/ruff

.. |docs| image:: https://readthedocs.com/projects/ledger-investing-bermuda-ledger/badge/?version=latest
    :target: https://ledger-investing-bermuda-ledger.readthedocs-hosted.com/en/latest/?badge=latest
