diff --git a/zipline/pipeline/loaders/blaze/buyback_auth.py b/zipline/pipeline/loaders/blaze/buyback_auth.py index c5505079..42e00dd7 100644 --- a/zipline/pipeline/loaders/blaze/buyback_auth.py +++ b/zipline/pipeline/loaders/blaze/buyback_auth.py @@ -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 \ No newline at end of file diff --git a/zipline/pipeline/loaders/blaze/earnings.py b/zipline/pipeline/loaders/blaze/earnings.py index 7483f951..8588ff03 100644 --- a/zipline/pipeline/loaders/blaze/earnings.py +++ b/zipline/pipeline/loaders/blaze/earnings.py @@ -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 \ No newline at end of file diff --git a/zipline/pipeline/loaders/blaze/events.py b/zipline/pipeline/loaders/blaze/events.py index 6dc0e6da..3da16744 100644 --- a/zipline/pipeline/loaders/blaze/events.py +++ b/zipline/pipeline/loaders/blaze/events.py @@ -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, diff --git a/zipline/pipeline/loaders/buyback_auth.py b/zipline/pipeline/loaders/buyback_auth.py index d1661bd1..ba207697 100644 --- a/zipline/pipeline/loaders/buyback_auth.py +++ b/zipline/pipeline/loaders/buyback_auth.py @@ -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( diff --git a/zipline/pipeline/loaders/earnings.py b/zipline/pipeline/loaders/earnings.py index 153c5c25..74d888f2 100644 --- a/zipline/pipeline/loaders/earnings.py +++ b/zipline/pipeline/loaders/earnings.py @@ -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,