From b00ce05ea7dc96fa40a508b09bd7b7bbaae34498 2010-08-19 20:55:24
From: Brian Granger <ellisonbg@gmail.com>
Date: 2010-08-19 20:55:24
Subject: [PATCH] Fixing imports and syntax errors.

---

diff --git a/IPython/core/interactiveshell.py b/IPython/core/interactiveshell.py
index 5e4dcf3..711b2f9 100644
--- a/IPython/core/interactiveshell.py
+++ b/IPython/core/interactiveshell.py
@@ -44,6 +44,7 @@ from IPython.core.fakemodule import FakeModule, init_fakemod_dict
 from IPython.core.inputlist import InputList
 from IPython.core.logger import Logger
 from IPython.core.magic import Magic
+from IPython.core.payload import PayloadManager
 from IPython.core.plugin import PluginManager
 from IPython.core.prefilter import PrefilterManager
 from IPython.core.displayhook import DisplayHook
@@ -209,7 +210,7 @@ class InteractiveShell(Configurable, Magic):
     display_trap = Instance('IPython.core.display_trap.DisplayTrap')
     extension_manager = Instance('IPython.core.extensions.ExtensionManager')
     plugin_manager = Instance('IPython.core.plugin.PluginManager')
-    payload_manager = Instance('IPython.core.paylaod.PayloadManager')
+    payload_manager = Instance('IPython.core.payload.PayloadManager')
 
     def __init__(self, config=None, ipython_dir=None,
                  user_ns=None, user_global_ns=None,
diff --git a/IPython/core/payload.py b/IPython/core/payload.py
index 4c66f45..4903581 100644
--- a/IPython/core/payload.py
+++ b/IPython/core/payload.py
@@ -19,7 +19,7 @@ Authors:
 #-----------------------------------------------------------------------------
 
 from IPython.config.configurable import Configurable
-from IPython.utils.traitlets import Dict
+from IPython.utils.traitlets import List
 
 #-----------------------------------------------------------------------------
 # Main payload class
@@ -27,13 +27,15 @@ from IPython.utils.traitlets import Dict
 
 class PayloadManager(Configurable):
 
-    _payload = Dict({})
+    _payload = List([])
 
-    def write_payload(self, key, value):
-        self.payload[key] = value
+    def write_payload(self, data):
+        if not isinstance(data, dict):
+            raise TypeError('Each payload write must be a dict, got: %r' % data)
+        self.payload.append(data)
 
     def reset_payload(self):
-        self.payload = {}
+        self.payload = []
 
     def read_payload(self):
         return self._payload