Source code for highcharts_core.options.plot_options.points

from typing import Optional
from decimal import Decimal

from validator_collection import validators

from highcharts_core import constants, errors
from highcharts_core.decorators import class_sensitive
from highcharts_core.metaclasses import HighchartsMeta
from highcharts_core.utility_classes.position import Position
from highcharts_core.utility_classes.events import PointEvents


[docs]class ConnectorOptions(HighchartsMeta): """Options for the connector in the Series on point feature.""" def __init__(self, **kwargs): self._dashstyle = None self._stroke = None self._width = None self.dashstyle = kwargs.get('dashstyle', None) self.stroke = kwargs.get('stroke', None) self.width = kwargs.get('width', 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 'plotOptions.series.onPoint.connectorOptions' @property def dashstyle(self) -> Optional[str]: """Name of the dash style to use for the connector. Accepts one of the following values: * 'Dash', * 'DashDot', * 'Dot', * 'LongDash', * 'LongDashDot', * 'LongDashDotDot', * 'ShortDash', * 'ShortDashDot', * 'ShortDashDotDot', * 'ShortDot', * 'Solid' :rtype: :class:`str <python:str>` or :obj:`None <python:None>` """ return self._dashstyle @dashstyle.setter def dashstyle(self, value): if not value: self._dashstyle = None else: value = validators.string(value) if value not in constants.SUPPORTED_DASH_STYLE_VALUES: raise errors.HighchartsValueError(f'dashstyle expects a recognized value' f', but received: {value}') self._dashstyle = value @property def stroke(self) -> Optional[str]: """The color of the collector line. :rtype: :class:`str <python:str>` or :obj:`None <python:None>` """ return self._stroke @stroke.setter def stroke(self, value): self._stroke = validators.string(value, allow_empty = True) @property def width(self) -> Optional[int | float | Decimal]: """Pixel width of the connector line. Defaults to ``1``. :rtype: numeric or :obj:`None <python:None>` """ return self._width @width.setter def width(self, value): self._width = validators.numeric(value, allow_empty = True) @classmethod def _get_kwargs_from_dict(cls, as_dict): kwargs = { 'dashstyle': as_dict.get('dashstyle', None) or as_dict.get('dashStyle', None), 'stroke': as_dict.get('stroke', None), 'width': as_dict.get('width', None) } return kwargs def _to_untrimmed_dict(self, in_cls = None) -> dict: untrimmed = { 'dashstyle': self.dashstyle, 'stroke': self.stroke, 'width': self.width } return untrimmed
[docs]class OnPointOptions(HighchartsMeta): """Options for the Series on point feature, which is currently only supported by ``pie`` and ``sunburst`` chargs.""" def __init__(self, **kwargs): self._connector_options = None self._id = None self._position = None self.connector_options = kwargs.get('connector_options', None) self.id = kwargs.get('id', None) self.position = kwargs.get('position', 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 'plotOptions.series.onPoint' @property def connector_options(self) -> Optional[ConnectorOptions]: """Options for the connector in the Series on point feature. :rtype: :class:`ConnectorOptions` or :obj:`None <python:None>` """ return self._connector_options @connector_options.setter @class_sensitive(ConnectorOptions) def connector_options(self, value): self._connector_options = value @property def id(self) -> Optional[str]: """The ``id`` of the point that we connect the series to. .. note:: Only points with a given ``plot_x`` and ``plot_y`` values and map points are valid. :rtype: :class:`str <python:str>` or :obj:`None <python:None>` """ return self._id @id.setter def id(self, value): self._id = validators.string(value, allow_empty = True) @property def position(self) -> Optional[Position]: """Options allowing to set a position and an offset of the series in the Series on point feature. :rtype: :class:`Position` or :obj:`None <python:None>` """ return self._position @position.setter @class_sensitive(Position) def position(self, value): self._position = value @classmethod def _get_kwargs_from_dict(cls, as_dict): kwargs = { 'connector_options': as_dict.get('connectorOptions', None), 'id': as_dict.get('id', None), 'position': as_dict.get('position', None) } return kwargs def _to_untrimmed_dict(self, in_cls = None) -> dict: untrimmed = { 'connectorOptions': self.connector_options, 'id': self.id, 'position': self.position } return untrimmed
[docs]class Point(HighchartsMeta): """Properties for each single point.""" def __init__(self, **kwargs): self._events = None self.events = kwargs.get('events', 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 'plotOptions.series.point' @property def events(self) -> Optional[PointEvents]: """Events for each single point. :rtype: :class:`PointEvents` or :obj:`None <python:None>` """ return self._events @events.setter @class_sensitive(PointEvents) def events(self, value): self._events = value @classmethod def _get_kwargs_from_dict(cls, as_dict): kwargs = { 'events': as_dict.get('events', None) } return kwargs def _to_untrimmed_dict(self, in_cls = None) -> dict: untrimmed = { 'events': self.events } return untrimmed