From f648985d7b4cbc75bc8ef259f15245972456b486 2014-04-04 16:11:23
From: Jonathan Frederic <jdfreder@calpoly.edu>
Date: 2014-04-04 16:11:23
Subject: [PATCH] Merge pull request #5493 from jdavidheiser/master

made a minor fix to one of the widget examples
---

diff --git a/IPython/html/widgets/widget_selection.py b/IPython/html/widgets/widget_selection.py
index aa3f194..e9706d1 100644
--- a/IPython/html/widgets/widget_selection.py
+++ b/IPython/html/widgets/widget_selection.py
@@ -59,6 +59,10 @@ class _SelectionWidget(DOMWidget):
             if isinstance(values, list):
                 # preserve list order with an OrderedDict
                 kwargs['values'] = OrderedDict((unicode_type(v), v) for v in values)
+            # python3.3 turned on hash randomization by default - this means that sometimes, randomly
+            # we try to set value before setting values, due to dictionary ordering.  To fix this, force
+            # the setting of self.values right now, before anything else runs
+            self.values = kwargs.pop('values')
         DOMWidget.__init__(self, *args, **kwargs)
     
     def _values_changed(self, name, old, new):
diff --git a/examples/Interactive Widgets/Export As (nbconvert).ipynb b/examples/Interactive Widgets/Export As (nbconvert).ipynb
index 714b48a..9c6e758 100644
--- a/examples/Interactive Widgets/Export As (nbconvert).ipynb
+++ b/examples/Interactive Widgets/Export As (nbconvert).ipynb
@@ -19,7 +19,8 @@
       "# nbconvert related imports\n",
       "from IPython.nbconvert import get_export_names, export_by_name\n",
       "from IPython.nbconvert.writers import FilesWriter\n",
-      "from IPython.nbformat import current"
+      "from IPython.nbformat import current\n",
+      "from IPython.nbconvert.utils.exceptions import ConversionException"
      ],
      "language": "python",
      "metadata": {},
@@ -151,7 +152,7 @@
       "        download_link.value = \"<br>Results: <a href='files/{filename}'><i>\\\"{filename}\\\"</i></a>\".format(filename=write_results)\n",
       "        download_link.visible = True\n",
       "        \n",
-      "def handle_export():\n",
+      "def handle_export(widget):\n",
       "    with open(filename, 'r') as f:\n",
       "        export(filename, current.read(f, 'json'))\n",
       "export_button.on_click(handle_export)"
@@ -183,4 +184,4 @@
    "metadata": {}
   }
  ]
-}
\ No newline at end of file
+}