# -*- coding: utf-8 -*-
# Copyright (c) Huawei Technologies Co., Ltd. 2025-2026. All rights reserved.
# MindIE is licensed under Mulan PSL v2.
# You can use this software according to the terms and conditions of the Mulan PSL v2.
# You may obtain a copy of Mulan PSL v2 at:
# http://license.coscl.org.cn/MulanPSL2
# THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
from abc import ABC, abstractmethod
from enum import Enum
from motor.common.resources import ReadOnlyInstance
class ObserverEvent(Enum):
INSTANCE_INITIAL = 0
INSTANCE_READY = 1
INSTANCE_SEPERATED = 2
INSTANCE_REMOVED = 3
INSTANCE_PAUSED = 4
INSTANCE_RESUMED = 5
class Observer(ABC):
def __init__(self) -> None:
pass
@abstractmethod
def update(self, instance: ReadOnlyInstance, event: ObserverEvent) -> None:
pass