reduced the use of self.dates

This commit is contained in:
Gourav Kumar 2022-02-20 09:19:43 +05:30
parent 56af7c33aa
commit b9366541f3
2 changed files with 13 additions and 9 deletions

View File

@ -124,11 +124,11 @@ class TimeSeriesCore:
data = _preprocess_timeseries(data, date_format=date_format) data = _preprocess_timeseries(data, date_format=date_format)
self.time_series = dict(data) self.time_series = dict(data)
self.dates = set(list(self.time_series)) self.dates = list(self.time_series)
if len(self.dates) != len(data): if len(self.time_series) != len(data):
print("Warning: The input data contains duplicate dates which have been ignored.") print("Warning: The input data contains duplicate dates which have been ignored.")
self.start_date = list(self.time_series)[0] self.start_date = self.dates[0]
self.end_date = list(self.time_series)[-1] self.end_date = self.dates[-1]
self.frequency = getattr(AllFrequencies, frequency) self.frequency = getattr(AllFrequencies, frequency)
def __repr__(self): def __repr__(self):

View File

@ -177,10 +177,14 @@ class TimeSeries(TimeSeriesCore):
) -> List[tuple]: ) -> List[tuple]:
"""Calculates the rolling return""" """Calculates the rolling return"""
all_dates = create_date_series(from_date, to_date, getattr(AllFrequencies, frequency)) try:
dates = set(all_dates) frequency = getattr(AllFrequencies, frequency)
except AttributeError:
raise ValueError(f"Invalid argument for frequency {frequency}")
dates = create_date_series(from_date, to_date, frequency)
if frequency == AllFrequencies.D: if frequency == AllFrequencies.D:
dates = all_dates.intersection(self.dates) dates = [i for i in dates if i in self.time_series]
rolling_returns = [] rolling_returns = []
for i in dates: for i in dates:
@ -193,8 +197,8 @@ class TimeSeries(TimeSeriesCore):
closest=closest, closest=closest,
) )
rolling_returns.append((i, returns)) rolling_returns.append((i, returns))
self.rolling_returns = rolling_returns rolling_returns.sort()
return self.rolling_returns return rolling_returns
if __name__ == "__main__": if __name__ == "__main__":