- Refactored EventsLoader and BlazeEventsLoader to not require a
subclass per dataset. Instead, you now pass a map from columns to
event fields directly to the EventsLoader constructor.
- Removed a large number of Quantopian-specific datasets and associated
tests.
- Rewrote the core logic of EventsLoader and BlazeEventsLoader to share
index calculations across multiple requested columns.
- Fixed a bug where event fields were incorrectly forward-filled when
null values were present in an event.
STY: remove unused imports
MAINT: change dtype to object for compatibility with python3
MAINT: rename pipeline columns and constants for clarity
MAINT: rename column
MAINT: add back cash amount constant
BUG: fix field names
BUG: pass remaining args
WIP: make buyback units parameterized so that user can choose
BUG: fix filtering based on units parameter
WIP: test for undesired units
Revert "WIP: make buyback units parameterized so that user can choose"
This reverts commit df3b838d525bff5026eba1d81865c6645d534c88.
- Adds a new class, ``LabelArray``, which is a subclass of np.ndarray.
LabelArray is conceptually similar to pandas.Categorical, in that it
stores data with many duplicate values as indices into an array of
unique values. For string data with many duplicates (e.g. time-series
of tickers or or industry classifications), this provides multiple
orders of magnitude of improvement when doing string operations,
especially string comparison/matching operations.
- Adds a new generic object "specialization" for `AdjustedArrayWindow`,
and a corresponding ObjectOverwrite adjustment.
- Adds a new ``postprocess`` method to ``zipline.pipeline.term.Term``.
This method is called on the final result of any pipeline expression
after screen filtering has occurred. The default implementation of
``postprocess`` is identity, but Classifier overrides it to coerce
string columns into pandas.Categoricals before presenting them to the
user.
BUG: correctly create asset finder
MAINT: rename fixture
STY: fixes for flake8
STY: add space around assignment
MAINT: add var back to constructor
MAINT: remove unused import
MAINT: compare var with None directly
MAINT: fix merge errors
MAINT: remove record date - not needed.
MAINT: restructure dividends dataset.
MAINT: restructure dividends factors.
WIP: update dividends tests.
MAINT: correct the way to get the 'next' event frame.
Classifiers are computations that represent grouping keys. They can be
used in conjuction with normalization functions like ``zscore`` or
``demean`` to perform normalizations over subsets of a dataset.
Notable changes:
- Added ``demean()`` and ``zscore()`` methods to ``Factor``.
- Added a classifier versions of ``Latest`` and ``CustomTermMixin``.
The .latest attribute of int64 dataset columns no produces a
classifier by default.
- Added ``Everything``, a classifier that maps all data to the same
value.
- Added ``zipline.lib.normalize``, which implements a naive, pure-Python
grouped normalize function. This will likely be moved to Cython in a
subsequent PR.
Replace it by distinguishing between "Loadable" and "Computable".
This is useful because it's now possible to write computable terms that
don't require any inputs (e.g. an `Always` filter or an `Everything`
classifier).
WIP: finish refactoring blaze events loader.
WIP: tests passing for earnings.
BUG: pass all kwargs explicitly for BlazeEventsCalendarLoader.
If this is not done, resources are not bound correctly.
MAINT: refactor for buyback_auth.
EarningsCalendar loader.
- Moves most of AdjustedArray back into Python. The window iterator is
the only part that's performance-intensive.
- Adds a bootleg templating system for creating specialized versions of
AdjustedArrayWindow for each concrete type we care about.
- Adds support for differently dtyped terms in pipeline. This allows us
to use datetime64s which are needed in the EarningsCalendar.
- Adds EarningsCalendar dataset for the next and previous earnings
announcements in pipeline.
- Adds in memory loader for EarningsCalendar.
- Adds blaze loader for EarningsCalendar.