Development
-----------

:Release: 1.0.0
:Date: TBD

.. warning::
   This release is still under active development.  All changes listed are
   subject to change at any time.


Highlights
~~~~~~~~~~

None

Enhancements
~~~~~~~~~~~~

* Made the data loading classes have more consistent interfaces. This includes
  the equity bar writers, adjustment writer, and asset db writer. The new
  interface is that the resource to be written to is passed at construction time
  and the data to write is provided later to the `write` method as a
  dataframe. This model allows us to pass these writer objects around as a
  resource for other classes and functions to consume (:issue:`1109`).

* Added masking to :class:`zipline.pipeline.CustomFactor`.
  Custom factors can now be passed a Filter upon instantiation. This tells the
  factor to only compute over stocks for which the filter returns True, rather
  than always computing over the entire universe of stocks. (:issue:`1095`)

* Added :class:`zipline.utils.cache.ExpiringCache`.
  A cache which wraps entries in a :class:`zipline.utils.cache.CachedObject`,
  which manages expiration of entries based on the `dt` supplied to the `get`
  method. (:issue:`1130`)

* Implemented :class:`zipline.pipeline.factors.RecarrayField`, a new pipeline
  term designed to be the output type of a CustomFactor with multiple outputs.
  (:issue:`1119`)

* Added optional `outputs` parameter to :class:`zipline.pipeline.CustomFactor`.
  Custom factors are now capable of computing and returning multiple outputs,
  each of which are themselves a Factor. (:issue:`1119`)

Experimental Features
~~~~~~~~~~~~~~~~~~~~~

.. warning::

   Experimental features are subject to change.

None

Bug Fixes
~~~~~~~~~

None

Performance
~~~~~~~~~~~

None

Maintenance and Refactorings
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

None

Build
~~~~~

None

Documentation
~~~~~~~~~~~~~

None

Miscellaneous
~~~~~~~~~~~~~

None
