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.
"""
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