{ "info": { "author": "Tanner Rollefson", "author_email": "", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Developers", "Intended Audience :: Financial and Insurance Industry", "Intended Audience :: Science/Research", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Natural Language :: English", "Operating System :: MacOS", "Operating System :: Microsoft :: Windows", "Operating System :: POSIX :: Linux", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Scientific/Engineering :: Mathematics" ], "description": "![elizur.](https://elizur.s3.amazonaws.com/elizur_github_banner.png \"elizur.\")\n\n[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)\n[![Build Status](https://travis-ci.org/trollefson/elizur.svg?branch=master)](https://travis-ci.org/trollefson/elizur)\n[![PyPI version](https://badge.fury.io/py/elizur.svg)](https://badge.fury.io/py/elizur)\n[![Coverage Status](https://coveralls.io/repos/github/trollefson/elizur/badge.svg?branch=master)](https://coveralls.io/github/trollefson/elizur?branch=master)\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/ambv/black)\n\nElizur is an open source finance library for actuaries, finance professionals, and students. The library currently helps with calculating present values, future values, expected present values, life contingencies, and other common procedures performed by professionals and students. The library is free of charge, open source, well tested, documented, and depends only on the Python 3 standard library at runtime. The Elizur project is named after Elizur Wright.\n\nIf you like Elizur, support the project by clicking the :star: above!\n\n## Requirements\n\n* [Python 3.5+](https://www.python.org/downloads/)\n\n## Install\n\n`pip install elizur`\n\n## Documentation\n\nRead the library documentation [here](https://trollefson.github.io/elizur)\n\n## Examples\n\nGiven an interest rate calculate a discount factor\n\n```python\n>>> import elizur.life.annuity as ann\n>>> ann.discount_factor(0.07)\n0.9345794\n```\n\nGiven a term and interest rate calculate the present value of an annuity\n\n```python\n>>> import elizur.life.annuity as ann\n>>> ann.annuity_pv(n=10, i=0.07)\n7.023581540932602\n```\n\nGiven a term and interest rate calculate the present value of an annuity increasing by one each period\n\n```python\n>>> import elizur.life.annuity as ann\n>>> ann.increasing_annuity_pv(n=10, i=0.07)\n34.73913324929581\n```\n\nGiven a mortality table calculate life contingencies and probabilities\n\n```python\n>>> from elizur.life.table import LifeTable, EXAMPLE_TABLE\n>>> life_table = LifeTable(EXAMPLE_TABLE)\n>>> life_table.qx(0)\n0.006271\n>>> life_table.qx(77)\n0.036094\n>>> life_table.tqxn(3, 2, 77)\n0.08770141840040623\n>>> life_table.Ax(0, 0.07)\n0.01562517028789102\n>>> life_table.IAxn(0, 0.07, 30)\n0.04871771529491165\n>>> life_table.ax(0, 0.07)\n14.046872397027947\n>>> life_table.axn_due(0, 0.07, 30)\n13.173054007415931\n```\n\nGiven a set of cash flows, probabilities, and interest rates calculate the expected present value\n\n```python\n>>> from elizur.life import expected_present_value\n>>> expected_present_value(\n>>> cash_flows=(10, 11, 12),\n>>> probabilities=(0.99, 0.98, 0.97),\n>>> interest_rates=(0.05, 0.06, 0.07)\n>>> )\n28.88814436019514\n```\n\nImport a mortality table in a specific SOA CSV format and perform life contingency calculations. Download a mortality table in csv format from the SOA [here](https://mort.soa.org). This example uses the first table, 1941 CSO Basic Table ANB.\n\n```python\n>>> from elizur.life.util import read_soa_csv_mort_table \n>>> from elizur.life.table import LifeTable\n>>> mort_table = read_soa_csv_table(\"1941_cso_basic_table_anb.csv\")\n>>> life_table = LifeTable(mort_table[\"values\"])\n>>> life_table.qx(77)\n0.10364\n>>> life_table.Ax(0, 0.07)\n0.03800673925889163\n```\n\nThere are many other possibilities. Check out the reference section of the [docs](https://trollefson.github.io/elizur) for a full list of functionality.\n\n## Chat\n\nIf you have questions, suggestions, or just want to talk about using Python join us on Slack [here](https://elizurchat-slackin.herokuapp.com).\n\n## Contributing\n\nDo you want to help this project without contributing code? Take our survey [here](https://www.surveymonkey.com/r/BZ55VPH). \n\nOtherwise checkout the contributing guide [here](https://github.com/trollefson/elizur/blob/master/CONTRIBUTING.md) if you like to contribute code or raise issues.\n\n## New to Python?\n\n* Join us on Slack [here](https://elizurchat-slackin.herokuapp.com) and we will help you get started!\n* Checkout [this](https://www.udacity.com/course/introduction-to-python--ud1110) course from Udacity\n* Checkout the [Learn Python 3 The Hard Way](https://www.oreilly.com/library/view/learn-python-3/9780134693866/) book\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/trollefson/elizur", "keywords": "actuary,actuarial,life,contingencies,finance,math,elizur", "license": "", "maintainer": "", "maintainer_email": "", "name": "elizur", "package_url": "https://pypi.org/project/elizur/", "platform": "", "project_url": "https://pypi.org/project/elizur/", "project_urls": { "Documentation": "https://trollefson.github.io/elizur", "Homepage": "https://github.com/trollefson/elizur", "Source": "https://github.com/trollefson/elizur" }, "release_url": "https://pypi.org/project/elizur/0.1.2/", "requires_dist": [ "black ; extra == 'dev'", "coveralls ; extra == 'dev'", "mock ; extra == 'dev'", "pylint ; extra == 'dev'", "pytest ; extra == 'dev'", "pytest-cov ; extra == 'dev'", "sphinx ; extra == 'dev'", "sphinx-rtd-theme ; extra == 'dev'" ], "requires_python": "", "summary": "Elizur is a finance library for actuaries, finance professionals, and students.", "version": "0.1.2" }, "last_serial": 5459901, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "c8bde3ad28b8c010d1095be5363f4a76", "sha256": "682b608eed8bcb9c1a6ddc1c0a7fec65785ce851644c4dc85a94708bad2710e8" }, "downloads": -1, "filename": "elizur-0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "c8bde3ad28b8c010d1095be5363f4a76", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 20809, "upload_time": "2019-06-28T03:46:45", "url": "https://files.pythonhosted.org/packages/b8/0e/6f4027a75cc9846c709acbc42f95bda9fb373a44665873a9ad373272b1b4/elizur-0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "023de7254b3e8049452f04c69420dacb", "sha256": "bbbe842d492529d947feeffa919257e90c89a23f18936d81666f6a5ca2c8320e" }, "downloads": -1, "filename": "elizur-0.1.tar.gz", "has_sig": false, "md5_digest": "023de7254b3e8049452f04c69420dacb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8248, "upload_time": "2019-06-28T03:46:47", "url": "https://files.pythonhosted.org/packages/8b/40/ea5cc788f2c2c944651276cf76ec9100e0a943ee75c396141c888dd81bca/elizur-0.1.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "577bcf6010d73749993becd097ea2da6", "sha256": "1d51dc9bc7c6c5e053846c7b712b01c5e5603a9588e1a3ba3d80b878b74fd881" }, "downloads": -1, "filename": "elizur-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "577bcf6010d73749993becd097ea2da6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 20862, "upload_time": "2019-06-28T03:50:47", "url": "https://files.pythonhosted.org/packages/f5/d3/3b586bdf0831b24329a3105dcc33443d7b56e8e1405ebab40570d50e1af9/elizur-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "eeff0da468236b376671e3f58bd3950c", "sha256": "9a5bcbfb9ce8faf3c5ddb5f35d62fca7e516fac73ee0ccfea959071ff35a52b3" }, "downloads": -1, "filename": "elizur-0.1.1.tar.gz", "has_sig": false, "md5_digest": "eeff0da468236b376671e3f58bd3950c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8285, "upload_time": "2019-06-28T03:50:49", "url": "https://files.pythonhosted.org/packages/54/03/344e8fe90edf179bd488fa779efc002d0c9edd50d25aacc5baf681c49086/elizur-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "d5c3ebd9d5a57b00edeb31e4e133ad22", "sha256": "92373fe1a3cc0891fcac3dca3575cff8d6eb7a0e8ba7ccb20c6e321628ecfd98" }, "downloads": -1, "filename": "elizur-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "d5c3ebd9d5a57b00edeb31e4e133ad22", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 20863, "upload_time": "2019-06-28T03:52:51", "url": "https://files.pythonhosted.org/packages/db/64/033d6f8a8f8565838a39ba3c84f1d7158003c191c33468ed0e34bbf22fb8/elizur-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cf39311531c2a64bf44e0d1c2ddf59b8", "sha256": "9e170c5644c32af436ecf8f2753361bbec31a4bbab296a9f7a3f96bf62e18382" }, "downloads": -1, "filename": "elizur-0.1.2.tar.gz", "has_sig": false, "md5_digest": "cf39311531c2a64bf44e0d1c2ddf59b8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8283, "upload_time": "2019-06-28T03:52:54", "url": "https://files.pythonhosted.org/packages/7b/fd/8d4c283e3ec73861f0162aca37f878c73413672d7e44fbf680823db2fc82/elizur-0.1.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d5c3ebd9d5a57b00edeb31e4e133ad22", "sha256": "92373fe1a3cc0891fcac3dca3575cff8d6eb7a0e8ba7ccb20c6e321628ecfd98" }, "downloads": -1, "filename": "elizur-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "d5c3ebd9d5a57b00edeb31e4e133ad22", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 20863, "upload_time": "2019-06-28T03:52:51", "url": "https://files.pythonhosted.org/packages/db/64/033d6f8a8f8565838a39ba3c84f1d7158003c191c33468ed0e34bbf22fb8/elizur-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cf39311531c2a64bf44e0d1c2ddf59b8", "sha256": "9e170c5644c32af436ecf8f2753361bbec31a4bbab296a9f7a3f96bf62e18382" }, "downloads": -1, "filename": "elizur-0.1.2.tar.gz", "has_sig": false, "md5_digest": "cf39311531c2a64bf44e0d1c2ddf59b8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8283, "upload_time": "2019-06-28T03:52:54", "url": "https://files.pythonhosted.org/packages/7b/fd/8d4c283e3ec73861f0162aca37f878c73413672d7e44fbf680823db2fc82/elizur-0.1.2.tar.gz" } ] }