From 04fe072399f07887edce3728e6beac4ecd62203a Mon Sep 17 00:00:00 2001 From: jlstevens Date: Tue, 11 Apr 2017 13:16:38 +0100 Subject: [PATCH 1/2] Added missing condition to validate_dynamic_argspec --- holoviews/core/util.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/holoviews/core/util.py b/holoviews/core/util.py index 1ec9ad3ce1..cdaa3d624a 100644 --- a/holoviews/core/util.py +++ b/holoviews/core/util.py @@ -187,6 +187,8 @@ def validate_dynamic_argspec(argspec, kdims, streams): kdims=kdims)) elif set(kdims).issubset(set(kwargs)): # Key dims can be supplied by keyword return kdims + elif set(kdims).issubset(set(posargs+kwargs)): + return kdims else: raise KeyError('Callback signature over {names} does not accommodate ' 'required kdims {kdims}'.format(names=list(set(posargs+kwargs)), From 3c5afe26cef9dfc5eb1eec52d38eb90b6e85b3c0 Mon Sep 17 00:00:00 2001 From: Philipp Rudiger Date: Tue, 11 Apr 2017 13:44:34 +0100 Subject: [PATCH 2/2] Ensure DynamicMap.groupby casts to HoloMap before reindexing --- holoviews/core/spaces.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/holoviews/core/spaces.py b/holoviews/core/spaces.py index 275a25561e..2cf630a533 100644 --- a/holoviews/core/spaces.py +++ b/holoviews/core/spaces.py @@ -1034,7 +1034,9 @@ def inner_fn(*inner_key): dim_vals = [(d.name, d.values) for d in inner_kdims] dim_vals += [(d.name, [v]) for d, v in zip(outer_kdims, util.wrap_tuple(outer_key))] - return group_type(self.select(**dict(dim_vals))).reindex(inner_kdims) + with item_check(False): + selected = HoloMap(self.select(**dict(dim_vals))) + return group_type(selected.reindex(inner_kdims)) if outer_kdims: return self.clone([], callback=outer_fn, kdims=outer_kdims) else: @@ -1059,7 +1061,9 @@ def inner_fn(outer_vals, *key): else: inner_vals = [(d.name, self.get_dimension(d).values) for d in inner_kdims] - group = group_type(self.select(**dict(outer_vals+inner_vals)).reindex(inner_kdims)) + with item_check(False): + selected = HoloMap(self.select(**dict(outer_vals+inner_vals))) + group = group_type(selected.reindex(inner_kdims)) groups.append((outer, group)) return container_type(groups, kdims=outer_kdims)