from typing import Optional
from decimal import Decimal
from validator_collection import validators
from highcharts_core.metaclasses import HighchartsMeta
[docs]class AxisBreak(HighchartsMeta):
    """The definition of a break (non-continuous section, typically indicating a "jump")
    in the axis.
    .. note::
      The sections defined as breaks will be left out and all the points shifted
      closer to each other.
    """
    def __init__(self, **kwargs):
        self._break_size = None
        self._from_ = None
        self._repeat = None
        self._to = None
        self.break_size = kwargs.get('break_size', None)
        self.from_ = kwargs.get('from_', None)
        self.repeat = kwargs.get('repeat', None)
        self.to = kwargs.get('to', None)
    @property
    def break_size(self) -> Optional[int | float | Decimal]:
        """A number indicating how much space should be left between the start and the end
        of the break. Defaults to ``0``.
        .. note::
          The break size is given in axis units, so for instance on a datetime axis, a
          break size of ``3600000`` would indicate the equivalent of an hour.
        :rtype: numeric or :obj:`None <python:None>`
        """
        return self._break_size
    @break_size.setter
    def break_size(self, value):
        self._break_size = validators.numeric(value, allow_empty = True)
    @property
    def from_(self) -> Optional[int | float | Decimal]:
        """The point where the break starts. Defaults to :obj:`None <python:None>`.
        :rtype: numeric or :obj:`None <python:None>`
        """
        return self._from_
    @from_.setter
    def from_(self, value):
        self._from_ = validators.numeric(value, allow_empty = True)
    @property
    def repeat(self) -> Optional[int | float | Decimal]:
        """Defines an interval after which the break appears again. Defaults to ``0``.
        .. note::
          If ``0`` or :obj:`None <python:None>`, the breaks do not repeat.
        :rtype: numeric or :obj:`None <python:None>`
        """
        return self._repeat
    @repeat.setter
    def repeat(self, value):
        self._repeat = validators.numeric(value,
                                          allow_empty = True,
                                          minimum = 0)
    @property
    def to(self) -> Optional[int | float | Decimal]:
        """The point where the break ends. Defaults to :obj:`None <python:None>`.
        :rtype: numeric or :obj:`None <python:None>`
        """
        return self._to
    @to.setter
    def to(self, value):
        self._to = validators.numeric(value, allow_empty = True)
    @classmethod
    def _get_kwargs_from_dict(cls, as_dict):
        kwargs = {
            'break_size': as_dict.get('breakSize', None),
            'from_': as_dict.get('from', None),
            'repeat': as_dict.get('repeat', None),
            'to': as_dict.get('to', None)
        }
        return kwargs
    def _to_untrimmed_dict(self, in_cls = None) -> dict:
        untrimmed = {
            'breakSize': self.break_size,
            'from': self.from_,
            'repeat': self.repeat,
            'to': self.to
        }
        return untrimmed