Source code for kappa_sdk.user_tasks.redefinition
from .redefinition_mode_enum import RedefinitionModeEnum
from datetime import datetime, timezone
from typing import Optional, Dict, Any
[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, old_context: Optional[Dict[str, Any]] = None) -> None:
self.__mode: RedefinitionModeEnum = mode
self.__date: Optional[datetime] = date
self.__old_context: Dict[str, Any] = old_context if old_context is not None else dict()
@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
@property
def old_context(self) -> Dict[str, Any]:
""" Gets the old context of the user task before redefinition.
"""
return self.__old_context
@old_context.setter
def old_context(self, value: Dict[str, Any]) -> None:
""" Sets the old context of the user task before redefinition."""
self.__old_context = value