from typing import Optional
from validator_collection import validators
from highcharts_stock.decorators import class_sensitive
from highcharts_stock.metaclasses import HighchartsMeta
from highcharts_stock.utility_classes.data_labels import DataLabel
[docs]class LastPriceOptions(HighchartsMeta):
    """Configuration of a line marking the last price from a set of data points."""
    def __init__(self, **kwargs):
        self._color = None
        self._enabled = None
        self._label = None
        self.color = kwargs.get('color', None)
        self.enabled = kwargs.get('enabled', None)
        self.label = kwargs.get('label', None)
    @property
    def color(self) -> Optional[str]:
        """The color of the line. If :obj:`None <python:None>`, defaults to the same color
        as the series. Defaults to :obj:`None <python:None>`.
        :rtype: :class:`str <python:str>` or :obj:`None <python:None>`
        """
        return self._color
    @color.setter
    def color(self, value):
        self._color = validators.string(value, allow_empty = True)
    @property
    def enabled(self) -> Optional[bool]:
        """If ``True``, displays the configured last price line. Defaults to ``False``.
        :rtype: :class:`bool <python:bool>` or :obj:`None <python:None>`
        """
        return self._enabled
    @enabled.setter
    def enabled(self, value):
        if value is None:
            self._enabled = None
        else:
            self._enabled = bool(value)
    @property
    def label(self) -> Optional[DataLabel]:
        """The label applied to the last price indicator.
        :rtype: :class:`DataLabel <highcharts_stock.utility_classes.data_labels.DataLabel>`
          or :obj:`None <python:None>`
        """
        return self._label
    @label.setter
    @class_sensitive(DataLabel)
    def label(self, value):
        self._label = value
    @classmethod
    def _get_kwargs_from_dict(cls, as_dict):
        kwargs = {
            'color': as_dict.get('color', None),
            'enabled': as_dict.get('enabled', None),
            'label': as_dict.get('label', None),
        }
        return kwargs
    def _to_untrimmed_dict(self, in_cls = None) -> dict:
        untrimmed = {
            'color': self.color,
            'enabled': self.enabled,
            'label': self.label,
        }
        return untrimmed