From b179622dd45c02faa1c54e7ce2ed011806962f0a Mon Sep 17 00:00:00 2001 From: jlstevens Date: Sun, 4 Sep 2016 18:47:48 +0100 Subject: [PATCH 1/2] Using DynamicMap._deep_indexable=False when restoring option state --- holoviews/core/dimension.py | 2 +- holoviews/ipython/display_hooks.py | 15 ++++++++++++--- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/holoviews/core/dimension.py b/holoviews/core/dimension.py index 089a0475de..dd95404e54 100644 --- a/holoviews/core/dimension.py +++ b/holoviews/core/dimension.py @@ -601,7 +601,7 @@ def __init__(self, data, **params): def _valid_dimensions(self, dimensions): """Validates key dimension input - + Returns kdims if no dimensions are specified""" if dimensions is None: dimensions = self.kdims diff --git a/holoviews/ipython/display_hooks.py b/holoviews/ipython/display_hooks.py index 50a916ede6..6f46d3c7ce 100644 --- a/holoviews/ipython/display_hooks.py +++ b/holoviews/ipython/display_hooks.py @@ -89,6 +89,13 @@ def last_frame(obj): # Display hooks # #===============# +def option_state(element, state=None): + # Temporary fix to avoid issues with DynamicMap traversal + DynamicMap._deep_indexable = False + optstate = StoreOptions.state(element,state=state) + DynamicMap._deep_indexable = True + return optstate + def display_hook(fn): @wraps(fn) @@ -96,7 +103,7 @@ def wrapped(element): global FULL_TRACEBACK if Store.current_backend is None: return - optstate = StoreOptions.state(element) + optstate = option_state(element) try: html = fn(element, max_frames=OutputMagic.options['max_frames'], @@ -115,7 +122,8 @@ def wrapped(element): sys.stderr.write("Rendering process skipped: %s" % str(e)) return None except AbbreviatedException as e: - try: StoreOptions.state(element, state=optstate) + try: + option_state(element, state=optstate) except: pass FULL_TRACEBACK = '\n'.join(traceback.format_exception(e.etype, e.value, @@ -126,7 +134,8 @@ def wrapped(element): return "{name}{msg}
{message}".format(msg=msg, **info) except Exception as e: - try: StoreOptions.state(element, state=optstate) + try: + option_state(element, state=optstate) except: pass raise return wrapped From 0fc4b3b90e3a3e853964643b8d21f4d871977d2c Mon Sep 17 00:00:00 2001 From: jlstevens Date: Sun, 4 Sep 2016 18:56:38 +0100 Subject: [PATCH 2/2] Whitespace fixes --- holoviews/ipython/display_hooks.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/holoviews/ipython/display_hooks.py b/holoviews/ipython/display_hooks.py index 6f46d3c7ce..ea4ea49c01 100644 --- a/holoviews/ipython/display_hooks.py +++ b/holoviews/ipython/display_hooks.py @@ -122,8 +122,7 @@ def wrapped(element): sys.stderr.write("Rendering process skipped: %s" % str(e)) return None except AbbreviatedException as e: - try: - option_state(element, state=optstate) + try: option_state(element, state=optstate) except: pass FULL_TRACEBACK = '\n'.join(traceback.format_exception(e.etype, e.value, @@ -134,8 +133,7 @@ def wrapped(element): return "{name}{msg}
{message}".format(msg=msg, **info) except Exception as e: - try: - option_state(element, state=optstate) + try: option_state(element, state=optstate) except: pass raise return wrapped