rangekeeper 0.7.2__tar.gz → 0.7.2.post2__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.2 → rangekeeper-0.7.2.post2}/PKG-INFO +1 -1
- {rangekeeper-0.7.2 → rangekeeper-0.7.2.post2}/pyproject.toml +1 -1
- {rangekeeper-0.7.2 → rangekeeper-0.7.2.post2}/rangekeeper/flux.py +10 -5
- {rangekeeper-0.7.2 → rangekeeper-0.7.2.post2}/README.md +0 -0
- {rangekeeper-0.7.2 → rangekeeper-0.7.2.post2}/rangekeeper/__init__.py +0 -0
- {rangekeeper-0.7.2 → rangekeeper-0.7.2.post2}/rangekeeper/api.py +0 -0
- {rangekeeper-0.7.2 → rangekeeper-0.7.2.post2}/rangekeeper/conftest.py +0 -0
- {rangekeeper-0.7.2 → rangekeeper-0.7.2.post2}/rangekeeper/distribution.py +0 -0
- {rangekeeper-0.7.2 → rangekeeper-0.7.2.post2}/rangekeeper/duration.py +0 -0
- {rangekeeper-0.7.2 → rangekeeper-0.7.2.post2}/rangekeeper/dynamics/__init__.py +0 -0
- {rangekeeper-0.7.2 → rangekeeper-0.7.2.post2}/rangekeeper/dynamics/black_swan.py +0 -0
- {rangekeeper-0.7.2 → rangekeeper-0.7.2.post2}/rangekeeper/dynamics/cyclicality.py +0 -0
- {rangekeeper-0.7.2 → rangekeeper-0.7.2.post2}/rangekeeper/dynamics/market.py +0 -0
- {rangekeeper-0.7.2 → rangekeeper-0.7.2.post2}/rangekeeper/dynamics/noise.py +0 -0
- {rangekeeper-0.7.2 → rangekeeper-0.7.2.post2}/rangekeeper/dynamics/trend.py +0 -0
- {rangekeeper-0.7.2 → rangekeeper-0.7.2.post2}/rangekeeper/dynamics/volatility.py +0 -0
- {rangekeeper-0.7.2 → rangekeeper-0.7.2.post2}/rangekeeper/extrapolation.py +0 -0
- {rangekeeper-0.7.2 → rangekeeper-0.7.2.post2}/rangekeeper/format.py +0 -0
- {rangekeeper-0.7.2 → rangekeeper-0.7.2.post2}/rangekeeper/formula.py +0 -0
- {rangekeeper-0.7.2 → rangekeeper-0.7.2.post2}/rangekeeper/graph.py +0 -0
- {rangekeeper-0.7.2 → rangekeeper-0.7.2.post2}/rangekeeper/measure.py +0 -0
- {rangekeeper-0.7.2 → rangekeeper-0.7.2.post2}/rangekeeper/policy.py +0 -0
- {rangekeeper-0.7.2 → rangekeeper-0.7.2.post2}/rangekeeper/projection.py +0 -0
- {rangekeeper-0.7.2 → rangekeeper-0.7.2.post2}/rangekeeper/segmentation.py +0 -0
- {rangekeeper-0.7.2 → rangekeeper-0.7.2.post2}/rangekeeper/space.py +0 -0
- {rangekeeper-0.7.2 → rangekeeper-0.7.2.post2}/rangekeeper/span.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: Rangekeeper
|
|
3
|
-
Version: 0.7.2
|
|
3
|
+
Version: 0.7.2.post2
|
|
4
4
|
Summary: A Python library assisting financial modelling in real estate asset & development planning, decision-making, cashflow forecasting, and scenario analysis.
|
|
5
5
|
License: MPL-2.0
|
|
6
6
|
Author: Daniel Fink
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "Rangekeeper"
|
|
3
|
-
version = "0.7.2"
|
|
3
|
+
version = "0.7.2-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 = ["Daniel Fink <danfink@mit.edu>"]
|
|
6
6
|
license = "MPL-2.0"
|
|
@@ -445,7 +445,7 @@ class Stream:
|
|
|
445
445
|
# format = self._format(decimals=decimals)
|
|
446
446
|
# print(format + os.linesep)
|
|
447
447
|
|
|
448
|
-
def
|
|
448
|
+
def __add__(self, other):
|
|
449
449
|
flows = self.flows
|
|
450
450
|
if isinstance(other, Flow):
|
|
451
451
|
flows.append(other)
|
|
@@ -458,6 +458,7 @@ class Stream:
|
|
|
458
458
|
flows=flows,
|
|
459
459
|
frequency=self.frequency)
|
|
460
460
|
|
|
461
|
+
|
|
461
462
|
def is_homogeneous(self) -> bool:
|
|
462
463
|
return len(list(set(list(self.units.values())))) == 1
|
|
463
464
|
|
|
@@ -684,8 +685,10 @@ class Stream:
|
|
|
684
685
|
json.dumps(
|
|
685
686
|
{flow.name: flow.units.__str__() for flow in self.flows}, indent=4)))
|
|
686
687
|
else:
|
|
687
|
-
|
|
688
|
-
|
|
688
|
+
name=name if name is not None else self.name + ' (min)'
|
|
689
|
+
return Flow.from_sequence(
|
|
690
|
+
sequence=self.frame.index,
|
|
691
|
+
data=self.frame.min(axis=1).to_list(),
|
|
689
692
|
units=next(iter(self.units.values())),
|
|
690
693
|
name=name)
|
|
691
694
|
|
|
@@ -700,8 +703,10 @@ class Stream:
|
|
|
700
703
|
json.dumps(
|
|
701
704
|
{flow.name: flow.units.__str__() for flow in self.flows}, indent=4)))
|
|
702
705
|
else:
|
|
703
|
-
|
|
704
|
-
|
|
706
|
+
name=name if name is not None else self.name + ' (max)'
|
|
707
|
+
return Flow.from_sequence(
|
|
708
|
+
sequence=self.frame.index,
|
|
709
|
+
data=self.frame.max(axis=1).to_list(),
|
|
705
710
|
units=next(iter(self.units.values())),
|
|
706
711
|
name=name)
|
|
707
712
|
|
|
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
|