Metadata-Version: 2.1
Name: Rangekeeper
Version: 0.4.4a0
Summary: A Python library assisting financial modelling in scenario planning, decision-making, cashflow forecasting, and the like
License: MPL-2.0
Author: Daniel Fink
Author-email: danfink@mit.edu
Requires-Python: >=3.10,<3.13
Classifier: License :: OSI Approved
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Dist: Pint (>=0.20.1,<0.21.0)
Requires-Dist: PyYAML (>=6.0,<7.0)
Requires-Dist: aenum (>=3.1.11,<4.0.0)
Requires-Dist: docutils (==0.17.1)
Requires-Dist: ghp-import (>=2.1.0,<3.0.0)
Requires-Dist: jupyter (>=1.0.0,<2.0.0)
Requires-Dist: jupyter-book (>=1.0.0,<2.0.0)
Requires-Dist: matplotlib (>=3.7.0,<4.0.0)
Requires-Dist: mpld3 (>=0.5.10,<0.6.0)
Requires-Dist: multiprocess (>=0.70.14,<0.71.0)
Requires-Dist: networkx (>=3.0,<4.0)
Requires-Dist: numba (>=0.59.0,<0.60.0)
Requires-Dist: pandas (>=2.0.1,<3.0.0)
Requires-Dist: plotly (>=5.15.0,<6.0.0)
Requires-Dist: py-linq (>=1.4.0,<2.0.0)
Requires-Dist: py-moneyed (>=3.0,<4.0)
Requires-Dist: pyppeteer (>=2.0.0,<3.0.0)
Requires-Dist: python-dateutil (>=2.8.2,<3.0.0)
Requires-Dist: pyvis (>=0.3.2,<0.4.0)
Requires-Dist: pyxirr (>=0.10.3,<0.11.0)
Requires-Dist: scipy (>=1.11.2,<2.0.0)
Requires-Dist: seaborn (>=0.13.2,<0.14.0)
Requires-Dist: specklepy (>=2.16.0,<3.0.0)
Requires-Dist: tabulate (>=0.9.0,<0.10.0)
Requires-Dist: tqdm (>=4.65.0,<5.0.0)
Description-Content-Type: text/markdown

<img src="https://github.com/daniel-fink/rangekeeper/blob/v0.2.0/walkthrough/resources/rangekeeper.jpg?raw=true" width="300">

# Rangekeeper
Rangekeeper is an open-source library for financial modelling in real estate 
asset & development planning, decision-making, cashflow forecasting, and 
scenario analysis.

Rangekeeper enables real estate valuation at all stages and resolutions of 
description — from early-stage ‘back-of-the-envelope’ models to detailed 
commercial assessments, and can be completely synchronised with 3D design, 
engineering, and logistics modelling.

It decomposes elements of the Discounted Cash Flow (DCF) Proforma modelling 
approach into recomposable code functions that can be wired together to form a 
full model. More elaborate and worked-through examples of these classes and 
functions can be found in the [walkthrough documentation](https://daniel-fink.github.io/rangekeeper/).

Development of the library follows the rigorous methodology established by 
Profs Geltner and de Neufville in their book [Flexibility and Real Estate Valuation under Uncertainty: A Practical Guide for Developers](https://doi.org/10.1002/9781119106470).


## Installation
`pip install rangekeeper` or `poetry add rangekeeper`


## Development

### Dependencies

- Python >= 3.9 & < 3.11

- Poetry: <https://python-poetry.org/>, a package manager (although it is 
possible to roll your own; YMMV)

### Environment Setup

1. Install poetry, if you haven't yet: <https://python-poetry.org/docs/master/#installing-with-the-official-installer>

2. Clone this repo.

3. Use a terminal to install poetry packages from the repo's directory: `<path_to_repo>$ poetry install`

4. If you wish to develop this repo alongside other projects locally, you may 
install the local Rangekeeper library via `<path_to_repo>$ poetry run pip install -e <path_to_rangekeeper_repo>`,
replacing `<path_to_rangekeeper_repo>` with its location on your system.

