# {py:mod}`labthings_fastapi.descriptors.property` ```{py:module} labthings_fastapi.descriptors.property ``` ```{autodoc2-docstring} labthings_fastapi.descriptors.property :allowtitles: ``` ## Module Contents ### Classes ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`PropertyDescriptor ` - ```{autodoc2-docstring} labthings_fastapi.descriptors.property.PropertyDescriptor :summary: ``` ```` ### API `````{py:class} PropertyDescriptor(model: type, initial_value: typing.Any = None, readonly: bool = False, observable: bool = False, description: typing.Optional[str] = None, title: typing.Optional[str] = None, getter: typing.Optional[typing.Callable] = None, setter: typing.Optional[typing.Callable] = None) :canonical: labthings_fastapi.descriptors.property.PropertyDescriptor ```{autodoc2-docstring} labthings_fastapi.descriptors.property.PropertyDescriptor ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} labthings_fastapi.descriptors.property.PropertyDescriptor.__init__ ``` ````{py:attribute} model :canonical: labthings_fastapi.descriptors.property.PropertyDescriptor.model :type: type[pydantic.BaseModel] :value: > None ```{autodoc2-docstring} labthings_fastapi.descriptors.property.PropertyDescriptor.model ``` ```` ````{py:attribute} readonly :canonical: labthings_fastapi.descriptors.property.PropertyDescriptor.readonly :type: bool :value: > False ```{autodoc2-docstring} labthings_fastapi.descriptors.property.PropertyDescriptor.readonly ``` ```` ````{py:method} __set_name__(owner, name: str) :canonical: labthings_fastapi.descriptors.property.PropertyDescriptor.__set_name__ ```{autodoc2-docstring} labthings_fastapi.descriptors.property.PropertyDescriptor.__set_name__ ``` ```` ````{py:property} title :canonical: labthings_fastapi.descriptors.property.PropertyDescriptor.title ```{autodoc2-docstring} labthings_fastapi.descriptors.property.PropertyDescriptor.title ``` ```` ````{py:property} description :canonical: labthings_fastapi.descriptors.property.PropertyDescriptor.description ```{autodoc2-docstring} labthings_fastapi.descriptors.property.PropertyDescriptor.description ``` ```` ````{py:method} __get__(obj, type=None) -> typing.Any :canonical: labthings_fastapi.descriptors.property.PropertyDescriptor.__get__ ```{autodoc2-docstring} labthings_fastapi.descriptors.property.PropertyDescriptor.__get__ ``` ```` ````{py:method} __set__(obj, value) :canonical: labthings_fastapi.descriptors.property.PropertyDescriptor.__set__ ```{autodoc2-docstring} labthings_fastapi.descriptors.property.PropertyDescriptor.__set__ ``` ```` ````{py:method} _observers_set(obj) :canonical: labthings_fastapi.descriptors.property.PropertyDescriptor._observers_set ```{autodoc2-docstring} labthings_fastapi.descriptors.property.PropertyDescriptor._observers_set ``` ```` ````{py:method} emit_changed_event(obj: labthings_fastapi.thing.Thing, value: typing.Any) -> None :canonical: labthings_fastapi.descriptors.property.PropertyDescriptor.emit_changed_event ```{autodoc2-docstring} labthings_fastapi.descriptors.property.PropertyDescriptor.emit_changed_event ``` ```` ````{py:method} emit_changed_event_async(obj: labthings_fastapi.thing.Thing, value: typing.Any) :canonical: labthings_fastapi.descriptors.property.PropertyDescriptor.emit_changed_event_async :async: ```{autodoc2-docstring} labthings_fastapi.descriptors.property.PropertyDescriptor.emit_changed_event_async ``` ```` ````{py:property} name :canonical: labthings_fastapi.descriptors.property.PropertyDescriptor.name ```{autodoc2-docstring} labthings_fastapi.descriptors.property.PropertyDescriptor.name ``` ```` ````{py:method} add_to_fastapi(app: fastapi.FastAPI, thing: labthings_fastapi.thing.Thing) :canonical: labthings_fastapi.descriptors.property.PropertyDescriptor.add_to_fastapi ```{autodoc2-docstring} labthings_fastapi.descriptors.property.PropertyDescriptor.add_to_fastapi ``` ```` ````{py:method} property_affordance(thing: labthings_fastapi.thing.Thing, path: typing.Optional[str] = None) -> labthings_fastapi.thing_description.model.PropertyAffordance :canonical: labthings_fastapi.descriptors.property.PropertyDescriptor.property_affordance ```{autodoc2-docstring} labthings_fastapi.descriptors.property.PropertyDescriptor.property_affordance ``` ```` ````{py:method} getter(func: typing.Callable) -> typing_extensions.Self :canonical: labthings_fastapi.descriptors.property.PropertyDescriptor.getter ```{autodoc2-docstring} labthings_fastapi.descriptors.property.PropertyDescriptor.getter ``` ```` ````{py:method} setter(func: typing.Callable) -> typing_extensions.Self :canonical: labthings_fastapi.descriptors.property.PropertyDescriptor.setter ```{autodoc2-docstring} labthings_fastapi.descriptors.property.PropertyDescriptor.setter ``` ```` `````