MAINT: make concrete_loader a property.

concrete_loader should be the same for each instance
of a Blaze loader.

MAINT: make expected_cols a property.

expected_cols should be the same for each instance
of a type of loader.
This commit is contained in:
Maya Tydykov
2016-02-25 17:33:44 -05:00
parent 8ceff892c5
commit 2fe126135c
5 changed files with 41 additions and 28 deletions
@@ -74,7 +74,6 @@ class BlazeCashBuybackAuthorizationsLoader(BlazeEventsCalendarLoader):
data_query_time=None,
data_query_tz=None,
dataset=CashBuybackAuthorizations,
concrete_loader=CashBuybackAuthorizationsLoader,
**kwargs):
super(
BlazeCashBuybackAuthorizationsLoader, self
@@ -84,9 +83,12 @@ class BlazeCashBuybackAuthorizationsLoader(BlazeEventsCalendarLoader):
data_query_time=data_query_time,
data_query_tz=data_query_tz,
dataset=dataset,
concrete_loader=concrete_loader,
**kwargs)
@property
def concrete_loader(self):
return CashBuybackAuthorizationsLoader
class BlazeShareBuybackAuthorizationsLoader(BlazeEventsCalendarLoader):
"""A pipeline loader for the ``ShareBuybackAuthorizations`` dataset that loads
@@ -141,6 +143,7 @@ class BlazeShareBuybackAuthorizationsLoader(BlazeEventsCalendarLoader):
SHARE_COUNT_FIELD_NAME,
})
def __init__(self,
expr,
resources=None,
@@ -148,7 +151,6 @@ class BlazeShareBuybackAuthorizationsLoader(BlazeEventsCalendarLoader):
data_query_time=None,
data_query_tz=None,
dataset=ShareBuybackAuthorizations,
concrete_loader=ShareBuybackAuthorizationsLoader,
**kwargs):
super(
BlazeShareBuybackAuthorizationsLoader, self
@@ -158,5 +160,8 @@ class BlazeShareBuybackAuthorizationsLoader(BlazeEventsCalendarLoader):
data_query_time=data_query_time,
data_query_tz=data_query_tz,
dataset=dataset,
concrete_loader=concrete_loader,
**kwargs)
@property
def concrete_loader(self):
return ShareBuybackAuthorizationsLoader
+5 -2
View File
@@ -66,11 +66,14 @@ class BlazeEarningsCalendarLoader(BlazeEventsCalendarLoader):
data_query_time=None,
data_query_tz=None,
dataset=EarningsCalendar,
concrete_loader=EarningsCalendarLoader,
**kwargs):
super(
BlazeEarningsCalendarLoader, self
).__init__(expr, dataset=dataset, concrete_loader=concrete_loader,
).__init__(expr, dataset=dataset,
resources=resources, odo_kwargs=odo_kwargs,
data_query_time=data_query_time,
data_query_tz=data_query_tz, **kwargs)
@property
def concrete_loader(self):
return EarningsCalendarLoader
+8 -6
View File
@@ -1,3 +1,5 @@
import abc
from datashape import istabular
from .core import (
@@ -34,8 +36,6 @@ class BlazeEventsCalendarLoader(PipelineLoader):
The timezeone to use for the data query cutoff.
dataset : DataSet
The DataSet object for which this loader loads data.
concrete_loader :
The concrete loader to use for loading data into specified columns.
Notes
-----
The expression should have a tabular dshape of::
@@ -61,8 +61,7 @@ class BlazeEventsCalendarLoader(PipelineLoader):
odo_kwargs=None,
data_query_time=None,
data_query_tz=None,
dataset=None,
concrete_loader=None):
dataset=None):
dshape = expr.dshape
if not istabular(dshape):
@@ -80,7 +79,10 @@ class BlazeEventsCalendarLoader(PipelineLoader):
check_data_query_args(data_query_time, data_query_tz)
self._data_query_time = data_query_time
self._data_query_tz = data_query_tz
self._concrete_loader = concrete_loader
@abc.abstractproperty
def concrete_loader(self):
raise NotImplementedError("Must specify `concrete_loader`.")
def load_adjusted_array(self, columns, dates, assets, mask):
data_query_time = self._data_query_time
@@ -112,7 +114,7 @@ class BlazeEventsCalendarLoader(PipelineLoader):
ts_field=TS_FIELD_NAME,
)
gb = raw.groupby(SID_FIELD_NAME)
return self._concrete_loader(
return self.concrete_loader(
dates,
self.prepare_data(raw, gb),
dataset=self._dataset,
+14 -12
View File
@@ -10,8 +10,8 @@ from .events import EventsLoader
from zipline.utils.memoize import lazyval
BUYBACK_ANNOUNCEMENT_FIELD_NAME = 'buyback_dates'
SHARE_COUNT_FIELD_NAME = 'share_counts'
BUYBACK_ANNOUNCEMENT_FIELD_NAME = 'buyback_date'
SHARE_COUNT_FIELD_NAME = 'share_count'
CASH_FIELD_NAME = 'cash'
@@ -24,23 +24,23 @@ class CashBuybackAuthorizationsLoader(EventsLoader):
event date, cash value)]
"""
expected_cols = frozenset([BUYBACK_ANNOUNCEMENT_FIELD_NAME,
CASH_FIELD_NAME])
def __init__(self,
all_dates,
events_by_sid,
infer_timestamps=False,
dataset=CashBuybackAuthorizations,
expected_cols=expected_cols):
dataset=CashBuybackAuthorizations):
super(CashBuybackAuthorizationsLoader, self).__init__(
all_dates,
events_by_sid,
infer_timestamps=infer_timestamps,
dataset=dataset,
expected_cols=expected_cols,
)
@property
def expected_cols(self):
return frozenset([BUYBACK_ANNOUNCEMENT_FIELD_NAME, CASH_FIELD_NAME])
@lazyval
def previous_value_loader(self):
return self._previous_event_value_loader(
@@ -69,23 +69,25 @@ class ShareBuybackAuthorizationsLoader(EventsLoader):
event date, share value)]
"""
expected_cols = frozenset([BUYBACK_ANNOUNCEMENT_FIELD_NAME,
SHARE_COUNT_FIELD_NAME])
def __init__(self,
all_dates,
events_by_sid,
infer_timestamps=False,
dataset=ShareBuybackAuthorizations,
expected_cols=expected_cols):
dataset=ShareBuybackAuthorizations):
super(ShareBuybackAuthorizationsLoader, self).__init__(
all_dates,
events_by_sid,
infer_timestamps=infer_timestamps,
dataset=dataset,
expected_cols=expected_cols,
)
@property
def expected_cols(self):
return frozenset([BUYBACK_ANNOUNCEMENT_FIELD_NAME,
SHARE_COUNT_FIELD_NAME])
@lazyval
def previous_share_count_loader(self):
return self._previous_event_value_loader(
+5 -4
View File
@@ -10,17 +10,18 @@ ANNOUNCEMENT_FIELD_NAME = "announcement_date"
class EarningsCalendarLoader(EventsLoader):
expected_cols = frozenset([ANNOUNCEMENT_FIELD_NAME])
def __init__(self, all_dates, events_by_sid,
infer_timestamps=False,
dataset=EarningsCalendar,
expected_cols=expected_cols):
dataset=EarningsCalendar):
super(EarningsCalendarLoader, self).__init__(
all_dates, events_by_sid, infer_timestamps, dataset=dataset,
expected_cols=expected_cols
)
@property
def expected_cols(self):
return frozenset([ANNOUNCEMENT_FIELD_NAME])
@lazyval
def next_announcement_loader(self):
return self._next_event_date_loader(self.dataset.next_announcement,