diff --git a/zipline/finance/performance.py b/zipline/finance/performance.py index b07dc081..346aa205 100644 --- a/zipline/finance/performance.py +++ b/zipline/finance/performance.py @@ -406,9 +406,7 @@ class PerformancePeriod(): Creates a dictionary representing the state of this performance period. See header comments for a detailed description. """ - positions = {} - for sid, pos in self.positions.iteritems(): - positions[sid] = pos.to_dict() + positions = self.get_positions() return { 'ending_value' : self.ending_value, @@ -427,9 +425,7 @@ class PerformancePeriod(): for a detailed description. """ - positions = {} - for sid, pos in self.positions.iteritems(): - positions[sid] = zp.namedict(pos.to_dict()) + positions = self.get_positions(namedicted=True) positions = zp.namedict(positions) @@ -442,5 +438,17 @@ class PerformancePeriod(): 'positions' : positions }) + def get_positions(self, namedicted=False): + positions = {} + for sid, pos in self.positions.iteritems(): + cur = pos.to_dict() + if namedicted: + positions[sid] = zp.namedict(cur) + else: + positions[sid] = cur + + return positions + + diff --git a/zipline/protocol_utils.py b/zipline/protocol_utils.py index 62ab340c..ba805b3b 100644 --- a/zipline/protocol_utils.py +++ b/zipline/protocol_utils.py @@ -86,9 +86,6 @@ class namedict(object): def has_attr(self, name): return self.__dict__.has_key(name) - - def __getitem__(self, key): - return self.__dict__[key] def as_series(self): s = pandas.Series(self.__dict__)