rangekeeper 0.8.0__tar.gz → 0.8.2__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.8.0 → rangekeeper-0.8.2}/PKG-INFO +1 -1
- {rangekeeper-0.8.0 → rangekeeper-0.8.2}/Rangekeeper.egg-info/PKG-INFO +1 -1
- {rangekeeper-0.8.0 → rangekeeper-0.8.2}/pyproject.toml +1 -1
- {rangekeeper-0.8.0 → rangekeeper-0.8.2}/rangekeeper/flux.py +35 -2
- {rangekeeper-0.8.0 → rangekeeper-0.8.2}/rangekeeper/formula/financial.py +1 -1
- {rangekeeper-0.8.0 → rangekeeper-0.8.2}/README.md +0 -0
- {rangekeeper-0.8.0 → rangekeeper-0.8.2}/Rangekeeper.egg-info/SOURCES.txt +0 -0
- {rangekeeper-0.8.0 → rangekeeper-0.8.2}/Rangekeeper.egg-info/dependency_links.txt +0 -0
- {rangekeeper-0.8.0 → rangekeeper-0.8.2}/Rangekeeper.egg-info/requires.txt +0 -0
- {rangekeeper-0.8.0 → rangekeeper-0.8.2}/Rangekeeper.egg-info/top_level.txt +0 -0
- {rangekeeper-0.8.0 → rangekeeper-0.8.2}/rangekeeper/__init__.py +0 -0
- {rangekeeper-0.8.0 → rangekeeper-0.8.2}/rangekeeper/api.py +0 -0
- {rangekeeper-0.8.0 → rangekeeper-0.8.2}/rangekeeper/distribution.py +0 -0
- {rangekeeper-0.8.0 → rangekeeper-0.8.2}/rangekeeper/duration.py +0 -0
- {rangekeeper-0.8.0 → rangekeeper-0.8.2}/rangekeeper/dynamics/__init__.py +0 -0
- {rangekeeper-0.8.0 → rangekeeper-0.8.2}/rangekeeper/dynamics/black_swan.py +0 -0
- {rangekeeper-0.8.0 → rangekeeper-0.8.2}/rangekeeper/dynamics/cyclicality.py +0 -0
- {rangekeeper-0.8.0 → rangekeeper-0.8.2}/rangekeeper/dynamics/market.py +0 -0
- {rangekeeper-0.8.0 → rangekeeper-0.8.2}/rangekeeper/dynamics/noise.py +0 -0
- {rangekeeper-0.8.0 → rangekeeper-0.8.2}/rangekeeper/dynamics/trend.py +0 -0
- {rangekeeper-0.8.0 → rangekeeper-0.8.2}/rangekeeper/dynamics/volatility.py +0 -0
- {rangekeeper-0.8.0 → rangekeeper-0.8.2}/rangekeeper/extrapolation.py +0 -0
- {rangekeeper-0.8.0 → rangekeeper-0.8.2}/rangekeeper/format.py +0 -0
- {rangekeeper-0.8.0 → rangekeeper-0.8.2}/rangekeeper/formula/__init__.py +0 -0
- {rangekeeper-0.8.0 → rangekeeper-0.8.2}/rangekeeper/graph.py +0 -0
- {rangekeeper-0.8.0 → rangekeeper-0.8.2}/rangekeeper/measure.py +0 -0
- {rangekeeper-0.8.0 → rangekeeper-0.8.2}/rangekeeper/policy.py +0 -0
- {rangekeeper-0.8.0 → rangekeeper-0.8.2}/rangekeeper/projection.py +0 -0
- {rangekeeper-0.8.0 → rangekeeper-0.8.2}/rangekeeper/segmentation.py +0 -0
- {rangekeeper-0.8.0 → rangekeeper-0.8.2}/rangekeeper/space.py +0 -0
- {rangekeeper-0.8.0 → rangekeeper-0.8.2}/setup.cfg +0 -0
- {rangekeeper-0.8.0 → rangekeeper-0.8.2}/tests/test_api.py +0 -0
- {rangekeeper-0.8.0 → rangekeeper-0.8.2}/tests/test_dynamics.py +0 -0
- {rangekeeper-0.8.0 → rangekeeper-0.8.2}/tests/test_formulas.py +0 -0
- {rangekeeper-0.8.0 → rangekeeper-0.8.2}/tests/test_graph.py +0 -0
- {rangekeeper-0.8.0 → rangekeeper-0.8.2}/tests/test_measures.py +0 -0
- {rangekeeper-0.8.0 → rangekeeper-0.8.2}/tests/test_models.py +0 -0
- {rangekeeper-0.8.0 → rangekeeper-0.8.2}/tests/test_modules.py +0 -0
- {rangekeeper-0.8.0 → rangekeeper-0.8.2}/tests/test_projections.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: Rangekeeper
|
|
3
|
-
Version: 0.8.
|
|
3
|
+
Version: 0.8.2
|
|
4
4
|
Summary: A Python library assisting financial modelling in real estate asset & development planning, decision-making, cashflow forecasting, and scenario analysis.
|
|
5
5
|
Author-email: Daniel Fink <danfink@mit.edu>
|
|
6
6
|
License-Expression: MPL-2.0
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: Rangekeeper
|
|
3
|
-
Version: 0.8.
|
|
3
|
+
Version: 0.8.2
|
|
4
4
|
Summary: A Python library assisting financial modelling in real estate asset & development planning, decision-making, cashflow forecasting, and scenario analysis.
|
|
5
5
|
Author-email: Daniel Fink <danfink@mit.edu>
|
|
6
6
|
License-Expression: MPL-2.0
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "Rangekeeper"
|
|
3
|
-
version = "0.8.
|
|
3
|
+
version = "0.8.2"
|
|
4
4
|
description = "A Python library assisting financial modelling in real estate asset & development planning, decision-making, cashflow forecasting, and scenario analysis."
|
|
5
5
|
authors = [
|
|
6
6
|
{ name = "Daniel Fink", email = "danfink@mit.edu" }
|
|
@@ -380,8 +380,41 @@ class Flow:
|
|
|
380
380
|
.sum()
|
|
381
381
|
)
|
|
382
382
|
|
|
383
|
-
def
|
|
384
|
-
|
|
383
|
+
def earliest(self) -> datetime.date:
|
|
384
|
+
"""
|
|
385
|
+
Returns the earliest non-zero movement date in the Flow.
|
|
386
|
+
"""
|
|
387
|
+
|
|
388
|
+
sorted = self.movements[
|
|
389
|
+
~((self.movements == 0) | (self.movements.isna()))
|
|
390
|
+
].sort_index()
|
|
391
|
+
return sorted.index[0].date()
|
|
392
|
+
|
|
393
|
+
def latest(self) -> datetime.date:
|
|
394
|
+
"""
|
|
395
|
+
Returns the latest non-zero movement date in the Flow.
|
|
396
|
+
"""
|
|
397
|
+
|
|
398
|
+
sorted = self.movements[
|
|
399
|
+
~((self.movements == 0) | (self.movements.isna()))
|
|
400
|
+
].sort_index()
|
|
401
|
+
return sorted.index[-1].date()
|
|
402
|
+
|
|
403
|
+
def trim_empty(
|
|
404
|
+
self,
|
|
405
|
+
name: str = None,
|
|
406
|
+
) -> Flow:
|
|
407
|
+
return self.__class__(
|
|
408
|
+
movements=self.movements.copy(deep=True).truncate(
|
|
409
|
+
before=self.earliest(),
|
|
410
|
+
after=self.latest(),
|
|
411
|
+
),
|
|
412
|
+
units=self.units,
|
|
413
|
+
name=self.name if name is None else name,
|
|
414
|
+
)
|
|
415
|
+
|
|
416
|
+
# def get_frequency(self) -> str:
|
|
417
|
+
# return self.movements.index.freq
|
|
385
418
|
|
|
386
419
|
def trim_to_span(
|
|
387
420
|
self,
|
|
@@ -94,9 +94,9 @@ class Account:
|
|
|
94
94
|
|
|
95
95
|
def __init__(
|
|
96
96
|
self,
|
|
97
|
-
starting: float,
|
|
98
97
|
transactions: rk.flux.Flow,
|
|
99
98
|
frequency: rk.duration.Type,
|
|
99
|
+
starting: float = 0.0,
|
|
100
100
|
rate: Union[float, rk.flux.Flow] = 0.0,
|
|
101
101
|
type: Type = Type.SIMPLE,
|
|
102
102
|
arrears: bool = False,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|