# {py:mod}`labthings_fastapi.actions` ```{py:module} labthings_fastapi.actions ``` ```{autodoc2-docstring} labthings_fastapi.actions :allowtitles: ``` ## Submodules ```{toctree} :titlesonly: :maxdepth: 1 labthings_fastapi.actions.invocation_model ``` ## Package Contents ### Classes ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`Invocation ` - ```{autodoc2-docstring} labthings_fastapi.actions.Invocation :summary: ``` * - {py:obj}`DequeLogHandler ` - * - {py:obj}`ActionManager ` - ```{autodoc2-docstring} labthings_fastapi.actions.ActionManager :summary: ``` ```` ### Data ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`ACTION_INVOCATIONS_PATH ` - ```{autodoc2-docstring} labthings_fastapi.actions.ACTION_INVOCATIONS_PATH :summary: ``` ```` ### API ````{py:data} ACTION_INVOCATIONS_PATH :canonical: labthings_fastapi.actions.ACTION_INVOCATIONS_PATH :value: > '/action_invocations' ```{autodoc2-docstring} labthings_fastapi.actions.ACTION_INVOCATIONS_PATH ``` ```` `````{py:class} Invocation(action: labthings_fastapi.descriptors.ActionDescriptor, thing: labthings_fastapi.thing.Thing, input: typing.Optional[pydantic.BaseModel] = None, dependencies: typing.Optional[dict[str, typing.Any]] = None, default_stop_timeout: float = 5, log_len: int = 1000, id: typing.Optional[uuid.UUID] = None, cancel_hook: typing.Optional[labthings_fastapi.dependencies.invocation.CancelHook] = None) :canonical: labthings_fastapi.actions.Invocation Bases: {py:obj}`threading.Thread` ```{autodoc2-docstring} labthings_fastapi.actions.Invocation ``` ````{py:method} __init__(action: labthings_fastapi.descriptors.ActionDescriptor, thing: labthings_fastapi.thing.Thing, input: typing.Optional[pydantic.BaseModel] = None, dependencies: typing.Optional[dict[str, typing.Any]] = None, default_stop_timeout: float = 5, log_len: int = 1000, id: typing.Optional[uuid.UUID] = None, cancel_hook: typing.Optional[labthings_fastapi.dependencies.invocation.CancelHook] = None) :canonical: labthings_fastapi.actions.Invocation.__init__ ```` ````{py:property} id :canonical: labthings_fastapi.actions.Invocation.id :type: uuid.UUID ```{autodoc2-docstring} labthings_fastapi.actions.Invocation.id ``` ```` ````{py:property} output :canonical: labthings_fastapi.actions.Invocation.output :type: typing.Any ```{autodoc2-docstring} labthings_fastapi.actions.Invocation.output ``` ```` ````{py:property} log :canonical: labthings_fastapi.actions.Invocation.log ```{autodoc2-docstring} labthings_fastapi.actions.Invocation.log ``` ```` ````{py:property} status :canonical: labthings_fastapi.actions.Invocation.status :type: labthings_fastapi.actions.invocation_model.InvocationStatus ```{autodoc2-docstring} labthings_fastapi.actions.Invocation.status ``` ```` ````{py:property} action :canonical: labthings_fastapi.actions.Invocation.action ```{autodoc2-docstring} labthings_fastapi.actions.Invocation.action ``` ```` ````{py:property} thing :canonical: labthings_fastapi.actions.Invocation.thing ```{autodoc2-docstring} labthings_fastapi.actions.Invocation.thing ``` ```` ````{py:method} cancel() :canonical: labthings_fastapi.actions.Invocation.cancel ```{autodoc2-docstring} labthings_fastapi.actions.Invocation.cancel ``` ```` ````{py:method} response(request: typing.Optional[fastapi.Request] = None) :canonical: labthings_fastapi.actions.Invocation.response ```{autodoc2-docstring} labthings_fastapi.actions.Invocation.response ``` ```` ````{py:method} run() :canonical: labthings_fastapi.actions.Invocation.run ```{autodoc2-docstring} labthings_fastapi.actions.Invocation.run ``` ```` ````` `````{py:class} DequeLogHandler(dest: typing.MutableSequence, level=logging.INFO) :canonical: labthings_fastapi.actions.DequeLogHandler Bases: {py:obj}`logging.Handler` ````{py:method} __init__(dest: typing.MutableSequence, level=logging.INFO) :canonical: labthings_fastapi.actions.DequeLogHandler.__init__ ```{autodoc2-docstring} labthings_fastapi.actions.DequeLogHandler.__init__ ``` ```` ````{py:method} emit(record) :canonical: labthings_fastapi.actions.DequeLogHandler.emit ```{autodoc2-docstring} labthings_fastapi.actions.DequeLogHandler.emit ``` ```` ````` `````{py:class} ActionManager() :canonical: labthings_fastapi.actions.ActionManager ```{autodoc2-docstring} labthings_fastapi.actions.ActionManager ``` ````{py:method} __init__() :canonical: labthings_fastapi.actions.ActionManager.__init__ ```{autodoc2-docstring} labthings_fastapi.actions.ActionManager.__init__ ``` ```` ````{py:property} invocations :canonical: labthings_fastapi.actions.ActionManager.invocations ```{autodoc2-docstring} labthings_fastapi.actions.ActionManager.invocations ``` ```` ````{py:method} append_invocation(invocation: labthings_fastapi.actions.Invocation) :canonical: labthings_fastapi.actions.ActionManager.append_invocation ```{autodoc2-docstring} labthings_fastapi.actions.ActionManager.append_invocation ``` ```` ````{py:method} invoke_action(action: labthings_fastapi.descriptors.ActionDescriptor, thing: labthings_fastapi.thing.Thing, id: uuid.UUID, input: typing.Any, dependencies: dict[str, typing.Any], cancel_hook: labthings_fastapi.dependencies.invocation.CancelHook) -> labthings_fastapi.actions.Invocation :canonical: labthings_fastapi.actions.ActionManager.invoke_action ```{autodoc2-docstring} labthings_fastapi.actions.ActionManager.invoke_action ``` ```` ````{py:method} get_invocation(id: uuid.UUID) -> labthings_fastapi.actions.Invocation :canonical: labthings_fastapi.actions.ActionManager.get_invocation ```{autodoc2-docstring} labthings_fastapi.actions.ActionManager.get_invocation ``` ```` ````{py:method} list_invocations(action: typing.Optional[labthings_fastapi.descriptors.ActionDescriptor] = None, thing: typing.Optional[labthings_fastapi.thing.Thing] = None, as_responses: bool = False, request: typing.Optional[fastapi.Request] = None) -> list[labthings_fastapi.actions.invocation_model.InvocationModel] :canonical: labthings_fastapi.actions.ActionManager.list_invocations ```{autodoc2-docstring} labthings_fastapi.actions.ActionManager.list_invocations ``` ```` ````{py:method} expire_invocations() :canonical: labthings_fastapi.actions.ActionManager.expire_invocations ```{autodoc2-docstring} labthings_fastapi.actions.ActionManager.expire_invocations ``` ```` ````{py:method} attach_to_app(app: fastapi.FastAPI) :canonical: labthings_fastapi.actions.ActionManager.attach_to_app ```{autodoc2-docstring} labthings_fastapi.actions.ActionManager.attach_to_app ``` ```` `````