Skip to content

Commit

Permalink
Correctly detect depends fn dependencies (#4049)
Browse files Browse the repository at this point in the history
  • Loading branch information
philippjfr committed Oct 8, 2019
1 parent ff5ee86 commit dfbeb6f
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 8 deletions.
2 changes: 1 addition & 1 deletion holoviews/streams.py
Expand Up @@ -717,7 +717,7 @@ def _on_trigger(self):
@property
def hashkey(self):
hashkey = {(p.owner, p.name): getattr(p.owner, p.name) for p in self.parameters}
hashkey = {self._rename.get((o, n), n): v for (o, n), v in hashkey.items()
hashkey = {' '.join([o.name, self._rename.get((o, n), n)]): v for (o, n), v in hashkey.items()
if self._rename.get((o, n), True) is not None}
hashkey['_memoize_key'] = self._memoize_counter
return hashkey
Expand Down
14 changes: 8 additions & 6 deletions holoviews/tests/teststreams.py
Expand Up @@ -296,7 +296,7 @@ def test_param_stream_action(self):
def subscriber(**kwargs):
values.append(kwargs)
self.assertEqual(set(stream.hashkey),
{'action', '_memoize_key'})
{'%s action' % inner.name, '_memoize_key'})

stream.add_subscriber(subscriber)
inner.action(inner)
Expand All @@ -310,8 +310,9 @@ def test_param_stream_memoization(self):
values = []
def subscriber(**kwargs):
values.append(kwargs)
self.assertEqual(set(stream.hashkey),
{'action', 'x', '_memoize_key'})
self.assertEqual(
set(stream.hashkey),
{'%s action' % inner.name, '%s x' % inner.name, '_memoize_key'})

stream.add_subscriber(subscriber)
inner.action(inner)
Expand Down Expand Up @@ -484,7 +485,7 @@ def test_dynamicmap_param_method_action_param(self):
def subscriber(**kwargs):
values.append(kwargs)
self.assertEqual(set(stream.hashkey),
{'action', '_memoize_key'})
{'%s action' % inner.name, '_memoize_key'})

stream.add_subscriber(subscriber)
inner.action(inner)
Expand All @@ -502,8 +503,9 @@ def test_dynamicmap_param_action_number_method_memoizes(self):
values = []
def subscriber(**kwargs):
values.append(kwargs)
self.assertEqual(set(stream.hashkey),
{'action', 'x', '_memoize_key'})
self.assertEqual(
set(stream.hashkey),
{'%s action' % inner.name, '%s x' % inner.name, '_memoize_key'})

stream.add_subscriber(subscriber)
stream.add_subscriber(lambda **kwargs: dmap[()])
Expand Down
2 changes: 1 addition & 1 deletion holoviews/util/__init__.py
Expand Up @@ -906,7 +906,7 @@ def _get_streams(self, map_obj, watch=True):
streams.append(value)
elif isinstance(value, FunctionType) and hasattr(value, '_dinfo'):
dependencies = list(value._dinfo.get('dependencies', []))
dependencies += list(value._dinfo.get('kwargs', {}).values())
dependencies += list(value._dinfo.get('kw', {}).values())
params = [d for d in dependencies if isinstance(d, param.Parameter)
and isinstance(d.owner, param.Parameterized)]
streams.append(Params(parameters=params, watch_only=True))
Expand Down

0 comments on commit dfbeb6f

Please sign in to comment.