jdxi_editor.ui.widgets.controls.registry ======================================== .. py:module:: jdxi_editor.ui.widgets.controls.registry .. autoapi-nested-parse:: Control Registry Dict-like registry of parameter -> widget, owned by SynthBase (or one per partial). Supports get(param) with optional name fallback so param identity matches across partials. Use register(param, widget) or registry[param] = widget; lookup via registry.get(param) or registry[param]. Classes ------- .. autoapisummary:: jdxi_editor.ui.widgets.controls.registry.ControlResolver jdxi_editor.ui.widgets.controls.registry.ControlRegistry Module Contents --------------- .. py:class:: ControlResolver Bases: :py:obj:`Protocol` Base class for protocol classes. Protocol classes are defined as:: class Proto(Protocol): def meth(self) -> int: ... Such classes are primarily used with static type checkers that recognize structural subtyping (static duck-typing), for example:: class C: def meth(self) -> int: return 0 def func(x: Proto) -> int: return x.meth() func(C()) # Passes static type check See PEP 544 for details. Protocol classes decorated with @typing.runtime_checkable act as simple-minded runtime protocols that check only the presence of given attributes, ignoring their type signatures. Protocol classes can be generic, they are defined as:: class GenProto(Protocol[T]): def meth(self) -> T: ... .. py:method:: get(param, default: PySide6.QtWidgets.QWidget | None = None) -> PySide6.QtWidgets.QWidget | None .. py:class:: ControlRegistry Registry of parameter -> control widget. Dict-like; singleton instance shared across all partials. .. py:attribute:: _instance :type: ControlRegistry | None :value: None .. py:attribute:: _initialized :type: bool :value: False .. py:method:: register(param: Any, widget: PySide6.QtWidgets.QWidget) -> None .. py:method:: get(param: Any, default: PySide6.QtWidgets.QWidget | None = None) -> PySide6.QtWidgets.QWidget | None .. py:method:: __setitem__(param: Any, widget: PySide6.QtWidgets.QWidget) -> None .. py:method:: __getitem__(param: Any) -> PySide6.QtWidgets.QWidget .. py:method:: __contains__(param: Any) -> bool .. py:method:: __len__() -> int .. py:method:: __iter__() -> Iterator[Any] .. py:method:: items() -> Iterator[tuple[Any, PySide6.QtWidgets.QWidget]] .. py:method:: keys() -> Iterator[Any] .. py:method:: values() -> Iterator[PySide6.QtWidgets.QWidget] .. py:method:: pop(param: Any, default: PySide6.QtWidgets.QWidget | None = None) -> PySide6.QtWidgets.QWidget | None .. py:method:: update(other: Any = (), /, **kwargs: Any) -> None Update registry from another mapping (e.g. dict or ControlRegistry) or iterable of (param, widget).