Beispiel #1
0
    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)
Beispiel #2
0
 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)
Beispiel #3
0
 def duration(self, value: timedelta):
     self._timespan = self._timespan.replace(duration=ensure_timedelta(value), end_time=None)