# {py:mod}`labthings_fastapi.utilities` ```{py:module} labthings_fastapi.utilities ``` ```{autodoc2-docstring} labthings_fastapi.utilities :allowtitles: ``` ## Submodules ```{toctree} :titlesonly: :maxdepth: 1 labthings_fastapi.utilities.object_reference_to_object labthings_fastapi.utilities.introspection ``` ## Package Contents ### Classes ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`LabThingsObjectData ` - ```{autodoc2-docstring} labthings_fastapi.utilities.LabThingsObjectData :summary: ``` ```` ### Functions ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`class_attributes ` - ```{autodoc2-docstring} labthings_fastapi.utilities.class_attributes :summary: ``` * - {py:obj}`attributes ` - ```{autodoc2-docstring} labthings_fastapi.utilities.attributes :summary: ``` * - {py:obj}`labthings_data ` - ```{autodoc2-docstring} labthings_fastapi.utilities.labthings_data :summary: ``` * - {py:obj}`get_blocking_portal ` - ```{autodoc2-docstring} labthings_fastapi.utilities.get_blocking_portal :summary: ``` * - {py:obj}`wrap_plain_types_in_rootmodel ` - ```{autodoc2-docstring} labthings_fastapi.utilities.wrap_plain_types_in_rootmodel :summary: ``` * - {py:obj}`model_to_dict ` - ```{autodoc2-docstring} labthings_fastapi.utilities.model_to_dict :summary: ``` ```` ### Data ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`LABTHINGS_DICT_KEY ` - ```{autodoc2-docstring} labthings_fastapi.utilities.LABTHINGS_DICT_KEY :summary: ``` ```` ### API ````{py:function} class_attributes(obj: typing.Any) -> typing.Iterable[tuple[str, typing.Any]] :canonical: labthings_fastapi.utilities.class_attributes ```{autodoc2-docstring} labthings_fastapi.utilities.class_attributes ``` ```` ````{py:function} attributes(cls: typing.Any) -> typing.Iterable[tuple[str, typing.Any]] :canonical: labthings_fastapi.utilities.attributes ```{autodoc2-docstring} labthings_fastapi.utilities.attributes ``` ```` ````{py:data} LABTHINGS_DICT_KEY :canonical: labthings_fastapi.utilities.LABTHINGS_DICT_KEY :value: > '__labthings' ```{autodoc2-docstring} labthings_fastapi.utilities.LABTHINGS_DICT_KEY ``` ```` `````{py:class} LabThingsObjectData :canonical: labthings_fastapi.utilities.LabThingsObjectData ```{autodoc2-docstring} labthings_fastapi.utilities.LabThingsObjectData ``` ````{py:attribute} property_observers :canonical: labthings_fastapi.utilities.LabThingsObjectData.property_observers :type: typing.Dict[str, weakref.WeakSet] :value: > 'Field(...)' ```{autodoc2-docstring} labthings_fastapi.utilities.LabThingsObjectData.property_observers ``` ```` ````{py:attribute} action_observers :canonical: labthings_fastapi.utilities.LabThingsObjectData.action_observers :type: typing.Dict[str, weakref.WeakSet] :value: > 'Field(...)' ```{autodoc2-docstring} labthings_fastapi.utilities.LabThingsObjectData.action_observers ``` ```` ````` ````{py:function} labthings_data(obj: labthings_fastapi.thing.Thing) -> labthings_fastapi.utilities.LabThingsObjectData :canonical: labthings_fastapi.utilities.labthings_data ```{autodoc2-docstring} labthings_fastapi.utilities.labthings_data ``` ```` ````{py:function} get_blocking_portal(obj: labthings_fastapi.thing.Thing) -> typing.Optional[anyio.from_thread.BlockingPortal] :canonical: labthings_fastapi.utilities.get_blocking_portal ```{autodoc2-docstring} labthings_fastapi.utilities.get_blocking_portal ``` ```` ````{py:function} wrap_plain_types_in_rootmodel(model: type) -> type[pydantic.BaseModel] :canonical: labthings_fastapi.utilities.wrap_plain_types_in_rootmodel ```{autodoc2-docstring} labthings_fastapi.utilities.wrap_plain_types_in_rootmodel ``` ```` ````{py:function} model_to_dict(model: typing.Optional[pydantic.BaseModel]) -> typing.Dict[str, typing.Any] :canonical: labthings_fastapi.utilities.model_to_dict ```{autodoc2-docstring} labthings_fastapi.utilities.model_to_dict ``` ````