Source code for kappa_sdk.user_tasks.redefinition
from .redefinition_mode_enum import RedefinitionModeEnum
from datetime import datetime, timezone
from typing import Optional
[docs]
class Redefinition:
    """The redefinition options of the user task.
        .. note:: Should not be instantiated directly.
        """
[docs]
    def __init__(self, mode: RedefinitionModeEnum, date: Optional[datetime] = None) -> None:
        self.__mode: RedefinitionModeEnum = mode
        self.__date: Optional[datetime] = date 
    @property
    def mode(self) -> RedefinitionModeEnum:
        """ Gets the redefinition mode (start, current, other).
        """
        return self.__mode
    @property
    def date(self) -> Optional[datetime]:
        """ Gets the date from which the user task is redefined (optional, used with 'other' mode).
        """
        if self.__mode == RedefinitionModeEnum.other or self.__mode == RedefinitionModeEnum.current:
            return self.__date
        elif self.__mode == RedefinitionModeEnum.start:
            return datetime.min.replace(tzinfo=timezone.utc) if self.__date is None else self.__date