Rangekeeper 0.8.25__tar.gz → 0.8.26__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.25 → rangekeeper-0.8.26}/PKG-INFO +1 -1
- {rangekeeper-0.8.25 → rangekeeper-0.8.26}/Rangekeeper.egg-info/PKG-INFO +1 -1
- {rangekeeper-0.8.25 → rangekeeper-0.8.26}/pyproject.toml +1 -1
- {rangekeeper-0.8.25 → rangekeeper-0.8.26}/rangekeeper/flux.py +19 -5
- {rangekeeper-0.8.25 → rangekeeper-0.8.26}/README.md +0 -0
- {rangekeeper-0.8.25 → rangekeeper-0.8.26}/Rangekeeper.egg-info/SOURCES.txt +0 -0
- {rangekeeper-0.8.25 → rangekeeper-0.8.26}/Rangekeeper.egg-info/dependency_links.txt +0 -0
- {rangekeeper-0.8.25 → rangekeeper-0.8.26}/Rangekeeper.egg-info/requires.txt +0 -0
- {rangekeeper-0.8.25 → rangekeeper-0.8.26}/Rangekeeper.egg-info/top_level.txt +0 -0
- {rangekeeper-0.8.25 → rangekeeper-0.8.26}/rangekeeper/__init__.py +0 -0
- {rangekeeper-0.8.25 → rangekeeper-0.8.26}/rangekeeper/api.py +0 -0
- {rangekeeper-0.8.25 → rangekeeper-0.8.26}/rangekeeper/distribution.py +0 -0
- {rangekeeper-0.8.25 → rangekeeper-0.8.26}/rangekeeper/duration.py +0 -0
- {rangekeeper-0.8.25 → rangekeeper-0.8.26}/rangekeeper/dynamics/__init__.py +0 -0
- {rangekeeper-0.8.25 → rangekeeper-0.8.26}/rangekeeper/dynamics/black_swan.py +0 -0
- {rangekeeper-0.8.25 → rangekeeper-0.8.26}/rangekeeper/dynamics/cyclicality.py +0 -0
- {rangekeeper-0.8.25 → rangekeeper-0.8.26}/rangekeeper/dynamics/market.py +0 -0
- {rangekeeper-0.8.25 → rangekeeper-0.8.26}/rangekeeper/dynamics/noise.py +0 -0
- {rangekeeper-0.8.25 → rangekeeper-0.8.26}/rangekeeper/dynamics/trend.py +0 -0
- {rangekeeper-0.8.25 → rangekeeper-0.8.26}/rangekeeper/dynamics/volatility.py +0 -0
- {rangekeeper-0.8.25 → rangekeeper-0.8.26}/rangekeeper/extrapolation.py +0 -0
- {rangekeeper-0.8.25 → rangekeeper-0.8.26}/rangekeeper/format.py +0 -0
- {rangekeeper-0.8.25 → rangekeeper-0.8.26}/rangekeeper/formula/__init__.py +0 -0
- {rangekeeper-0.8.25 → rangekeeper-0.8.26}/rangekeeper/formula/financial.py +0 -0
- {rangekeeper-0.8.25 → rangekeeper-0.8.26}/rangekeeper/graph.py +0 -0
- {rangekeeper-0.8.25 → rangekeeper-0.8.26}/rangekeeper/measure.py +0 -0
- {rangekeeper-0.8.25 → rangekeeper-0.8.26}/rangekeeper/policy.py +0 -0
- {rangekeeper-0.8.25 → rangekeeper-0.8.26}/rangekeeper/projection.py +0 -0
- {rangekeeper-0.8.25 → rangekeeper-0.8.26}/rangekeeper/segmentation.py +0 -0
- {rangekeeper-0.8.25 → rangekeeper-0.8.26}/rangekeeper/space.py +0 -0
- {rangekeeper-0.8.25 → rangekeeper-0.8.26}/setup.cfg +0 -0
- {rangekeeper-0.8.25 → rangekeeper-0.8.26}/tests/test_api.py +0 -0
- {rangekeeper-0.8.25 → rangekeeper-0.8.26}/tests/test_dynamics.py +0 -0
- {rangekeeper-0.8.25 → rangekeeper-0.8.26}/tests/test_formulas.py +0 -0
- {rangekeeper-0.8.25 → rangekeeper-0.8.26}/tests/test_graph.py +0 -0
- {rangekeeper-0.8.25 → rangekeeper-0.8.26}/tests/test_measures.py +0 -0
- {rangekeeper-0.8.25 → rangekeeper-0.8.26}/tests/test_models.py +0 -0
- {rangekeeper-0.8.25 → rangekeeper-0.8.26}/tests/test_modules.py +0 -0
- {rangekeeper-0.8.25 → rangekeeper-0.8.26}/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.26
|
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.26
|
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.26"
|
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" }
|
@@ -324,21 +324,35 @@ class Flow:
|
|
324
324
|
movements=frame["Discounted Flow"], units=self.units, name=name
|
325
325
|
)
|
326
326
|
|
327
|
-
def xirr(
|
328
|
-
|
327
|
+
def xirr(
|
328
|
+
self, registry: pint.UnitRegistry = rk.measure.Index.registry
|
329
|
+
) -> pint.Quantity:
|
330
|
+
"""
|
331
|
+
Returns the XIRR (Extended Internal Rate of Return) of the Flow's movements.
|
332
|
+
Formats the result as a percentage in the specified registry's units.
|
333
|
+
"""
|
334
|
+
result = pyxirr.xirr(
|
329
335
|
dates=list(self.movements.index.array),
|
330
336
|
amounts=self.movements.to_list(),
|
331
337
|
)
|
338
|
+
return result * 100 * registry.percent
|
332
339
|
|
333
340
|
def xnpv(
|
334
341
|
self,
|
335
|
-
rate: float,
|
336
|
-
) ->
|
337
|
-
|
342
|
+
rate: Union[float, pint.Quantity],
|
343
|
+
) -> pint.Quantity:
|
344
|
+
"""
|
345
|
+
Returns the XNPV (Extended Net Present Value) of the Flow's movements at a specified rate.
|
346
|
+
Formats the result as a quantity in the Flow's units.
|
347
|
+
"""
|
348
|
+
if isinstance(rate, pint.Quantity):
|
349
|
+
rate = rate.to(rk.measure.Index.registry.dimensionless).magnitude
|
350
|
+
result = pyxirr.xnpv(
|
338
351
|
rate=rate,
|
339
352
|
dates=list(self.movements.index.array),
|
340
353
|
amounts=self.movements.to_list(),
|
341
354
|
)
|
355
|
+
return result * self.units
|
342
356
|
|
343
357
|
def diff(
|
344
358
|
self,
|
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
|
File without changes
|