From f82a01841b2e7c4d26e00721c42fb4a6bf5f8565 Mon Sep 17 00:00:00 2001 From: Scott Sanderson Date: Wed, 30 Sep 2015 20:15:41 -0400 Subject: [PATCH] MAINT: Rename ALL the things. zipline.modelling.* -> zipline.pipeline.* zipline.data.ffc.loaders -> zipline.pipeline.loaders tests/modelling -> tests/pipeline --- etc/requirements.txt | 6 +- setup.py | 8 +- tests/{modelling => pipeline}/__init__.py | 0 tests/{modelling => pipeline}/base.py | 4 +- .../test_adjusted_array.py | 0 tests/{modelling => pipeline}/test_engine.py | 21 +- tests/{modelling => pipeline}/test_factor.py | 4 +- tests/{modelling => pipeline}/test_filter.py | 4 +- .../{modelling => pipeline}/test_frameload.py | 8 +- .../test_numerical_expression.py | 5 +- .../{modelling => pipeline}/test_pipeline.py | 8 +- .../test_pipeline_algo.py} | 25 +- tests/{modelling => pipeline}/test_term.py | 12 +- .../test_us_equity_pricing_loader.py | 8 +- .../AAPL.csv | 0 .../BRK-A.csv | 0 .../MSFT.csv | 0 .../generate.py | 0 tests/test_doctests.py | 2 +- zipline/algorithm.py | 10 +- zipline/assets/assets.py | 2 +- zipline/data/ffc/loaders/__init__.py | 0 .../data/ffc/loaders/_us_equity_pricing.pyx | 276 ------------------ zipline/{modelling => pipeline}/__init__.py | 0 zipline/{modelling => pipeline}/classifier.py | 2 +- zipline/pipeline/data/__init__.py | 9 + zipline/{ => pipeline}/data/dataset.py | 4 +- .../data/equity_pricing.py} | 10 +- zipline/{modelling => pipeline}/engine.py | 10 +- zipline/{modelling => pipeline}/expression.py | 2 +- .../factor/__init__.py | 0 .../{modelling => pipeline}/factor/factor.py | 22 +- .../{modelling => pipeline}/factor/latest.py | 0 .../factor/technical.py | 4 +- zipline/{modelling => pipeline}/filter.py | 6 +- zipline/{modelling => pipeline}/graph.py | 12 +- .../ffc => pipeline/loaders}/__init__.py | 0 .../ffc => pipeline}/loaders/_adjustments.pyx | 0 .../ffc => pipeline}/loaders/_equities.pyx | 0 .../{data/ffc => pipeline/loaders}/base.py | 2 +- .../loaders/equity_pricing_loader.py} | 19 +- .../{data/ffc => pipeline/loaders}/frame.py | 7 +- .../ffc => pipeline/loaders}/synthetic.py | 14 +- zipline/{modelling => pipeline}/pipeline.py | 17 +- zipline/{modelling => pipeline}/term.py | 0 zipline/{modelling => pipeline}/visualize.py | 9 +- 46 files changed, 130 insertions(+), 422 deletions(-) rename tests/{modelling => pipeline}/__init__.py (100%) rename tests/{modelling => pipeline}/base.py (97%) rename tests/{modelling => pipeline}/test_adjusted_array.py (100%) rename tests/{modelling => pipeline}/test_engine.py (97%) rename tests/{modelling => pipeline}/test_factor.py (98%) rename tests/{modelling => pipeline}/test_filter.py (98%) rename tests/{modelling => pipeline}/test_frameload.py (96%) rename tests/{modelling => pipeline}/test_numerical_expression.py (99%) rename tests/{modelling => pipeline}/test_pipeline.py (93%) rename tests/{modelling/test_modelling_algo.py => pipeline/test_pipeline_algo.py} (98%) rename tests/{modelling => pipeline}/test_term.py (96%) rename tests/{modelling => pipeline}/test_us_equity_pricing_loader.py (99%) rename tests/resources/{modelling_inputs => pipeline_inputs}/AAPL.csv (100%) rename tests/resources/{modelling_inputs => pipeline_inputs}/BRK-A.csv (100%) rename tests/resources/{modelling_inputs => pipeline_inputs}/MSFT.csv (100%) rename tests/resources/{modelling_inputs => pipeline_inputs}/generate.py (100%) delete mode 100644 zipline/data/ffc/loaders/__init__.py delete mode 100644 zipline/data/ffc/loaders/_us_equity_pricing.pyx rename zipline/{modelling => pipeline}/__init__.py (100%) rename zipline/{modelling => pipeline}/classifier.py (59%) create mode 100644 zipline/pipeline/data/__init__.py rename zipline/{ => pipeline}/data/dataset.py (96%) rename zipline/{data/equities.py => pipeline/data/equity_pricing.py} (61%) rename zipline/{modelling => pipeline}/engine.py (98%) rename zipline/{modelling => pipeline}/expression.py (99%) rename zipline/{modelling => pipeline}/factor/__init__.py (100%) rename zipline/{modelling => pipeline}/factor/factor.py (96%) rename zipline/{modelling => pipeline}/factor/latest.py (100%) rename zipline/{modelling => pipeline}/factor/technical.py (95%) rename zipline/{modelling => pipeline}/filter.py (97%) rename zipline/{modelling => pipeline}/graph.py (95%) rename zipline/{data/ffc => pipeline/loaders}/__init__.py (100%) rename zipline/{data/ffc => pipeline}/loaders/_adjustments.pyx (100%) rename zipline/{data/ffc => pipeline}/loaders/_equities.pyx (100%) rename zipline/{data/ffc => pipeline/loaders}/base.py (79%) rename zipline/{data/ffc/loaders/us_equity_pricing.py => pipeline/loaders/equity_pricing_loader.py} (98%) rename zipline/{data/ffc => pipeline/loaders}/frame.py (97%) rename zipline/{data/ffc => pipeline/loaders}/synthetic.py (97%) rename zipline/{modelling => pipeline}/pipeline.py (91%) rename zipline/{modelling => pipeline}/term.py (100%) rename zipline/{modelling => pipeline}/visualize.py (96%) diff --git a/etc/requirements.txt b/etc/requirements.txt index 3fb2c621..7125a63f 100644 --- a/etc/requirements.txt +++ b/etc/requirements.txt @@ -34,13 +34,13 @@ bottleneck==1.0.0 contextlib2==0.4.0 -# Graph algorithms used by zipline.modelling +# Graph algorithms used by zipline.pipeline networkx==1.9.1 -# NumericalExpression modelling terms. +# NumericalExpression pipeline terms. numexpr==2.4.3 -# On disk storage format for modelling data. +# On disk storage format for pipeline data. bcolz==0.10.0 # Command line interface helper diff --git a/setup.py b/setup.py index 52d92132..519d4918 100644 --- a/setup.py +++ b/setup.py @@ -64,12 +64,12 @@ ext_modules = LazyCythonizingList([ ('zipline.lib.adjustment', ['zipline/lib/adjustment.pyx']), ('zipline.lib.rank', ['zipline/lib/rank.pyx']), ( - 'zipline.data.ffc.loaders._equities', - ['zipline/data/ffc/loaders/_equities.pyx'], + 'zipline.pipeline.loaders._equities', + ['zipline/pipeline/loaders/_equities.pyx'], ), ( - 'zipline.data.ffc.loaders._adjustments', - ['zipline/data/ffc/loaders/_adjustments.pyx'], + 'zipline.pipeline.loaders._adjustments', + ['zipline/pipeline/loaders/_adjustments.pyx'], ), ]) diff --git a/tests/modelling/__init__.py b/tests/pipeline/__init__.py similarity index 100% rename from tests/modelling/__init__.py rename to tests/pipeline/__init__.py diff --git a/tests/modelling/base.py b/tests/pipeline/base.py similarity index 97% rename from tests/modelling/base.py rename to tests/pipeline/base.py index b1c1305d..31a69cdc 100644 --- a/tests/modelling/base.py +++ b/tests/pipeline/base.py @@ -9,8 +9,8 @@ from pandas import date_range, Int64Index, DataFrame from six import iteritems from zipline.finance.trading import TradingEnvironment -from zipline.modelling.engine import SimpleFFCEngine -from zipline.modelling.term import AssetExists +from zipline.pipeline.engine import SimpleFFCEngine +from zipline.pipeline.term import AssetExists from zipline.utils.pandas_utils import explode from zipline.utils.test_utils import make_simple_asset_info, ExplodingObject from zipline.utils.tradingcalendar import trading_day diff --git a/tests/modelling/test_adjusted_array.py b/tests/pipeline/test_adjusted_array.py similarity index 100% rename from tests/modelling/test_adjusted_array.py rename to tests/pipeline/test_adjusted_array.py diff --git a/tests/modelling/test_engine.py b/tests/pipeline/test_engine.py similarity index 97% rename from tests/modelling/test_engine.py rename to tests/pipeline/test_engine.py index 153bf2e2..7543326a 100644 --- a/tests/modelling/test_engine.py +++ b/tests/pipeline/test_engine.py @@ -24,29 +24,26 @@ from pandas import ( from pandas.util.testing import assert_frame_equal from testfixtures import TempDirectory -from zipline.data.equities import USEquityPricing -from zipline.data.ffc.synthetic import ( +from zipline.pipeline.loaders.synthetic import ( ConstantLoader, MultiColumnLoader, NullAdjustmentReader, SyntheticDailyBarWriter, ) -from zipline.data.ffc.frame import ( - DataFrameFFCLoader, - MULTIPLY, -) -from zipline.data.ffc.loaders.us_equity_pricing import ( +from zipline.finance.trading import TradingEnvironment +from zipline.pipeline import Pipeline +from zipline.pipeline.data import USEquityPricing +from zipline.pipeline.loaders.frame import DataFrameFFCLoader, MULTIPLY +from zipline.pipeline.loaders.equity_pricing_loader import ( BcolzDailyBarReader, USEquityPricingLoader, ) -from zipline.finance.trading import TradingEnvironment -from zipline.modelling.engine import SimpleFFCEngine -from zipline.modelling.factor import CustomFactor -from zipline.modelling.factor.technical import ( +from zipline.pipeline.engine import SimpleFFCEngine +from zipline.pipeline.factor import CustomFactor +from zipline.pipeline.factor.technical import ( MaxDrawdown, SimpleMovingAverage, ) -from zipline.modelling.pipeline import Pipeline from zipline.utils.memoize import lazyval from zipline.utils.test_utils import ( make_rotating_asset_info, diff --git a/tests/modelling/test_factor.py b/tests/pipeline/test_factor.py similarity index 98% rename from tests/modelling/test_factor.py rename to tests/pipeline/test_factor.py index a7d4c39f..1655f81d 100644 --- a/tests/modelling/test_factor.py +++ b/tests/pipeline/test_factor.py @@ -3,9 +3,7 @@ Tests for Factor terms. """ from numpy import array, eye, nan, ones from zipline.errors import UnknownRankMethod -from zipline.modelling.factor import Factor -from zipline.modelling.filter import Filter -from zipline.modelling.graph import TermGraph +from zipline.pipeline import Factor, Filter, TermGraph from zipline.utils.test_utils import check_arrays from .base import BaseFFCTestCase diff --git a/tests/modelling/test_filter.py b/tests/pipeline/test_filter.py similarity index 98% rename from tests/modelling/test_filter.py rename to tests/pipeline/test_filter.py index 3290a3a5..f9955263 100644 --- a/tests/modelling/test_filter.py +++ b/tests/pipeline/test_filter.py @@ -20,9 +20,7 @@ from numpy import ( from numpy.random import randn, seed as random_seed from zipline.errors import BadPercentileBounds -from zipline.modelling.filter import Filter -from zipline.modelling.factor import Factor -from zipline.modelling.graph import TermGraph +from zipline.pipeline import Filter, Factor, TermGraph from zipline.utils.test_utils import check_arrays from .base import BaseFFCTestCase, with_default_shape diff --git a/tests/modelling/test_frameload.py b/tests/pipeline/test_frameload.py similarity index 96% rename from tests/modelling/test_frameload.py rename to tests/pipeline/test_frameload.py index 708a00af..0d11f64a 100644 --- a/tests/modelling/test_frameload.py +++ b/tests/pipeline/test_frameload.py @@ -1,5 +1,5 @@ """ -Tests for zipline.data.ffc.frame.DataFrameFFCLoader +Tests for zipline.pipeline.loaders.frame.DataFrameFFCLoader. """ from unittest import TestCase @@ -17,8 +17,8 @@ from zipline.lib.adjustment import ( Float64Multiply, Float64Overwrite, ) -from zipline.data.equities import USEquityPricing -from zipline.data.ffc.frame import ( +from zipline.pipeline.data import USEquityPricing +from zipline.pipeline.loaders.frame import ( ADD, DataFrameFFCLoader, MULTIPLY, @@ -205,7 +205,7 @@ class DataFrameFFCLoaderTestCase(TestCase): self.assertEqual(formatted_adjustments, expected_formatted_adjustments) mask = self.mask[dates_slice, sids_slice] - with patch('zipline.data.ffc.frame.adjusted_array') as m: + with patch('zipline.pipeline.loaders.frame.adjusted_array') as m: loader.load_adjusted_array( columns=[USEquityPricing.close], dates=self.dates[dates_slice], diff --git a/tests/modelling/test_numerical_expression.py b/tests/pipeline/test_numerical_expression.py similarity index 99% rename from tests/modelling/test_numerical_expression.py rename to tests/pipeline/test_numerical_expression.py index 3616c70f..f6aca344 100644 --- a/tests/modelling/test_numerical_expression.py +++ b/tests/pipeline/test_numerical_expression.py @@ -24,11 +24,12 @@ from pandas import ( Int64Index, ) -from zipline.modelling.expression import ( +from zipline.pipeline import Factor +from zipline.pipeline.expression import ( NumericalExpression, NUMEXPR_MATH_FUNCS, ) -from zipline.modelling.factor import Factor + from zipline.utils.test_utils import check_arrays diff --git a/tests/modelling/test_pipeline.py b/tests/pipeline/test_pipeline.py similarity index 93% rename from tests/modelling/test_pipeline.py rename to tests/pipeline/test_pipeline.py index 4f6793b1..a2b752be 100644 --- a/tests/modelling/test_pipeline.py +++ b/tests/pipeline/test_pipeline.py @@ -1,12 +1,10 @@ """ -Tests for zipline.modelling.pipeline.Pipeline +Tests for zipline.pipeline.Pipeline """ from unittest import TestCase -from zipline.data.equities import USEquityPricing -from zipline.modelling.pipeline import Pipeline -from zipline.modelling.factor import Factor -from zipline.modelling.filter import Filter +from zipline.pipeline import Factor, Filter, Pipeline +from zipline.pipeline.data import USEquityPricing class SomeFactor(Factor): diff --git a/tests/modelling/test_modelling_algo.py b/tests/pipeline/test_pipeline_algo.py similarity index 98% rename from tests/modelling/test_modelling_algo.py rename to tests/pipeline/test_pipeline_algo.py index 7aae7d34..e740437a 100644 --- a/tests/modelling/test_modelling_algo.py +++ b/tests/pipeline/test_pipeline_algo.py @@ -35,24 +35,23 @@ from zipline.api import ( drain_pipeline, get_datetime, ) -from zipline.data.equities import USEquityPricing -from zipline.data.ffc.frame import DataFrameFFCLoader, MULTIPLY -from zipline.data.ffc.loaders.us_equity_pricing import ( - BcolzDailyBarReader, - DailyBarWriterFromCSVs, - SQLiteAdjustmentReader, - SQLiteAdjustmentWriter, - USEquityPricingLoader, -) from zipline.errors import ( AttachPipelineAfterInitialize, DrainPipelineDuringInitialize, NoSuchPipeline, ) from zipline.finance import trading - -from zipline.modelling.factor.technical import VWAP -from zipline.modelling.pipeline import Pipeline +from zipline.pipeline import Pipeline +from zipline.pipeline.factor.technical import VWAP +from zipline.pipeline.data import USEquityPricing +from zipline.pipeline.loaders.frame import DataFrameFFCLoader, MULTIPLY +from zipline.pipeline.loaders.equity_pricing_loader import ( + BcolzDailyBarReader, + DailyBarWriterFromCSVs, + SQLiteAdjustmentReader, + SQLiteAdjustmentWriter, + USEquityPricingLoader, +) from zipline.utils.test_utils import ( make_simple_asset_info, str_to_seconds, @@ -66,7 +65,7 @@ from zipline.utils.tradingcalendar import ( TEST_RESOURCE_PATH = join( dirname(dirname(realpath(__file__))), # zipline_repo/tests 'resources', - 'modelling_inputs', + 'pipeline_inputs', ) diff --git a/tests/modelling/test_term.py b/tests/pipeline/test_term.py similarity index 96% rename from tests/modelling/test_term.py rename to tests/pipeline/test_term.py index e79f744f..9fc9fac8 100644 --- a/tests/modelling/test_term.py +++ b/tests/pipeline/test_term.py @@ -10,19 +10,15 @@ from numpy import ( uint8, ) -from zipline.data.dataset import ( - Column, - DataSet, -) from zipline.errors import ( InputTermNotAtomic, TermInputsNotSpecified, WindowLengthNotSpecified, ) -from zipline.modelling.expression import NUMEXPR_MATH_FUNCS -from zipline.modelling.factor import Factor -from zipline.modelling.graph import TermGraph -from zipline.modelling.term import AssetExists, NotSpecified +from zipline.pipeline import Factor, TermGraph +from zipline.pipeline.data import Column, DataSet +from zipline.pipeline.term import AssetExists, NotSpecified +from zipline.pipeline.expression import NUMEXPR_MATH_FUNCS class SomeDataSet(DataSet): diff --git a/tests/modelling/test_us_equity_pricing_loader.py b/tests/pipeline/test_us_equity_pricing_loader.py similarity index 99% rename from tests/modelling/test_us_equity_pricing_loader.py rename to tests/pipeline/test_us_equity_pricing_loader.py index 54d87d90..c4fb9d79 100644 --- a/tests/modelling/test_us_equity_pricing_loader.py +++ b/tests/pipeline/test_us_equity_pricing_loader.py @@ -13,7 +13,7 @@ # See the License for the specific language governing permissions and # limitations under the License. """ -Tests for zipline.data.ffc.loaders.us_equity_pricing +Tests for USEquityPricingLoader and related classes. """ from unittest import TestCase @@ -40,12 +40,11 @@ from pandas.util.testing import assert_index_equal from testfixtures import TempDirectory from zipline.lib.adjustment import Float64Multiply -from zipline.data.equities import USEquityPricing -from zipline.data.ffc.synthetic import ( +from zipline.pipeline.loaders.synthetic import ( NullAdjustmentReader, SyntheticDailyBarWriter, ) -from zipline.data.ffc.loaders.us_equity_pricing import ( +from zipline.pipeline.loaders.equity_pricing_loader import ( BcolzDailyBarReader, SQLiteAdjustmentReader, SQLiteAdjustmentWriter, @@ -53,6 +52,7 @@ from zipline.data.ffc.loaders.us_equity_pricing import ( ) from zipline.errors import WindowLengthTooLong from zipline.finance.trading import TradingEnvironment +from zipline.pipeline.data import USEquityPricing from zipline.utils.test_utils import ( seconds_to_timestamp, str_to_seconds, diff --git a/tests/resources/modelling_inputs/AAPL.csv b/tests/resources/pipeline_inputs/AAPL.csv similarity index 100% rename from tests/resources/modelling_inputs/AAPL.csv rename to tests/resources/pipeline_inputs/AAPL.csv diff --git a/tests/resources/modelling_inputs/BRK-A.csv b/tests/resources/pipeline_inputs/BRK-A.csv similarity index 100% rename from tests/resources/modelling_inputs/BRK-A.csv rename to tests/resources/pipeline_inputs/BRK-A.csv diff --git a/tests/resources/modelling_inputs/MSFT.csv b/tests/resources/pipeline_inputs/MSFT.csv similarity index 100% rename from tests/resources/modelling_inputs/MSFT.csv rename to tests/resources/pipeline_inputs/MSFT.csv diff --git a/tests/resources/modelling_inputs/generate.py b/tests/resources/pipeline_inputs/generate.py similarity index 100% rename from tests/resources/modelling_inputs/generate.py rename to tests/resources/pipeline_inputs/generate.py diff --git a/tests/test_doctests.py b/tests/test_doctests.py index f5406fbc..70bd5e29 100644 --- a/tests/test_doctests.py +++ b/tests/test_doctests.py @@ -4,7 +4,7 @@ import doctest from unittest import TestCase from zipline.lib import adjustment -from zipline.modelling import ( +from zipline.pipeline import ( engine, expression, ) diff --git a/zipline/algorithm.py b/zipline/algorithm.py index 0c3e37af..062c8112 100644 --- a/zipline/algorithm.py +++ b/zipline/algorithm.py @@ -74,7 +74,7 @@ from zipline.assets import Asset, Future from zipline.assets.futures import FutureChain from zipline.gens.composites import date_sorted_sources from zipline.gens.tradesimulation import AlgorithmSimulator -from zipline.modelling.engine import ( +from zipline.pipeline.engine import ( NoOpFFCEngine, SimpleFFCEngine, ) @@ -229,7 +229,7 @@ class TradingAlgorithm(object): # Pull in the environment's new AssetFinder for quick reference self.asset_finder = self.trading_environment.asset_finder - # Initialize Modeling API data. + # Initialize Pipeline API data. self.init_engine(kwargs.pop('ffc_loader', None)) self._pipelines = [] # Create an always-expired cache so that we compute the first time data @@ -1333,7 +1333,7 @@ class TradingAlgorithm(object): self.register_trading_control(LongOnly()) ############## - # Modeling API + # Pipeline API ############## @api_method @require_not_initialized(AttachPipelineAfterInitialize()) @@ -1369,7 +1369,7 @@ class TradingAlgorithm(object): See Also -------- - :meth:`zipline.modelling.FFCEngine.run_pipeline` + :meth:`zipline.pipeline.engine.FFCEngine.run_pipeline` """ # NOTE: We don't currently support multiple pipelines, but we plan to # in the future. @@ -1441,7 +1441,7 @@ class TradingAlgorithm(object): self.engine.run_pipeline(pipeline, start_date, end_date), end_date ################## - # End Modeling API + # End Pipeline API ################## def current_universe(self): diff --git a/zipline/assets/assets.py b/zipline/assets/assets.py index 98351164..cd8a7723 100644 --- a/zipline/assets/assets.py +++ b/zipline/assets/assets.py @@ -627,7 +627,7 @@ class AssetFinder(object): See Also -------- numpy.putmask - zipline.modelling.engine.SimpleFFCEngine._compute_root_mask + zipline.pipeline.engine.SimpleFFCEngine._compute_root_mask """ # This is a less than ideal place to do this, because if someone adds # assets to the finder after we've touched lifetimes we won't have diff --git a/zipline/data/ffc/loaders/__init__.py b/zipline/data/ffc/loaders/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/zipline/data/ffc/loaders/_us_equity_pricing.pyx b/zipline/data/ffc/loaders/_us_equity_pricing.pyx deleted file mode 100644 index daf8204f..00000000 --- a/zipline/data/ffc/loaders/_us_equity_pricing.pyx +++ /dev/null @@ -1,276 +0,0 @@ -# -# Copyright 2015 Quantopian, Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -from cpython cimport ( - PyDict_Contains, - PySet_Add, -) - -from numpy import ( - uint32, - zeros, -) -from pandas import Timestamp - -ctypedef object Timestamp_t -ctypedef object DatetimeIndex_t -ctypedef object Int64Index_t - -from zipline.lib.adjustment import Float64Multiply - -_SID_QUERY_TEMPLATE = """ -SELECT DISTINCT sid FROM {0} -WHERE effective_date >= ? AND effective_date <= ? -""" -cdef dict SID_QUERIES = { - tablename: _SID_QUERY_TEMPLATE.format(tablename) - for tablename in ('splits', 'dividends', 'mergers') -} - -ADJ_QUERY_TEMPLATE = """ -SELECT sid, ratio, effective_date -FROM {0} -WHERE sid IN ({1}) AND effective_date >= {2} AND effective_date <= {3} -""" - -cdef int SQLITE_MAX_IN_STATEMENT = 999 -EPOCH = Timestamp(0, tz='UTC') - -cdef set _get_sids_from_table(object db, - str tablename, - int start_date, - int end_date): - """ - Get the unique sids for all adjustments between start_date and end_date - from table `tablename`. - - Parameters - ---------- - db : sqlite3.connection - tablename : str - start_date : int (seconds since epoch) - end_date : int (seconds since epoch) - - Returns - ------- - sids : set - Set of sets - """ - - cdef object cursor = db.execute( - SID_QUERIES[tablename], - (start_date, end_date), - ) - cdef set out = set() - cdef tuple result - for result in cursor.fetchall(): - PySet_Add(out, result[0]) - return out - - -cdef set _get_split_sids(object db, int start_date, int end_date): - return _get_sids_from_table(db, 'splits', start_date, end_date) - - -cdef set _get_merger_sids(object db, int start_date, int end_date): - return _get_sids_from_table(db, 'mergers', start_date, end_date) - - -cdef set _get_dividend_sids(object db, int start_date, int end_date): - return _get_sids_from_table(db, 'dividends', start_date, end_date) - - -cdef _adjustments(object adjustments_db, - set split_sids, - set merger_sids, - set dividends_sids, - int start_date, - int end_date, - Int64Index_t assets): - - c = adjustments_db.cursor() - - splits_to_query = [str(a) for a in assets if a in split_sids] - splits_results = [] - while splits_to_query: - query_len = min(len(splits_to_query), SQLITE_MAX_IN_STATEMENT) - query_assets = splits_to_query[:query_len] - t= [str(a) for a in query_assets] - statement = ADJ_QUERY_TEMPLATE.format('splits', - ",".join(['?' for _ in query_assets]), start_date, end_date) - c.execute(statement, t) - splits_to_query = splits_to_query[query_len:] - splits_results.extend(c.fetchall()) - - mergers_to_query = [str(a) for a in assets if a in merger_sids] - mergers_results = [] - while mergers_to_query: - query_len = min(len(mergers_to_query), SQLITE_MAX_IN_STATEMENT) - query_assets = mergers_to_query[:query_len] - t= [str(a) for a in query_assets] - statement = ADJ_QUERY_TEMPLATE.format('mergers', - ",".join(['?' for _ in query_assets]), start_date, end_date) - c.execute(statement, t) - mergers_to_query = mergers_to_query[query_len:] - mergers_results.extend(c.fetchall()) - - dividends_to_query = [str(a) for a in assets if a in dividends_sids] - dividends_results = [] - while dividends_to_query: - query_len = min(len(dividends_to_query), SQLITE_MAX_IN_STATEMENT) - query_assets = dividends_to_query[:query_len] - t= [str(a) for a in query_assets] - statement = ADJ_QUERY_TEMPLATE.format('dividends', - ",".join(['?' for _ in query_assets]), start_date, end_date) - c.execute(statement, t) - dividends_to_query = dividends_to_query[query_len:] - dividends_results.extend(c.fetchall()) - - return splits_results, mergers_results, dividends_results - - -cpdef load_adjustments_from_sqlite(object adjustments_db, # sqlite3.Connection - list columns, - DatetimeIndex_t dates, - Int64Index_t assets): - """ - Load a dictionary of Adjustment objects from adjustments_db - - Parameters - ---------- - adjustments_db : sqlite3.Connection - Connection to a sqlite3 table in the format written by - SQLiteAdjustmentWriter. - columns : list[str] - List of column names for which adjustments are needed. - dates : pd.DatetimeIndex - Dates for which adjustments are needed - assets : pd.Int64Index - Assets for which adjustments are needed. - """ - - cdef int start_date = int((dates[0] - EPOCH).total_seconds()) - cdef int end_date = int((dates[-1] - EPOCH).total_seconds()) - - cdef set split_sids = _get_split_sids( - adjustments_db, - start_date, - end_date, - ) - cdef set merger_sids = _get_merger_sids( - adjustments_db, - start_date, - end_date, - ) - cdef set dividend_sids = _get_dividend_sids( - adjustments_db, - start_date, - end_date, - ) - - cdef: - list splits, mergers, dividends - splits, mergers, dividends = _adjustments( - adjustments_db, - split_sids, - merger_sids, - dividend_sids, - start_date, - end_date, - assets, - ) - - cdef list results = [{} for column in columns] - cdef dict asset_ixs = {} # Cache sid lookups here. - cdef: - int sid - double ratio - int eff_date - int date_loc - Py_ssize_t asset_ix - int i - dict col_adjustments - - # splits affect prices and volumes, volumes is the inverse - for sid, ratio, eff_date in splits: - date_loc = dates.get_loc( - Timestamp(eff_date, unit='s', tz='UTC'), - # Get the first date **on or after** the effective date. - method='bfill', - ) - - if not PyDict_Contains(asset_ixs, sid): - asset_ixs[sid] = assets.get_loc(sid) - asset_ix = asset_ixs[sid] - - price_adj = Float64Multiply(0, date_loc, asset_ix, ratio) - for i, column in enumerate(columns): - col_adjustments = results[i] - if column != 'volume': - try: - col_adjustments[date_loc].append(price_adj) - except KeyError: - col_adjustments[date_loc] = [price_adj] - else: - volume_adj = Float64Multiply( - 0, date_loc, asset_ix, 1.0 / ratio - ) - try: - col_adjustments[date_loc].append(volume_adj) - except KeyError: - col_adjustments[date_loc] = [volume_adj] - - # mergers affect prices only - for sid, ratio, eff_date in mergers: - date_loc = dates.get_loc( - Timestamp(eff_date, unit='s', tz='UTC'), - # Get the first date **on or after** the effective date. - method='bfill', - ) - - if not PyDict_Contains(asset_ixs, sid): - asset_ixs[sid] = assets.get_loc(sid) - asset_ix = asset_ixs[sid] - - adj = Float64Multiply(0, date_loc, asset_ix, ratio) - for i, column in enumerate(columns): - col_adjustments = results[i] - if column != 'volume': - try: - col_adjustments[date_loc].append(adj) - except KeyError: - col_adjustments[date_loc] = [adj] - - # dividends affect prices only - for sid, ratio, eff_date in dividends: - date_loc = dates.get_loc( - Timestamp(eff_date, unit='s', tz='UTC'), - # Get the first date **on or after** the effective date. - method='bfill', - ) - - if not PyDict_Contains(asset_ixs, sid): - asset_ixs[sid] = assets.get_loc(sid) - asset_ix = asset_ixs[sid] - - adj = Float64Multiply(0, last_row, asset_ix, ratio) - for i, column in enumerate(columns): - col_adjustments = results[i] - if column != 'volume': - try: - col_adjustments[date_loc].append(adj) - except KeyError: - col_adjustments[date_loc] = [adj] - - return results diff --git a/zipline/modelling/__init__.py b/zipline/pipeline/__init__.py similarity index 100% rename from zipline/modelling/__init__.py rename to zipline/pipeline/__init__.py diff --git a/zipline/modelling/classifier.py b/zipline/pipeline/classifier.py similarity index 59% rename from zipline/modelling/classifier.py rename to zipline/pipeline/classifier.py index 09b58c24..aa1263ad 100644 --- a/zipline/modelling/classifier.py +++ b/zipline/pipeline/classifier.py @@ -2,7 +2,7 @@ classifier.py """ -from zipline.modelling.term import Term +from zipline.pipeline.term import Term class Classifier(Term): diff --git a/zipline/pipeline/data/__init__.py b/zipline/pipeline/data/__init__.py new file mode 100644 index 00000000..b4066453 --- /dev/null +++ b/zipline/pipeline/data/__init__.py @@ -0,0 +1,9 @@ +from .equity_pricing import USEquityPricing +from .dataset import DataSet, Column, BoundColumn + +__all__ = [ + 'BoundColumn', + 'Column', + 'DataSet', + 'USEquityPricing', +] diff --git a/zipline/data/dataset.py b/zipline/pipeline/data/dataset.py similarity index 96% rename from zipline/data/dataset.py rename to zipline/pipeline/data/dataset.py index aaf2beaf..096c2986 100644 --- a/zipline/data/dataset.py +++ b/zipline/pipeline/data/dataset.py @@ -6,8 +6,8 @@ from six import ( with_metaclass, ) -from zipline.modelling.term import Term -from zipline.modelling.factor import Latest +from zipline.pipeline.term import Term +from zipline.pipeline.factor import Latest class Column(object): diff --git a/zipline/data/equities.py b/zipline/pipeline/data/equity_pricing.py similarity index 61% rename from zipline/data/equities.py rename to zipline/pipeline/data/equity_pricing.py index 945a35f1..ddcddfca 100644 --- a/zipline/data/equities.py +++ b/zipline/pipeline/data/equity_pricing.py @@ -1,12 +1,6 @@ -from numpy import ( - float64, - uint32, -) +from numpy import float64, uint32 -from zipline.data.dataset import ( - Column, - DataSet, -) +from .dataset import Column, DataSet class USEquityPricing(DataSet): diff --git a/zipline/modelling/engine.py b/zipline/pipeline/engine.py similarity index 98% rename from zipline/modelling/engine.py rename to zipline/pipeline/engine.py index cb160cf4..2a0a49a0 100644 --- a/zipline/modelling/engine.py +++ b/zipline/pipeline/engine.py @@ -39,7 +39,7 @@ class FFCEngine(with_metaclass(ABCMeta)): Parameters ---------- - pipeline : zipline.modelling.pipeline.Pipeline + pipeline : zipline.pipeline.Pipeline The pipeline to run. start_date : pd.Timestamp Start date of the computed matrix. @@ -53,7 +53,7 @@ class FFCEngine(with_metaclass(ABCMeta)): The columns `result` correspond wil be the computed results of `pipeline.columns`, which should be a dictionary mapping strings to - instances of `zipline.modelling.term.Term`. + instances of `zipline.pipeline.term.Term`. For each date between `start_date` and `end_date`, `result` will contain a row for each asset that passed `pipeline.screen`. A @@ -111,7 +111,7 @@ class SimpleFFCEngine(object): Parameters ---------- - pipeline : zipline.modelling.pipeline.Pipeline + pipeline : zipline.pipeline.Pipeline The pipeline to run. start_date : pd.Timestamp Start date of the computed matrix. @@ -142,7 +142,7 @@ class SimpleFFCEngine(object): 5. Stick the values computed in (4) into a DataFrame and return it. - Step 0 is performed by `zipline.modelling.graph.TermGraph`. + Step 0 is performed by `zipline.pipeline.graph.TermGraph`. Step 1 is performed in `self._compute_root_mask`. Step 2 is performed in `self.compute_chunk`. Steps 3, 4, and 5 are performed in self._format_factor_matrix. @@ -280,7 +280,7 @@ class SimpleFFCEngine(object): Parameters ---------- - graph : zipline.modelling.graph.TermGraph + graph : zipline.pipeline.graph.TermGraph dates : pd.DatetimeIndex Row labels for our root mask. assets : pd.Int64Index diff --git a/zipline/modelling/expression.py b/zipline/pipeline/expression.py similarity index 99% rename from zipline/modelling/expression.py rename to zipline/pipeline/expression.py index cc78906f..8ec5200e 100644 --- a/zipline/modelling/expression.py +++ b/zipline/pipeline/expression.py @@ -12,7 +12,7 @@ from numpy import ( find_common_type, ) -from zipline.modelling.term import Term, NotSpecified +from zipline.pipeline.term import Term, NotSpecified _VARIABLE_NAME_RE = re.compile("^(x_)([0-9]+)$") diff --git a/zipline/modelling/factor/__init__.py b/zipline/pipeline/factor/__init__.py similarity index 100% rename from zipline/modelling/factor/__init__.py rename to zipline/pipeline/factor/__init__.py diff --git a/zipline/modelling/factor/factor.py b/zipline/pipeline/factor/factor.py similarity index 96% rename from zipline/modelling/factor/factor.py rename to zipline/pipeline/factor/factor.py index 37861c4f..5a0fff35 100644 --- a/zipline/modelling/factor/factor.py +++ b/zipline/pipeline/factor/factor.py @@ -16,14 +16,14 @@ from zipline.errors import ( UnsupportedDataType, ) from zipline.lib.rank import rankdata_2d_ordinal -from zipline.modelling.term import ( +from zipline.pipeline.term import ( CustomTermMixin, NotSpecified, RequiredWindowLengthMixin, SingleInputMixin, Term, ) -from zipline.modelling.expression import ( +from zipline.pipeline.expression import ( BadBinaryOperator, COMPARISONS, is_comparison, @@ -33,7 +33,7 @@ from zipline.modelling.expression import ( NUMEXPR_MATH_FUNCS, UNARY_OPS, ) -from zipline.modelling.filter import ( +from zipline.pipeline.filter import ( NumExprFilter, PercentileFilter, ) @@ -230,7 +230,7 @@ class Factor(Term): Parameters ---------- - ranks : zipline.modelling.factor.Rank + ranks : zipline.pipeline.factor.Rank A new factor that will compute the sorted indices of the data produced by `self`. method : str, {'ordinal', 'min', 'max', 'dense', 'average'} @@ -243,7 +243,7 @@ class Factor(Term): Returns ------- - ranks : zipline.modelling.factor.Rank + ranks : zipline.pipeline.factor.Rank Notes ----- @@ -258,7 +258,7 @@ class Factor(Term): -------- scipy.stats.rankdata zipline.lib.rank - zipline.modelling.factor.Rank + zipline.pipeline.factor.Rank """ return Rank(self if ascending else -self, method=method, mask=mask) @@ -273,7 +273,7 @@ class Factor(Term): Returns ------- - filter : zipline.modelling.filter.Filter + filter : zipline.pipeline.filter.Filter """ return self.rank(ascending=False, mask=mask) <= N @@ -288,7 +288,7 @@ class Factor(Term): Returns ------- - filter : zipline.modelling.filter.Filter + filter : zipline.pipeline.filter.Filter """ return self.rank(ascending=True, mask=mask) <= N @@ -308,12 +308,12 @@ class Factor(Term): Returns ------- - out : zipline.modelling.filter.PercentileFilter + out : zipline.pipeline.filter.PercentileFilter A new filter that will compute the specified percentile-range mask. See Also -------- - zipline.modelling.filter.PercentileFilter + zipline.pipeline.filter.PercentileFilter """ return PercentileFilter( self, @@ -350,7 +350,7 @@ class Rank(SingleInputMixin, Factor): Parameters ---------- - factor : zipline.modelling.factor.Factor + factor : zipline.pipeline.factor.Factor The factor on which to compute ranks. method : str, {'average', 'min', 'max', 'dense', 'ordinal'} The method used to assign ranks to tied elements. See diff --git a/zipline/modelling/factor/latest.py b/zipline/pipeline/factor/latest.py similarity index 100% rename from zipline/modelling/factor/latest.py rename to zipline/pipeline/factor/latest.py diff --git a/zipline/modelling/factor/technical.py b/zipline/pipeline/factor/technical.py similarity index 95% rename from zipline/modelling/factor/technical.py rename to zipline/pipeline/factor/technical.py index 93f656a0..dbc93531 100644 --- a/zipline/modelling/factor/technical.py +++ b/zipline/pipeline/factor/technical.py @@ -18,8 +18,8 @@ from numpy import ( ) from numexpr import evaluate -from zipline.data.equities import USEquityPricing -from zipline.modelling.term import SingleInputMixin +from zipline.pipeline.data import USEquityPricing +from zipline.pipeline.term import SingleInputMixin from zipline.utils.control_flow import ignore_nanwarnings from .factor import CustomFactor diff --git a/zipline/modelling/filter.py b/zipline/pipeline/filter.py similarity index 97% rename from zipline/modelling/filter.py rename to zipline/pipeline/filter.py index ac79d1c6..80b3d0c2 100644 --- a/zipline/modelling/filter.py +++ b/zipline/pipeline/filter.py @@ -13,11 +13,11 @@ from operator import attrgetter from zipline.errors import ( BadPercentileBounds, ) -from zipline.modelling.term import ( +from zipline.pipeline.term import ( SingleInputMixin, Term, ) -from zipline.modelling.expression import ( +from zipline.pipeline.expression import ( BadBinaryOperator, FILTER_BINOPS, method_name_for_op, @@ -119,7 +119,7 @@ class PercentileFilter(SingleInputMixin, Filter): Parameters ---------- - factor : zipline.modelling.factor.Factor + factor : zipline.pipeline.factor.Factor The factor over which to compute percentile bounds. min_percentile : float [0.0, 1.0] The minimum percentile rank of an asset that will pass the filter. diff --git a/zipline/modelling/graph.py b/zipline/pipeline/graph.py similarity index 95% rename from zipline/modelling/graph.py rename to zipline/pipeline/graph.py index 583a2181..c712351f 100644 --- a/zipline/modelling/graph.py +++ b/zipline/pipeline/graph.py @@ -7,7 +7,7 @@ from networkx import ( ) from six import itervalues, iteritems from zipline.utils.memoize import lazyval -from zipline.modelling.visualize import display_graph +from zipline.pipeline.visualize import display_graph class CyclicDependency(Exception): @@ -98,9 +98,9 @@ class TermGraph(DiGraph): See Also -------- - zipline.modelling.graph.TermGraph.offset - zipline.modelling.engine.SimpleFFCEngine._inputs_for_term - zipline.modelling.engine.SimpleFFCEngine._mask_for_term + zipline.pipeline.graph.TermGraph.offset + zipline.pipeline.engine.SimpleFFCEngine._inputs_for_term + zipline.pipeline.engine.SimpleFFCEngine._mask_for_term """ out = {} for term in self: @@ -147,8 +147,8 @@ class TermGraph(DiGraph): See Also -------- - zipline.modelling.graph.TermGraph.offset - zipline.modelling.term.Term.extra_input_rows + zipline.pipeline.graph.TermGraph.offset + zipline.pipeline.term.Term.extra_input_rows """ return { term: attrs['extra_rows'] diff --git a/zipline/data/ffc/__init__.py b/zipline/pipeline/loaders/__init__.py similarity index 100% rename from zipline/data/ffc/__init__.py rename to zipline/pipeline/loaders/__init__.py diff --git a/zipline/data/ffc/loaders/_adjustments.pyx b/zipline/pipeline/loaders/_adjustments.pyx similarity index 100% rename from zipline/data/ffc/loaders/_adjustments.pyx rename to zipline/pipeline/loaders/_adjustments.pyx diff --git a/zipline/data/ffc/loaders/_equities.pyx b/zipline/pipeline/loaders/_equities.pyx similarity index 100% rename from zipline/data/ffc/loaders/_equities.pyx rename to zipline/pipeline/loaders/_equities.pyx diff --git a/zipline/data/ffc/base.py b/zipline/pipeline/loaders/base.py similarity index 79% rename from zipline/data/ffc/base.py rename to zipline/pipeline/loaders/base.py index 0554d7cd..4b772d52 100644 --- a/zipline/data/ffc/base.py +++ b/zipline/pipeline/loaders/base.py @@ -12,7 +12,7 @@ from six import with_metaclass class FFCLoader(with_metaclass(ABCMeta)): """ - ABC for classes that can load data for use with zipline.modelling pipeline. + ABC for classes that can load data for use with zipline.pipeline APIs. TODO: DOCUMENT THIS MORE! """ diff --git a/zipline/data/ffc/loaders/us_equity_pricing.py b/zipline/pipeline/loaders/equity_pricing_loader.py similarity index 98% rename from zipline/data/ffc/loaders/us_equity_pricing.py rename to zipline/pipeline/loaders/equity_pricing_loader.py index 95c8facc..c4932954 100644 --- a/zipline/data/ffc/loaders/us_equity_pricing.py +++ b/zipline/pipeline/loaders/equity_pricing_loader.py @@ -19,6 +19,7 @@ from contextlib import contextmanager from errno import ENOENT from os import remove from os.path import exists +import sqlite3 from bcolz import ( carray, @@ -45,20 +46,16 @@ from six import ( string_types, with_metaclass, ) -import sqlite3 - -from zipline.data.ffc.base import FFCLoader -from zipline.data.ffc.loaders._equities import ( - _compute_row_slices, - _read_bcolz_data, -) -from zipline.data.ffc.loaders._adjustments import load_adjustments_from_sqlite from zipline.lib.adjusted_array import ( adjusted_array, ) from zipline.errors import NoFurtherDataError +from .base import FFCLoader +from ._equities import _compute_row_slices, _read_bcolz_data +from ._adjustments import load_adjustments_from_sqlite + OHLC = frozenset(['open', 'high', 'low', 'close']) US_EQUITY_PRICING_BCOLZ_COLUMNS = [ 'open', 'high', 'low', 'close', 'volume', 'day', 'id' @@ -624,7 +621,7 @@ def _shift_dates(dates, start_date, end_date, shift): if start_date < dates[0]: raise NoFurtherDataError( msg=( - "Modeling Query requested data starting on {query_start}, " + "Pipeline Query requested data starting on {query_start}, " "but first known date is {calendar_start}" ).format( query_start=str(start_date), @@ -638,7 +635,7 @@ def _shift_dates(dates, start_date, end_date, shift): if start < shift: raise NoFurtherDataError( msg=( - "Modeling Query requested data from {shift}" + "Pipeline Query requested data from {shift}" " days before {query_start}, but first known date is only " "{start} days earlier." ).format(shift=shift, query_start=start_date, start=start), @@ -650,7 +647,7 @@ def _shift_dates(dates, start_date, end_date, shift): if end_date > dates[-1]: raise NoFurtherDataError( msg=( - "Modeling Query requesting data up to {query_end}, " + "Pipeline Query requesting data up to {query_end}, " "but last known date is {calendar_end}" ).format( query_end=end_date, diff --git a/zipline/data/ffc/frame.py b/zipline/pipeline/loaders/frame.py similarity index 97% rename from zipline/data/ffc/frame.py rename to zipline/pipeline/loaders/frame.py index b446122c..823ee688 100644 --- a/zipline/data/ffc/frame.py +++ b/zipline/pipeline/loaders/frame.py @@ -17,7 +17,8 @@ from zipline.lib.adjustment import ( Float64Multiply, Float64Overwrite, ) -from zipline.data.ffc.base import FFCLoader + +from .base import FFCLoader ADD, MULTIPLY, OVERWRITE = range(3) @@ -45,7 +46,7 @@ class DataFrameFFCLoader(FFCLoader): Parameters ---------- - column : zipline.data.dataset.BoundColumn + column : zipline.pipeline.data.BoundColumn The column whose data is loadable by this loader. baseline : pandas.DataFrame A DataFrame with index of type DatetimeIndex and columns of type @@ -58,7 +59,7 @@ class DataFrameFFCLoader(FFCLoader): A DataFrame with the following columns: sid : int value : any - kind : int (zipline.data.ffc.frame.ADJUSTMENT_TYPES) + kind : int (zipline.pipeline.loaders.frame.ADJUSTMENT_TYPES) start_date : datetime64 (can be NaT) end_date : datetime64 (must be set) apply_date : datetime64 (must be set) diff --git a/zipline/data/ffc/synthetic.py b/zipline/pipeline/loaders/synthetic.py similarity index 97% rename from zipline/data/ffc/synthetic.py rename to zipline/pipeline/loaders/synthetic.py index 8f008fc1..4b1d331a 100644 --- a/zipline/data/ffc/synthetic.py +++ b/zipline/pipeline/loaders/synthetic.py @@ -11,17 +11,13 @@ from numpy import ( iinfo, uint32, ) -from pandas import ( - DataFrame, - Timestamp, -) +from pandas import DataFrame, Timestamp +from six import iteritems from sqlite3 import connect as sqlite3_connect -from six import iteritems - -from zipline.data.ffc.base import FFCLoader -from zipline.data.ffc.frame import DataFrameFFCLoader -from zipline.data.ffc.loaders.us_equity_pricing import ( +from .base import FFCLoader +from .frame import DataFrameFFCLoader +from .equity_pricing_loader import ( BcolzDailyBarWriter, SQLiteAdjustmentReader, SQLiteAdjustmentWriter, diff --git a/zipline/modelling/pipeline.py b/zipline/pipeline/pipeline.py similarity index 91% rename from zipline/modelling/pipeline.py rename to zipline/pipeline/pipeline.py index 5ec6b6ed..5b315ef4 100644 --- a/zipline/modelling/pipeline.py +++ b/zipline/pipeline/pipeline.py @@ -1,7 +1,8 @@ from zipline.utils.preprocess import expect_types, optional -from zipline.modelling.term import Term -from zipline.modelling.filter import Filter -from zipline.modelling.graph import TermGraph + +from .term import Term +from .filter import Filter +from .graph import TermGraph class Pipeline(object): @@ -12,7 +13,7 @@ class Pipeline(object): Name for this pipeline. columns : dict, optional Initial columns. - screen : zipline.modelling.term.Filter, optional + screen : zipline.pipeline.term.Filter, optional Initial screen. Methods @@ -71,7 +72,7 @@ class Pipeline(object): Parameters ---------- - column : zipline.modelling.Term + column : zipline.pipeline.Term A Filter, Factor, or Classifier to add to the pipeline. name : str Name of the column to add. @@ -105,7 +106,7 @@ class Pipeline(object): Returns ------- - removed : zipline.modelling.term.Term + removed : zipline.pipeline.term.Term The removed term. """ return self.columns.pop(name) @@ -120,7 +121,7 @@ class Pipeline(object): Parameter --------- - filter : zipline.modelling.filter.Filter + filter : zipline.pipeline.filter.Filter The screen to apply. overwrite : bool Whether to overwrite any existing screen. If overwrite is False @@ -145,7 +146,7 @@ class Pipeline(object): ---------- screen_name : str Name to supply for self.screen. - default_screen : zipline.modelling.term.Term + default_screen : zipline.pipeline.term.Term Term to use as a screen if self.screen is None. """ columns = self.columns.copy() diff --git a/zipline/modelling/term.py b/zipline/pipeline/term.py similarity index 100% rename from zipline/modelling/term.py rename to zipline/pipeline/term.py diff --git a/zipline/modelling/visualize.py b/zipline/pipeline/visualize.py similarity index 96% rename from zipline/modelling/visualize.py rename to zipline/pipeline/visualize.py index c59bf43f..03297a27 100644 --- a/zipline/modelling/visualize.py +++ b/zipline/pipeline/visualize.py @@ -12,10 +12,9 @@ from subprocess import Popen, PIPE from networkx import topological_sort from six import iteritems - -from zipline.data.dataset import BoundColumn -from zipline.modelling import Filter, Factor, Classifier, Term -from zipline.modelling.term import AssetExists +from zipline.pipeline.data import BoundColumn +from zipline.pipeline import Filter, Factor, Classifier, Term +from zipline.pipeline.term import AssetExists class NoIPython(Exception): @@ -82,7 +81,7 @@ def _render(g, out, format_, include_asset_exists=False): Parameters ---------- - g : zipline.modelling.graph.TermGraph + g : zipline.pipeline.graph.TermGraph Graph to render. out : file-like object format_ : str {'png', 'svg'}