def __init__(self, summary: str = None, begin: DatetimeLike = None, end: DatetimeLike = None, duration: TimedeltaLike = None, *args, **kwargs): """Initializes a new :class:`ics.event.Event`. Raises: ValueError: if `timespan` and any of `begin`, `end` or `duration` are specified at the same time, or if validation of the timespan fails (see :method:`ics.timespan.Timespan.validate`). """ if (begin is not None or end is not None or duration is not None) and "timespan" in kwargs: raise ValueError( "can't specify explicit timespan together with any of begin, end or duration" ) kwargs.setdefault( "timespan", EventTimespan(ensure_datetime(begin), ensure_datetime(end), ensure_timedelta(duration))) super(Event, self).__init__(kwargs.pop("timespan"), summary, *args, **kwargs)
def __init__(self, begin: DatetimeLike = None, due: DatetimeLike = None, duration: TimedeltaLike = None, *args, **kwargs): if (begin is not None or due is not None or duration is not None) and "timespan" in kwargs: raise ValueError( "can't specify explicit timespan together with any of begin, due or duration" ) kwargs.setdefault( "timespan", TodoTimespan(ensure_datetime(begin), ensure_datetime(due), ensure_timedelta(duration))) super(Todo, self).__init__(kwargs.pop("timespan"), *args, **kwargs)
def duration(self, value: timedelta): self._timespan = self._timespan.replace(duration=ensure_timedelta(value), end_time=None)