Source code for pyobs.interfaces.IMotion

from abc import ABCMeta, abstractmethod
from enum import Enum
from typing import Any, Optional

from .IReady import IReady
from pyobs.utils.enums import MotionStatus


class IMotion(IReady, metaclass=ABCMeta):
    """The module controls a device that can move."""

    __module__ = "pyobs.interfaces"

[docs] @abstractmethod async def init(self, **kwargs: Any) -> None: """Initialize device. Raises: InitError: If device could not be initialized. """ ...
[docs] @abstractmethod async def park(self, **kwargs: Any) -> None: """Park device. Raises: ParkError: If device could not be parked. """ ...
[docs] @abstractmethod async def get_motion_status(self, device: Optional[str] = None, **kwargs: Any) -> MotionStatus: """Returns current motion status. Args: device: Name of device to get status for, or None. Returns: A string from the Status enumerator. """ ...
[docs] @abstractmethod async def stop_motion(self, device: Optional[str] = None, **kwargs: Any) -> None: """Stop the motion. Args: device: Name of device to stop, or None for all. """ ...
__all__ = ["IMotion"]