Metadata-Version: 2.4
Name: lifelib
Version: 0.12.0
Summary: Actuarial models in Python
Home-page: https://lifelib.io
Author: lifelib Developers
Author-email: lifelib Developers <admin@lifelib.io>
License: MIT License
Project-URL: Homepage, https://lifelib.io
Keywords: actuary,model,development
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Financial and Insurance Industry
Classifier: Intended Audience :: Science/Research
Classifier: Topic :: Office/Business :: Financial
Classifier: Topic :: Office/Business :: Financial :: Accounting
Classifier: Topic :: Office/Business :: Financial :: Investment
Classifier: Topic :: Office/Business :: Financial :: Spreadsheet
Classifier: Topic :: Scientific/Engineering :: Mathematics
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Requires-Python: >=3.7
Description-Content-Type: text/x-rst
License-File: LICENSE.txt
Requires-Dist: modelx>=0.31.0
Provides-Extra: test
Requires-Dist: pytest>=7.0; extra == "test"
Requires-Dist: pytest-cov>=4.0; extra == "test"
Requires-Dist: pytest-xdist>=3.0; extra == "test"
Requires-Dist: pandas; extra == "test"
Requires-Dist: numpy>=1.16.5; extra == "test"
Requires-Dist: openpyxl; extra == "test"
Provides-Extra: dev
Requires-Dist: pytest>=7.0; extra == "dev"
Requires-Dist: pytest-cov>=4.0; extra == "dev"
Requires-Dist: pytest-xdist>=3.0; extra == "dev"
Requires-Dist: pandas; extra == "dev"
Requires-Dist: numpy>=1.16.5; extra == "dev"
Requires-Dist: openpyxl; extra == "dev"
Requires-Dist: flake8>=6.0; extra == "dev"
Requires-Dist: black>=23.0; extra == "dev"
Requires-Dist: isort>=5.0; extra == "dev"
Dynamic: author
Dynamic: home-page
Dynamic: license-file
Dynamic: requires-python

lifelib
==========
*Life actuarial models in Python*

.. image:: https://img.shields.io/pypi/pyversions/lifelib
    :target: https://pypi.org/project/lifelib/

.. image:: https://img.shields.io/pypi/v/lifelib
    :target: https://pypi.org/project/lifelib/

.. image:: https://img.shields.io/pypi/l/lifelib
    :target: https://github.com/lifelib-dev/lifelib/blob/master/LICENSE.txt


What is lifelib?
-------------------

**lifelib** is a collection of open-source life actuarial models written in Python.
lifelib includes a variety of models, with sample scripts
and Jupyter notebooks that demonstrate how to use the models.

Visit https://lifelib.io for more information!

What for?
---------

lifelib models are highly versatile and transparent.
You can customize lifelib models and utilize them
in various practical areas, such as:

- Model validation / testing
- Pricing / profit testing
- Research / educational projects
- Valuation / cashflow projections
- Asset-liability modeling
- Risk and capital modeling
- Actuarial modernization to replace spreadsheet models


Why lifelib?
------------

By effectively utilizing the models in lifelib,
you can expect the following benefits from both model development and governance perspectives:

- A more efficient, transparent, and faster model development experience
- Model integration with the Python ecosystem (Pandas, Numpy, SciPy, etc.)
- Elimination of spreadsheet errors
- Improved version control and model governance
- Automated model testing

Some of the models in lifelib are built using `modelx`_, an open-source
Python package for building object-oriented models in Python.
By using lifelib, you can enjoy the following advantages:

* Models run fast!
* Formulas are easy to read
* Easy to trace formula dependency and errors
* Formulas are instantly evaluated
* Pandas and Numpy can be utilized
* Object-oriented
* Input from Excel and CSV files
* Documents can be integrated
* Formulas are saved in text files

.. _modelx: http://docs.modelx.io


License
-------
Copyright (c) 2018-2026 lifelib Developers

lifelib is free software; you can redistribute it and/or
modify it under the terms of
`MIT License
<https://github.com/lifelib-dev/lifelib/blob/master/LICENSE.txt>`_.

Contributions, productive comments, requests and feedback from the community
are always welcome. Information on lifelib development is found at Github
https://github.com/lifelib-dev/lifelib

Requirements
------------

The lifelib package requires Python 3.6 or newer,
and the following third-party packages.

* modelx
* networkx 2.0+
* Numpy
* Pandas
* OpenPyXL

lifelib consists of multiple libraries.
Each library may have additional requirements in addition to the above.


Development
-----------

For developers contributing to lifelib, a Makefile is provided to simplify
environment setup and common development tasks.

Quick start::

    make init                      # Set up development environment (use Git Bash or WSL if you use a Windows machine)
    source venv_lifelib/bin/activate  # Activate virtual environment 
    make test                      # Run tests

Common commands::

    make help              # Show all available commands
    make install-dev       # Install with dev dependencies
    make test              # Run tests
    make test-cov          # Run tests with coverage report
    make format            # Auto-format code (black, isort)
    make lint              # Check code quality (flake8)
    make clean             # Clean generated files

For detailed information, see ``devnotes/MAKEFILE.md`` and ``devnotes/TESTING.md``.


Contributors
------------

* 2023

  - @alexeybaran
  - @fumitoh
  - @MatthewCaseres

* 2018-2022

  - @alexeybaran
  - @fumitoh
  - @GregorFabjan
  - @lewisfogden
  - @qnity

History
-------
lifelib was first released on January 2nd, 2018.

