Source code for highcharts_core.options.no_data

from typing import Optional

from validator_collection import validators

from highcharts_core.decorators import class_sensitive
from highcharts_core.metaclasses import HighchartsMeta
from highcharts_core.utility_classes.ast import AttributeObject
from highcharts_core.utility_classes.position import Position

[docs]class NoData(HighchartsMeta): """Options for displaying a message like "No data to display". .. warning:: This feature requires the file ``no-data-to-display.js`` to be loaded in the page. .. tip:: The actual text to display is set in the :meth:`language <Options.language>` options. """ def __init__(self, **kwargs): self._attr = None self._position = None self._style = None self._use_html = None self.attr = kwargs.get('attr', None) self.position = kwargs.get('position', None) = kwargs.get('style', None) self.use_html = kwargs.get('use_html', None) @property def _dot_path(self) -> Optional[str]: """The dot-notation path to the options key for the current class. :rtype: :class:`str <python:str>` or :obj:`None <python:None>` """ return 'noData' @property def attr(self) -> Optional[AttributeObject]: """An object of additional SVG attributes for the no-data label. :rtype: :class:`AttributeObject` or :obj:`None <python:None>` """ return self._attr @attr.setter @class_sensitive(AttributeObject) def attr(self, value): self._attr = value @property def position(self) -> Optional[Position]: """The position of the no-data label, relative to the plot area. :rtype: :class:`Position` or :obj:`None <python:None>` """ return self._position @position.setter @class_sensitive(Position) def position(self, value): self._position = value @property def style(self) -> Optional[str | dict]: """CSS styles to apply to the no-data label. :rtype: :class:`str <python:str>` or :obj:`None <python:None>` """ return self._style @style.setter def style(self, value): try: self._style = validators.dict(value, allow_empty = True) except (ValueError, TypeError): self._style = validators.string(value, allow_empty = True, coerce_value = True) @property def use_html(self) -> Optional[bool]: """If ``True``, inserts the label as HTML. If ``False``, inserts the label as pseudo-HTML rendered with SVG. Defaults to ``False``. :rtype: :class:`bool <python:bool>` """ return self._use_html @use_html.setter def use_html(self, value): if value is None: self._use_html = None else: self._use_html = bool(value) @classmethod def _get_kwargs_from_dict(cls, as_dict): kwargs = { 'attr': as_dict.get('attr', None), 'position': as_dict.get('position', None), 'style': as_dict.get('style', None), 'use_html': as_dict.get('useHTML', None) } return kwargs def _to_untrimmed_dict(self, in_cls = None) -> dict: untrimmed = { 'attr': self.attr, 'position': self.position, 'style':, 'useHTML': self.use_html } return untrimmed