rangekeeper 0.7.5__tar.gz → 0.7.7__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {rangekeeper-0.7.5 → rangekeeper-0.7.7}/PKG-INFO +23 -29
- rangekeeper-0.7.7/Rangekeeper.egg-info/PKG-INFO +45 -0
- rangekeeper-0.7.7/Rangekeeper.egg-info/SOURCES.txt +38 -0
- rangekeeper-0.7.7/Rangekeeper.egg-info/dependency_links.txt +1 -0
- rangekeeper-0.7.7/Rangekeeper.egg-info/requires.txt +18 -0
- rangekeeper-0.7.7/Rangekeeper.egg-info/top_level.txt +1 -0
- rangekeeper-0.7.7/pyproject.toml +35 -0
- {rangekeeper-0.7.5 → rangekeeper-0.7.7}/rangekeeper/__init__.py +4 -5
- {rangekeeper-0.7.5 → rangekeeper-0.7.7}/rangekeeper/duration.py +279 -185
- {rangekeeper-0.7.5 → rangekeeper-0.7.7}/rangekeeper/flux.py +142 -76
- rangekeeper-0.7.7/rangekeeper/graph.py +825 -0
- rangekeeper-0.7.7/rangekeeper/space.py +42 -0
- rangekeeper-0.7.7/setup.cfg +4 -0
- rangekeeper-0.7.7/tests/test_api.py +190 -0
- rangekeeper-0.7.7/tests/test_dynamics.py +683 -0
- rangekeeper-0.7.7/tests/test_formulas.py +303 -0
- rangekeeper-0.7.7/tests/test_graph.py +101 -0
- rangekeeper-0.7.7/tests/test_measures.py +108 -0
- rangekeeper-0.7.7/tests/test_models.py +180 -0
- rangekeeper-0.7.7/tests/test_modules.py +509 -0
- rangekeeper-0.7.7/tests/test_projections.py +84 -0
- rangekeeper-0.7.5/pyproject.toml +0 -34
- rangekeeper-0.7.5/rangekeeper/graph.py +0 -740
- rangekeeper-0.7.5/rangekeeper/space.py +0 -42
- rangekeeper-0.7.5/rangekeeper/span.py +0 -221
- {rangekeeper-0.7.5 → rangekeeper-0.7.7}/README.md +0 -0
- {rangekeeper-0.7.5 → rangekeeper-0.7.7}/rangekeeper/api.py +0 -0
- {rangekeeper-0.7.5 → rangekeeper-0.7.7}/rangekeeper/conftest.py +0 -0
- {rangekeeper-0.7.5 → rangekeeper-0.7.7}/rangekeeper/distribution.py +0 -0
- {rangekeeper-0.7.5 → rangekeeper-0.7.7}/rangekeeper/dynamics/__init__.py +0 -0
- {rangekeeper-0.7.5 → rangekeeper-0.7.7}/rangekeeper/dynamics/black_swan.py +0 -0
- {rangekeeper-0.7.5 → rangekeeper-0.7.7}/rangekeeper/dynamics/cyclicality.py +0 -0
- {rangekeeper-0.7.5 → rangekeeper-0.7.7}/rangekeeper/dynamics/market.py +0 -0
- {rangekeeper-0.7.5 → rangekeeper-0.7.7}/rangekeeper/dynamics/noise.py +0 -0
- {rangekeeper-0.7.5 → rangekeeper-0.7.7}/rangekeeper/dynamics/trend.py +0 -0
- {rangekeeper-0.7.5 → rangekeeper-0.7.7}/rangekeeper/dynamics/volatility.py +0 -0
- {rangekeeper-0.7.5 → rangekeeper-0.7.7}/rangekeeper/extrapolation.py +0 -0
- {rangekeeper-0.7.5 → rangekeeper-0.7.7}/rangekeeper/format.py +0 -0
- {rangekeeper-0.7.5 → rangekeeper-0.7.7}/rangekeeper/formula/__init__.py +0 -0
- {rangekeeper-0.7.5 → rangekeeper-0.7.7}/rangekeeper/formula/financial.py +0 -0
- {rangekeeper-0.7.5 → rangekeeper-0.7.7}/rangekeeper/measure.py +0 -0
- {rangekeeper-0.7.5 → rangekeeper-0.7.7}/rangekeeper/policy.py +0 -0
- {rangekeeper-0.7.5 → rangekeeper-0.7.7}/rangekeeper/projection.py +0 -0
- {rangekeeper-0.7.5 → rangekeeper-0.7.7}/rangekeeper/segmentation.py +0 -0
|
@@ -1,34 +1,29 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: Rangekeeper
|
|
3
|
-
Version: 0.7.
|
|
3
|
+
Version: 0.7.7
|
|
4
4
|
Summary: A Python library assisting financial modelling in real estate asset & development planning, decision-making, cashflow forecasting, and scenario analysis.
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
Requires-Python: >=3.10,<3.13
|
|
9
|
-
Classifier: License :: OSI Approved
|
|
10
|
-
Classifier: Programming Language :: Python :: 3
|
|
11
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
12
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
13
|
-
Classifier: Programming Language :: Python :: 3.12
|
|
14
|
-
Requires-Dist: aenum (>=3.1,<4.0)
|
|
15
|
-
Requires-Dist: black (>=25.1.0,<26.0.0)
|
|
16
|
-
Requires-Dist: matplotlib (>=3.10,<4.0)
|
|
17
|
-
Requires-Dist: multiprocess (>=0.70,<0.71)
|
|
18
|
-
Requires-Dist: networkx (>=3.3,<4.0)
|
|
19
|
-
Requires-Dist: numba (>=0.61,<0.62)
|
|
20
|
-
Requires-Dist: numpy-financial (>=1.0,<2.0)
|
|
21
|
-
Requires-Dist: pandas (>=2.2,<3.0)
|
|
22
|
-
Requires-Dist: pint (>=0.24,<0.25)
|
|
23
|
-
Requires-Dist: plotly (>=6.0,<7.0)
|
|
24
|
-
Requires-Dist: py-moneyed (>=3.0,<4.0)
|
|
25
|
-
Requires-Dist: pyvis (>=0.3,<0.4)
|
|
26
|
-
Requires-Dist: pyxirr (>=0.10,<0.11)
|
|
27
|
-
Requires-Dist: scipy (>=1.14,<2.0)
|
|
28
|
-
Requires-Dist: seaborn (>=0.13,<0.14)
|
|
29
|
-
Requires-Dist: specklepy (>=2.21,<3.0)
|
|
30
|
-
Requires-Dist: tabulate (>=0.9,<0.10)
|
|
5
|
+
Author-email: Daniel Fink <danfink@mit.edu>
|
|
6
|
+
License-Expression: MPL-2.0
|
|
7
|
+
Requires-Python: <3.13,>=3.10
|
|
31
8
|
Description-Content-Type: text/markdown
|
|
9
|
+
Requires-Dist: matplotlib>=3.10
|
|
10
|
+
Requires-Dist: pandas>=2.2
|
|
11
|
+
Requires-Dist: pint>=0.24
|
|
12
|
+
Requires-Dist: pyxirr>=0.10
|
|
13
|
+
Requires-Dist: scipy>=1.14
|
|
14
|
+
Requires-Dist: networkx>=3.3
|
|
15
|
+
Requires-Dist: py-moneyed>=3.0
|
|
16
|
+
Requires-Dist: tabulate>=0.9
|
|
17
|
+
Requires-Dist: specklepy>=2.21
|
|
18
|
+
Requires-Dist: numba>=0.61
|
|
19
|
+
Requires-Dist: multiprocess>=0.70
|
|
20
|
+
Requires-Dist: seaborn>=0.13
|
|
21
|
+
Requires-Dist: pyvis>=0.3
|
|
22
|
+
Requires-Dist: plotly>=6.0
|
|
23
|
+
Requires-Dist: aenum>=3.1
|
|
24
|
+
Requires-Dist: numpy-financial>=1.0
|
|
25
|
+
Requires-Dist: black>=25.1
|
|
26
|
+
Requires-Dist: pytest>=8.3
|
|
32
27
|
|
|
33
28
|
# Rangekeeper Source
|
|
34
29
|
This directory holds the source code for the Rangekeeper Library
|
|
@@ -48,4 +43,3 @@ If you wish to contribute to its development, it is recommended to use [Poetry](
|
|
|
48
43
|
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>`,
|
|
49
44
|
replacing `<path_to_rangekeeper_repo>` with its location on your system.
|
|
50
45
|
5. Some tests require API access to [Speckle](https://speckle.systems/). It is recommended to use the [Poetry Dotenv Plugin](https://github.com/mpeteuil/poetry-dotenv-plugin) via `poetry self add poetry-dotenv-plugin`, and add a `.env` file in the project's root directory with your `SPECKLE_TOKEN` environment variable.
|
|
51
|
-
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: Rangekeeper
|
|
3
|
+
Version: 0.7.7
|
|
4
|
+
Summary: A Python library assisting financial modelling in real estate asset & development planning, decision-making, cashflow forecasting, and scenario analysis.
|
|
5
|
+
Author-email: Daniel Fink <danfink@mit.edu>
|
|
6
|
+
License-Expression: MPL-2.0
|
|
7
|
+
Requires-Python: <3.13,>=3.10
|
|
8
|
+
Description-Content-Type: text/markdown
|
|
9
|
+
Requires-Dist: matplotlib>=3.10
|
|
10
|
+
Requires-Dist: pandas>=2.2
|
|
11
|
+
Requires-Dist: pint>=0.24
|
|
12
|
+
Requires-Dist: pyxirr>=0.10
|
|
13
|
+
Requires-Dist: scipy>=1.14
|
|
14
|
+
Requires-Dist: networkx>=3.3
|
|
15
|
+
Requires-Dist: py-moneyed>=3.0
|
|
16
|
+
Requires-Dist: tabulate>=0.9
|
|
17
|
+
Requires-Dist: specklepy>=2.21
|
|
18
|
+
Requires-Dist: numba>=0.61
|
|
19
|
+
Requires-Dist: multiprocess>=0.70
|
|
20
|
+
Requires-Dist: seaborn>=0.13
|
|
21
|
+
Requires-Dist: pyvis>=0.3
|
|
22
|
+
Requires-Dist: plotly>=6.0
|
|
23
|
+
Requires-Dist: aenum>=3.1
|
|
24
|
+
Requires-Dist: numpy-financial>=1.0
|
|
25
|
+
Requires-Dist: black>=25.1
|
|
26
|
+
Requires-Dist: pytest>=8.3
|
|
27
|
+
|
|
28
|
+
# Rangekeeper Source
|
|
29
|
+
This directory holds the source code for the Rangekeeper Library
|
|
30
|
+
|
|
31
|
+
## Installation
|
|
32
|
+
The library is offered through PyPI, and so its installation in other projects can be performed by:
|
|
33
|
+
`pip install rangekeeper` or `poetry add rangekeeper`
|
|
34
|
+
|
|
35
|
+
## Development
|
|
36
|
+
If you wish to contribute to its development, it is recommended to use [Poetry](https://python-poetry.org/) for environment and dependency management:
|
|
37
|
+
|
|
38
|
+
### Environment Setup
|
|
39
|
+
|
|
40
|
+
1. Install poetry, if you haven't yet: <https://python-poetry.org/docs/master/#installing-with-the-official-installer>
|
|
41
|
+
2. Clone this repo.
|
|
42
|
+
3. Use a terminal to install poetry packages from the repo's directory: `<path_to_repo>$ poetry install`
|
|
43
|
+
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>`,
|
|
44
|
+
replacing `<path_to_rangekeeper_repo>` with its location on your system.
|
|
45
|
+
5. Some tests require API access to [Speckle](https://speckle.systems/). It is recommended to use the [Poetry Dotenv Plugin](https://github.com/mpeteuil/poetry-dotenv-plugin) via `poetry self add poetry-dotenv-plugin`, and add a `.env` file in the project's root directory with your `SPECKLE_TOKEN` environment variable.
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
README.md
|
|
2
|
+
pyproject.toml
|
|
3
|
+
Rangekeeper.egg-info/PKG-INFO
|
|
4
|
+
Rangekeeper.egg-info/SOURCES.txt
|
|
5
|
+
Rangekeeper.egg-info/dependency_links.txt
|
|
6
|
+
Rangekeeper.egg-info/requires.txt
|
|
7
|
+
Rangekeeper.egg-info/top_level.txt
|
|
8
|
+
rangekeeper/__init__.py
|
|
9
|
+
rangekeeper/api.py
|
|
10
|
+
rangekeeper/conftest.py
|
|
11
|
+
rangekeeper/distribution.py
|
|
12
|
+
rangekeeper/duration.py
|
|
13
|
+
rangekeeper/extrapolation.py
|
|
14
|
+
rangekeeper/flux.py
|
|
15
|
+
rangekeeper/format.py
|
|
16
|
+
rangekeeper/graph.py
|
|
17
|
+
rangekeeper/measure.py
|
|
18
|
+
rangekeeper/policy.py
|
|
19
|
+
rangekeeper/projection.py
|
|
20
|
+
rangekeeper/segmentation.py
|
|
21
|
+
rangekeeper/space.py
|
|
22
|
+
rangekeeper/dynamics/__init__.py
|
|
23
|
+
rangekeeper/dynamics/black_swan.py
|
|
24
|
+
rangekeeper/dynamics/cyclicality.py
|
|
25
|
+
rangekeeper/dynamics/market.py
|
|
26
|
+
rangekeeper/dynamics/noise.py
|
|
27
|
+
rangekeeper/dynamics/trend.py
|
|
28
|
+
rangekeeper/dynamics/volatility.py
|
|
29
|
+
rangekeeper/formula/__init__.py
|
|
30
|
+
rangekeeper/formula/financial.py
|
|
31
|
+
tests/test_api.py
|
|
32
|
+
tests/test_dynamics.py
|
|
33
|
+
tests/test_formulas.py
|
|
34
|
+
tests/test_graph.py
|
|
35
|
+
tests/test_measures.py
|
|
36
|
+
tests/test_models.py
|
|
37
|
+
tests/test_modules.py
|
|
38
|
+
tests/test_projections.py
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
matplotlib>=3.10
|
|
2
|
+
pandas>=2.2
|
|
3
|
+
pint>=0.24
|
|
4
|
+
pyxirr>=0.10
|
|
5
|
+
scipy>=1.14
|
|
6
|
+
networkx>=3.3
|
|
7
|
+
py-moneyed>=3.0
|
|
8
|
+
tabulate>=0.9
|
|
9
|
+
specklepy>=2.21
|
|
10
|
+
numba>=0.61
|
|
11
|
+
multiprocess>=0.70
|
|
12
|
+
seaborn>=0.13
|
|
13
|
+
pyvis>=0.3
|
|
14
|
+
plotly>=6.0
|
|
15
|
+
aenum>=3.1
|
|
16
|
+
numpy-financial>=1.0
|
|
17
|
+
black>=25.1
|
|
18
|
+
pytest>=8.3
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
rangekeeper
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "Rangekeeper"
|
|
3
|
+
version = "0.7.7"
|
|
4
|
+
description = "A Python library assisting financial modelling in real estate asset & development planning, decision-making, cashflow forecasting, and scenario analysis."
|
|
5
|
+
authors = [
|
|
6
|
+
{ name = "Daniel Fink", email = "danfink@mit.edu" }
|
|
7
|
+
]
|
|
8
|
+
license = "MPL-2.0"
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
requires-python = ">=3.10, <3.13"
|
|
11
|
+
|
|
12
|
+
dependencies = [
|
|
13
|
+
"matplotlib>=3.10",
|
|
14
|
+
"pandas>=2.2",
|
|
15
|
+
"pint>=0.24",
|
|
16
|
+
"pyxirr>=0.10",
|
|
17
|
+
"scipy>=1.14",
|
|
18
|
+
"networkx>=3.3",
|
|
19
|
+
"py-moneyed>=3.0",
|
|
20
|
+
"tabulate>=0.9",
|
|
21
|
+
"specklepy>=2.21",
|
|
22
|
+
"numba>=0.61",
|
|
23
|
+
"multiprocess>=0.70",
|
|
24
|
+
"seaborn>=0.13",
|
|
25
|
+
"pyvis>=0.3",
|
|
26
|
+
"plotly>=6.0",
|
|
27
|
+
"aenum>=3.1",
|
|
28
|
+
"numpy-financial>=1.0",
|
|
29
|
+
"black>=25.1",
|
|
30
|
+
"pytest>=8.3",
|
|
31
|
+
]
|
|
32
|
+
|
|
33
|
+
[tool.ruff.format]
|
|
34
|
+
preview = true # Uses Black's experimental formatting rules
|
|
35
|
+
|
|
@@ -7,9 +7,9 @@ from . import graph as graph
|
|
|
7
7
|
from . import measure as measure
|
|
8
8
|
from . import policy as policy
|
|
9
9
|
from . import projection as projection
|
|
10
|
-
from . import span as span
|
|
11
10
|
from . import segmentation as segmentation
|
|
12
|
-
|
|
11
|
+
|
|
12
|
+
# from . import space as space
|
|
13
13
|
from . import dynamics as dynamics
|
|
14
14
|
from . import formula as formula
|
|
15
15
|
from . import format as format
|
|
@@ -22,8 +22,8 @@ from matplotlib import cm
|
|
|
22
22
|
|
|
23
23
|
|
|
24
24
|
def update_class(
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
main_class=None, exclude=("__module__", "__name__", "__dict__", "__weakref__")
|
|
26
|
+
):
|
|
27
27
|
"""Class decorator. Adds all methods and members from the wrapped class to main_class
|
|
28
28
|
|
|
29
29
|
Args:
|
|
@@ -51,4 +51,3 @@ def rgba_from_cmap(cmap_name, start_val, stop_val, val):
|
|
|
51
51
|
norm = mpl.colors.Normalize(vmin=start_val, vmax=stop_val)
|
|
52
52
|
scalar_map = cm.ScalarMappable(norm=norm, cmap=cmap)
|
|
53
53
|
return scalar_map.to_rgba(val)
|
|
54
|
-
|