mirror of
https://github.com/wassname/catalyst.git
synced 2026-08-02 12:30:45 +08:00
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:
@@ -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
|
||||
@@ -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
|
||||
@@ -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,
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user