Source code for highcharts_core.utility_classes.date_time_label_formats
from typing import Optional
from validator_collection import validators
from highcharts_core import constants
from highcharts_core.metaclasses import HighchartsMeta
[docs]class DateTimeLabelFormats(HighchartsMeta):
"""For series on datetime axes, the date format in the tooltip's header will by default be
guessed based on the closest data points. This class gives the default string
representations used for each unit.
"""
def __init__(self, **kwargs):
self._day = None
self._hour = None
self._millisecond = None
self._minute = None
self._month = None
self._second = None
self._week = None
self._year = None
self.day = kwargs.get('day', None)
self.hour = kwargs.get('hour', None)
self.millisecond = kwargs.get('millisecond', None)
self.minute = kwargs.get('minute', None)
self.month = kwargs.get('month', None)
self.second = kwargs.get('second', None)
self.week = kwargs.get('week', None)
self.year = kwargs.get('year', None)
@property
def day(self) -> Optional[str]:
"""Label format to apply to days. Defaults to
``'%A, %b %e, %Y'``.
:rtype: :class:`str <python:str>` or :obj:`None <python:None>`
"""
return self._day
@day.setter
def day(self, value):
self._day = validators.string(value, allow_empty = True)
@property
def hour(self) -> Optional[str]:
"""Label format to apply to hours. Defaults to
``'%A, %b %e, %H:%M'``.
:rtype: :class:`str <python:str>` or :obj:`None <python:None>`
"""
return self._hour
@hour.setter
def hour(self, value):
self._hour = validators.string(value, allow_empty = True)
@property
def millisecond(self) -> Optional[str]:
"""Label format to apply to milliseconds. Defaults to
``'%A, %b %e, %H:%M:%S.%L'``.
:rtype: :class:`str <python:str>` or :obj:`None <python:None>`
"""
return self._millisecond
@millisecond.setter
def millisecond(self, value):
self._millisecond = validators.string(value, allow_empty = True)
@property
def minute(self) -> Optional[str]:
"""Label format to apply to minutes. Defaults to
``'%A, %b %e, %H:%M'``.
:rtype: :class:`str <python:str>` or :obj:`None <python:None>`
"""
return self._minute
@minute.setter
def minute(self, value):
self._minute = validators.string(value, allow_empty = True)
@property
def month(self) -> Optional[str]:
"""Label format to apply to months. Defaults to
``'%B %Y'``.
:rtype: :class:`str <python:str>` or :obj:`None <python:None>`
"""
return self._month
@month.setter
def month(self, value):
self._month = validators.string(value, allow_empty = True)
@property
def second(self) -> Optional[str]:
"""Label format to apply to seconds. Defaults to
``'%A, %b %e, %H:%M:%S'``.
:rtype: :class:`str <python:str>` or :obj:`None <python:None>`
"""
return self._second
@second.setter
def second(self, value):
self._second = validators.string(value, allow_empty = True)
@property
def week(self) -> Optional[str]:
"""Label format to apply to weeks. Defaults to
``'Week from %A, %b %e, %Y'``.
:rtype: :class:`str <python:str>` or :obj:`None <python:None>`
"""
return self._week
@week.setter
def week(self, value):
self._week = validators.string(value, allow_empty = True)
@property
def year(self) -> Optional[str]:
"""Label format to apply to years. Defaults to
``'%Y'``.
:rtype: :class:`str <python:str>` or :obj:`None <python:None>`
"""
return self._year
@year.setter
def year(self, value):
self._year = validators.string(value, allow_empty = True)
@classmethod
def _get_kwargs_from_dict(cls, as_dict):
kwargs = {
'day': as_dict.get('day', None),
'hour': as_dict.get('hour', None),
'millisecond': as_dict.get('millisecond', None),
'minute': as_dict.get('minute', None),
'month': as_dict.get('month', None),
'second': as_dict.get('second', None),
'week': as_dict.get('week', None),
'year': as_dict.get('year', None),
}
return kwargs
def _to_untrimmed_dict(self, in_cls = None) -> dict:
untrimmed = {
'day': self.day,
'hour': self.hour,
'millisecond': self.millisecond,
'minute': self.minute,
'month': self.month,
'second': self.second,
'week': self.week,
'year': self.year
}
return untrimmed