Skip to content

hololinked.core.meta.ActionsRegistry

Bases: DescriptorRegistry

A DescriptorRegistry for actions of a Thing class or Thing instance.

UML Diagram

Source code in hololinked\core\meta.py
class ActionsRegistry(DescriptorRegistry):
    """
    A `DescriptorRegistry` for actions of a `Thing` class or `Thing` instance.

    [UML Diagram](http://localhost:8000/UML/PDF/DescriptorRegistry.pdf)
    """

    @property
    def descriptor_object(self) -> type[Action]:
        return Action

    descriptors = property(DescriptorRegistry.get_descriptors) # type: typing.Dict[str, Action]

    values = property(DescriptorRegistry.get_values, 
                    doc=DescriptorRegistry.get_values.__doc__) # type: typing.Dict[str, Action]  

    def __getitem__(self, key: str) -> Action | BoundAction:
        if self.owner_inst is not None: 
            return self.descriptors[key].__get__(self.owner_inst, self.owner_cls)
        return self.descriptors[key]

    def __contains__(self, action: str | Action | BoundAction) -> bool:
        return action in self.descriptors.values() or action in self.descriptors