From 3b8b6d55e0d20f061b901cd512493fa00bf6d1d2 Mon Sep 17 00:00:00 2001 From: jfkirk Date: Thu, 2 Jun 2016 09:25:43 -0400 Subject: [PATCH] STY: Cleans up ExchangeCalendar construction --- zipline/utils/calendars/exchange_calendar.py | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/zipline/utils/calendars/exchange_calendar.py b/zipline/utils/calendars/exchange_calendar.py index 5464baf3..1e01ed4d 100644 --- a/zipline/utils/calendars/exchange_calendar.py +++ b/zipline/utils/calendars/exchange_calendar.py @@ -464,8 +464,6 @@ class ExchangeCalendar(with_metaclass(ABCMeta)): _static_calendars = {} -_lazy_calendar_names = ['NYSE', 'CME', 'BMF', 'LSE', 'TSX'] - def get_calendar(name): """ @@ -478,41 +476,42 @@ def get_calendar(name): """ # First, check if the calendar is already registered if name not in _static_calendars: - # The calendar is not registered, so check if it is a lazy calendar - if name not in _lazy_calendar_names: - # It's not a lazy calendar, so raise an exception - raise InvalidCalendarName(calendar_name=name) + # Check if it is a lazy calendar. If so, build and register it. if name == 'NYSE': from zipline.utils.calendars.exchange_calendar_nyse \ import NYSEExchangeCalendar nyse_cal = NYSEExchangeCalendar() register_calendar(nyse_cal) - if name == 'CME': + elif name == 'CME': from zipline.utils.calendars.exchange_calendar_cme \ import CMEExchangeCalendar cme_cal = CMEExchangeCalendar() register_calendar(cme_cal) - if name == 'BMF': + elif name == 'BMF': from zipline.utils.calendars.exchange_calendar_bmf \ import BMFExchangeCalendar bmf_cal = BMFExchangeCalendar() register_calendar(bmf_cal) - if name == 'LSE': + elif name == 'LSE': from zipline.utils.calendars.exchange_calendar_lse \ import LSEExchangeCalendar lse_cal = LSEExchangeCalendar() register_calendar(lse_cal) - if name == 'TSX': + elif name == 'TSX': from zipline.utils.calendars.exchange_calendar_tsx \ import TSXExchangeCalendar tsx_cal = TSXExchangeCalendar() register_calendar(tsx_cal) + else: + # It's not a lazy calendar, so raise an exception + raise InvalidCalendarName(calendar_name=name) + return _static_calendars[name]