MAINT: Add custom exception for incompatible history frequency specification.

This commit is contained in:
Thomas Wiecki
2014-09-18 16:18:55 +02:00
parent 69a66f776e
commit 4615b57fc2
3 changed files with 14 additions and 3 deletions
+2 -1
View File
@@ -26,6 +26,7 @@ from zipline.protocol import BarData
import zipline.utils.factory as factory
from zipline import TradingAlgorithm
from zipline.finance.trading import SimulationParameters, TradingEnvironment
from zipline.errors import IncompatibleHistoryFrequency
from zipline.sources import RandomWalkSource, DataFrameSource
@@ -412,7 +413,7 @@ def handle_data(context, data):
sim_params = factory.create_simulation_parameters(
start=start, end=end)
with self.assertRaises(ValueError):
with self.assertRaises(IncompatibleHistoryFrequency):
TradingAlgorithm(
script=algo_text,
data_frequency='daily',
+10
View File
@@ -159,3 +159,13 @@ class TradingControlViolation(ZiplineError):
msg = """
Order for {amount} shares of {sid} violates trading constraint {constraint}.
""".strip()
class IncompatibleHistoryFrequency(ZiplineError):
"""
Raised when a frequency is given to history which is not supported.
At least, not yet.
"""
msg = """
Minute history requires minute frequency input data.
Either use daily history or provide minute frequency data.""".strip()
+2 -2
View File
@@ -20,6 +20,7 @@ import pandas as pd
import re
from zipline.finance import trading
from zipline.errors import IncompatibleHistoryFrequency
def parse_freq_str(freq_str):
@@ -248,8 +249,7 @@ class HistorySpec(object):
if isinstance(frequency, str):
frequency = Frequency(frequency, daily_at_midnight)
if frequency.unit_str == 'm' and data_frequency == 'daily':
raise ValueError('Minute history requires minute frequency input data.\
Either use daily history or provide minute frequency data.')
raise IncompatibleHistoryFrequency()
# The frequency at which the data is sampled.
self.frequency = frequency