aio_parallel_tools.aio_actor.actor_manager 源代码

"""Functions for managing Actors."""
import random
from typing import List, Optional
from aio_parallel_tools.aio_actor.actor_abc import ActorABC
_registry_class = {}


[文档]class ActorManagerRegister(type): """Meta class for regist subclass for management.""" def __new__(meta, name, bases, class_dict): """Set Members to all subclass and regist subclass.""" cls = type.__new__(meta, name, bases, class_dict) cls.Members = set() if cls.__name__ != "AioActor": _registry_class[cls.__name__] = cls return cls
[文档]def has_actor() -> List[str]: """Get all actor name. Returns: List[str]: all actor name. """ return list(_registry_class.keys())
[文档]def get_actor(actor_name: str) -> Optional[ActorABC]: """Get actor class by name. Args: actor_name (str): actor class's name Returns: Optional[ActorABC]: actor class """ return _registry_class.get(actor_name)