From 10a8146107062ef71ac7f8ff683c5015301b5e75 Mon Sep 17 00:00:00 2001 From: poplarShift Date: Sun, 26 Apr 2020 12:58:32 -0400 Subject: [PATCH] do not change param.Number widget class if already overridden by user --- panel/param.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/panel/param.py b/panel/param.py index 42fb786874..c15528b9a3 100644 --- a/panel/param.py +++ b/panel/param.py @@ -310,7 +310,9 @@ def widget(self, p_name): p_obj = self.object.param[p_name] kw_widget = {} + widget_class_overridden = True if self.widgets is None or p_name not in self.widgets: + widget_class_overridden = False widget_class = self.widget_type(p_obj) elif isinstance(self.widgets[p_name], dict): if 'type' in self.widgets[p_name]: @@ -347,12 +349,14 @@ def widget(self, p_name): if bounds[1] is not None: kw['end'] = bounds[1] if ('start' not in kw or 'end' not in kw): - if isinstance(p_obj, param.Number): - widget_class = Spinner - if isinstance(p_obj, param.Integer): - kw['step'] = 1 - elif not issubclass(widget_class, LiteralInput): - widget_class = LiteralInput + # Do not change widget class if _mapping was overridden + if not widget_class_overridden: + if isinstance(p_obj, param.Number): + widget_class = Spinner + if isinstance(p_obj, param.Integer): + kw['step'] = 1 + elif not issubclass(widget_class, LiteralInput): + widget_class = LiteralInput if hasattr(widget_class, 'step') and getattr(p_obj, 'step', None): kw['step'] = p_obj.step