BUG: Set data portal last trading session if passed

This commit is contained in:
dmichalowicz
2017-03-07 11:38:32 -05:00
parent 0bc29e10d4
commit 2274bf4467
+33 -13
View File
@@ -166,15 +166,35 @@ class DataPortal(object):
self._augmented_sources_map = {}
self._extra_source_df = None
self._first_trading_session = first_trading_day
self._first_available_session = first_trading_day
_last_sessions = [r.last_available_dt
for r in [equity_daily_reader, future_daily_reader]
if r is not None]
if _last_sessions:
self._last_trading_session = min(_last_sessions)
if last_available_session:
self._last_available_session = last_available_session
else:
self._last_trading_session = None
# Infer the last session from the provided readers.
last_sessions = [
reader.last_available_dt
for reader in [equity_daily_reader, future_daily_reader]
if reader is not None
]
if last_sessions:
self._last_available_session = min(last_sessions)
else:
self._last_available_session = None
if last_available_minute:
self._last_available_minute = last_available_minute
else:
# Infer the last minute from the provided readers.
last_minutes = [
reader.last_available_dt
for reader in [equity_minute_reader, future_minute_reader]
if reader is not None
]
if last_minutes:
self._last_available_minute = min(last_minutes)
else:
self._last_available_minute = None
aligned_equity_minute_reader = self._ensure_reader_aligned(
equity_minute_reader)
@@ -223,14 +243,14 @@ class DataPortal(object):
self.trading_calendar,
self.asset_finder,
aligned_minute_readers,
last_available_minute,
self._last_available_minute,
)
_dispatch_session_reader = AssetDispatchSessionBarReader(
self.trading_calendar,
self.asset_finder,
aligned_session_readers,
last_available_session,
self._last_available_session,
)
self._pricing_readers = {
@@ -286,15 +306,15 @@ class DataPortal(object):
return ReindexMinuteBarReader(
self.trading_calendar,
reader,
self._first_trading_session,
self._last_trading_session
self._first_available_session,
self._last_available_session
)
elif reader.data_frequency == 'session':
return ReindexSessionBarReader(
self.trading_calendar,
reader,
self._first_trading_session,
self._last_trading_session
self._first_available_session,
self._last_available_session
)
def _reindex_extra_source(self, df, source_date_index):