Skip to content

Commit

Permalink
Resolve other widget types (#4617)
Browse files Browse the repository at this point in the history
  • Loading branch information
philippjfr committed Sep 17, 2020
1 parent e09581f commit 6d20a06
Showing 1 changed file with 11 additions and 3 deletions.
14 changes: 11 additions & 3 deletions holoviews/core/util.py
Original file line number Diff line number Diff line change
Expand Up @@ -1544,10 +1544,16 @@ def resolve_dependent_value(value):
A new dictionary where any parameter dependencies have been
resolved.
"""
range_widget = False
if 'panel' in sys.modules:
from panel.widgets.base import Widget
if isinstance(value, Widget):
value = value.param.value
from panel.widgets import RangeSlider, Widget
range_widget = isinstance(value, RangeSlider)
try:
from panel.depends import param_value_if_widget
value = param_value_if_widget(value)
except Exception:
if isinstance(value, Widget):
value = value.param.value
if is_param_method(value, has_deps=True):
value = value()
elif isinstance(value, param.Parameter) and isinstance(value.owner, param.Parameterized):
Expand All @@ -1557,6 +1563,8 @@ def resolve_dependent_value(value):
args = (getattr(p.owner, p.name) for p in deps.get('dependencies', []))
kwargs = {k: getattr(p.owner, p.name) for k, p in deps.get('kw', {}).items()}
value = value(*args, **kwargs)
if isinstance(value, tuple) and range_widget:
value = slice(*value)
return value


Expand Down

0 comments on commit 6d20a06

Please sign in to comment.