from .errors import VMCMDErrors def strip_output_prop(param): """ A channel prop. """ def fget(self): data = self.getter() return not int.from_bytes(data.stripstate[self.index], 'little') & getattr(self._modes, f'_bus{param.lower()}') == 0 def fset(self, val): if not isinstance(val, bool) and val not in (0, 1): raise VMCMDErrors(f'{param} is a boolean parameter') self.setter(param, 1 if val else 0) return property(fget, fset)