Source code for icalendar.prop.dt.base

from datetime import date
from typing import ClassVar

from icalendar.parser import Parameters


[docs] class TimeBase: """Make classes with a datetime/date comparable.""" default_value: ClassVar[str] params: Parameters ignore_for_equality = {"TZID", "VALUE"} def __eq__(self, other): """self == other""" if isinstance(other, date): return self.dt == other if isinstance(other, TimeBase): default = object() for key in ( set(self.params) | set(other.params) ) - self.ignore_for_equality: if key[:2].lower() != "x-" and self.params.get( key, default ) != other.params.get(key, default): return False return self.dt == other.dt from .list import vDDDLists if isinstance(other, vDDDLists): return other == self return False def __hash__(self): return hash(self.dt) from icalendar.param import RANGE, RELATED, TZID def __repr__(self): """String representation.""" return f"{self.__class__.__name__}({self.dt}, {self.params})"
__all__ = ["TimeBase"]