From d5a0446f7bdf71047e3f5720866b03b200a9dd2f Mon Sep 17 00:00:00 2001 From: Eddie Hebert Date: Tue, 22 Jan 2013 20:55:24 -0500 Subject: [PATCH] Moves slippage transactions off of ndict. So that the datatype is unique. --- zipline/finance/performance.py | 2 +- zipline/finance/slippage.py | 14 +++++++++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/zipline/finance/performance.py b/zipline/finance/performance.py index 63949e7c..5ed6cc16 100644 --- a/zipline/finance/performance.py +++ b/zipline/finance/performance.py @@ -549,7 +549,7 @@ class PerformancePeriod(object): # we want the key to be absent, not just empty if self.keep_transactions: - transactions = [x.as_dict() for x in self.processed_transactions] + transactions = [x.__dict__ for x in self.processed_transactions] rval['transactions'] = transactions return rval diff --git a/zipline/finance/slippage.py b/zipline/finance/slippage.py index 1f1699f8..ec9147d9 100644 --- a/zipline/finance/slippage.py +++ b/zipline/finance/slippage.py @@ -19,8 +19,6 @@ import math from functools import partial -from zipline.utils.protocol_utils import ndict - from logbook import Processor @@ -48,6 +46,16 @@ def transact_partial(slippage, commission): return partial(transact_stub, slippage, commission) +class Transaction(object): + + def __init__(self, initial_values=None): + if initial_values: + self.__dict__ = initial_values + + def __getitem__(self, name): + return self.__dict__[name] + + def create_transaction(sid, amount, price, dt): txn = { @@ -57,7 +65,7 @@ def create_transaction(sid, amount, price, dt): 'price': price, } - transaction = ndict(txn) + transaction = Transaction(txn) return transaction