From 9cc043f130f0a0004f285fed95f543e8fa82c11a Mon Sep 17 00:00:00 2001 From: fawce Date: Tue, 19 Feb 2013 12:52:17 -0500 Subject: [PATCH 1/2] added a decorator for applying an environment to a function context. --- zipline/finance/trading.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/zipline/finance/trading.py b/zipline/finance/trading.py index d01adca1..9bd7dc5a 100644 --- a/zipline/finance/trading.py +++ b/zipline/finance/trading.py @@ -356,3 +356,17 @@ class DailyReturn(object): def __repr__(self): return str(self.date) + " - " + str(self.returns) + + +class use_environment(object): + """A decorator to wrap a method in a particular + trading environment.""" + + def __init__(self, environment): + self.env = environment + + def __call__(self, func): + def wrapper(*args, **kwargs): + with self.env: + return func(*args, **kwargs) + return wrapper From 5587c1bc64272248e287b66574ba3aa49ebb817c Mon Sep 17 00:00:00 2001 From: fawce Date: Tue, 19 Feb 2013 13:15:57 -0500 Subject: [PATCH 2/2] added functools.wraps as per @richafrank --- zipline/finance/trading.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/zipline/finance/trading.py b/zipline/finance/trading.py index 9bd7dc5a..c5ea3850 100644 --- a/zipline/finance/trading.py +++ b/zipline/finance/trading.py @@ -18,6 +18,7 @@ import pytz import logbook import datetime +from functools import wraps from collections import defaultdict, OrderedDict from delorean import Delorean from pandas import DatetimeIndex @@ -366,6 +367,7 @@ class use_environment(object): self.env = environment def __call__(self, func): + @wraps(func) def wrapper(*args, **kwargs): with self.env: return func(*args, **kwargs)