def parameter(self):
        if not (hasattr(self, "_param") and self._param):
            from pyqtgraph.parametertree.Parameter import Parameter, PARAM_TYPES

            children = []
            for name, input in self.inputs.items():
                if getattr(input.type, '__name__', None) in PARAM_TYPES:
                    childparam = Parameter.create(
                        name=name,
                        value=getattr(input, 'value', input.default),
                        default=input.default,
                        limits=input.limits,
                        type=getattr(input.type, '__name__', None),
                        units=input.units,
                        fixed=input.fixed,
                        fixable=input.fixable,
                        visible=input.visible,
                        **input.opts)
                    childparam.sigValueChanged.connect(
                        partial(self.setParameterValue, name))
                    if input.fixable:
                        childparam.sigFixToggled.connect(input.setFixed)
                    children.append(childparam)
                    input._param = childparam
                elif getattr(input.type, "__name__", None) == "Enum":
                    childparam = Parameter.create(
                        name=name,
                        value=getattr(input, "value", input.default) or "---",
                        values=input.limits or ["---"],
                        default=input.default,
                        type="list",
                    )
                    childparam.sigValueChanged.connect(
                        partial(self.setParameterValue, name))
                    children.append(childparam)
                    input._param = childparam

            self._param = Parameter(name=getattr(self, "name",
                                                 self.__class__.__name__),
                                    children=children,
                                    type="group")

            self._param.sigValueChanged.connect(self.setParameterValue)
        return self._param
    def parameter(self):
        if not (hasattr(self, '_param') and self._param):
            from pyqtgraph.parametertree.Parameter import Parameter, PARAM_TYPES
            children = []
            for name, input in self.inputs.items():
                if getattr(input.type, '__name__', None) in PARAM_TYPES:
                    childparam = Parameter.create(
                        name=name,
                        value=getattr(input, 'value', input.default),
                        default=input.default,
                        limits=input.limits,
                        type=getattr(input.type, '__name__', None),
                        units=input.units)
                    childparam.sigValueChanged.connect(
                        partial(self.setParameterValue, name))
                    children.append(childparam)
                    input._param = childparam
                elif getattr(input.type, '__name__', None) == 'Enum':
                    childparam = Parameter.create(
                        name=name,
                        value=getattr(input, 'value', input.default) or '---',
                        values=input.limits or ['---'],
                        default=input.default,
                        type='list')
                    childparam.sigValueChanged.connect(
                        partial(self.setParameterValue, name))
                    children.append(childparam)
                    input._param = childparam

            self._param = Parameter(name=getattr(self, 'name',
                                                 self.__class__.__name__),
                                    children=children,
                                    type='group')

            self._param.sigValueChanged.connect(self.setParameterValue)
        return self._param