from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType
import copy as _copy
class Transition(_BaseLayoutHierarchyType):
# class properties
# --------------------
_parent_path_str = "layout.slider"
_path_str = "layout.slider.transition"
_valid_props = {"duration", "easing"}
# duration
# --------
@property
def duration(self):
"""
Sets the duration of the slider transition
The 'duration' property is a number and may be specified as:
- An int or float in the interval [0, inf]
Returns
-------
int|float
"""
return self["duration"]
@duration.setter
def duration(self, val):
self["duration"] = val
# easing
# ------
@property
def easing(self):
"""
Sets the easing function of the slider transition
The 'easing' property is an enumeration that may be specified as:
- One of the following enumeration values:
['linear', 'quad', 'cubic', 'sin', 'exp', 'circle',
'elastic', 'back', 'bounce', 'linear-in', 'quad-in',
'cubic-in', 'sin-in', 'exp-in', 'circle-in', 'elastic-in',
'back-in', 'bounce-in', 'linear-out', 'quad-out',
'cubic-out', 'sin-out', 'exp-out', 'circle-out',
'elastic-out', 'back-out', 'bounce-out', 'linear-in-out',
'quad-in-out', 'cubic-in-out', 'sin-in-out', 'exp-in-out',
'circle-in-out', 'elastic-in-out', 'back-in-out',
'bounce-in-out']
Returns
-------
Any
"""
return self["easing"]
@easing.setter
def easing(self, val):
self["easing"] = val
# Self properties description
# ---------------------------
@property
def _prop_descriptions(self):
return """\
duration
Sets the duration of the slider transition
easing
Sets the easing function of the slider transition
"""
def __init__(self, arg=None, duration=None, easing=None, **kwargs):
"""
Construct a new Transition object
Parameters
----------
arg
dict of properties compatible with this constructor or
an instance of
:class:`plotly.graph_objs.layout.slider.Transition`
duration
Sets the duration of the slider transition
easing
Sets the easing function of the slider transition
Returns
-------
Transition
"""
super(Transition, self).__init__("transition")
if "_parent" in kwargs:
self._parent = kwargs["_parent"]
return
# Validate arg
# ------------
if arg is None:
arg = {}
elif isinstance(arg, self.__class__):
arg = arg.to_plotly_json()
elif isinstance(arg, dict):
arg = _copy.copy(arg)
else:
raise ValueError(
"""\
The first argument to the plotly.graph_objs.layout.slider.Transition
constructor must be a dict or
an instance of :class:`plotly.graph_objs.layout.slider.Transition`"""
)
# Handle skip_invalid
# -------------------
self._skip_invalid = kwargs.pop("skip_invalid", False)
self._validate = kwargs.pop("_validate", True)
# Populate data dict with properties
# ----------------------------------
_v = arg.pop("duration", None)
_v = duration if duration is not None else _v
if _v is not None:
self["duration"] = _v
_v = arg.pop("easing", None)
_v = easing if easing is not None else _v
if _v is not None:
self["easing"] = _v
# Process unknown kwargs
# ----------------------
self._process_kwargs(**dict(arg, **kwargs))
# Reset skip_invalid
# ------------------
self._skip_invalid = False