mirror of
https://github.com/KevinMidboe/python-gpiozero.git
synced 2025-10-29 17:50:37 +00:00
Tidying up...
Dunno how many commits this PR is now!
This commit is contained in:
@@ -562,12 +562,8 @@ class RGBLED(SourceMixin, Device):
|
||||
raise GPIOPinMissing('red, green, and blue pins must be provided')
|
||||
LEDClass = PWMLED if pwm else LED
|
||||
super(RGBLED, self).__init__()
|
||||
try:
|
||||
self._leds = tuple(LEDClass(pin, active_high) for pin in (red, green, blue))
|
||||
self.value = initial_value
|
||||
except:
|
||||
self.close()
|
||||
raise
|
||||
self._leds = tuple(LEDClass(pin, active_high) for pin in (red, green, blue))
|
||||
self.value = initial_value
|
||||
|
||||
red = _led_property(0)
|
||||
green = _led_property(1)
|
||||
|
||||
@@ -224,24 +224,22 @@ class PiPin(Pin):
|
||||
return self._when_changed
|
||||
|
||||
def _set_when_changed(self, value):
|
||||
# Have to take care, if value is either a closure or a bound method,
|
||||
# not to keep a strong reference to the containing object
|
||||
with self._when_changed_lock:
|
||||
if self._when_changed is None and value is not None:
|
||||
if value is None:
|
||||
if self._when_changed is not None:
|
||||
self._disable_event_detect()
|
||||
self._when_changed = None
|
||||
else:
|
||||
enabled = self._when_changed is not None
|
||||
# Have to take care, if value is either a closure or a bound
|
||||
# method, not to keep a strong reference to the containing
|
||||
# object
|
||||
if isinstance(value, MethodType):
|
||||
self._when_changed = WeakMethod(value)
|
||||
else:
|
||||
self._when_changed = ref(value)
|
||||
self._enable_event_detect()
|
||||
elif self._when_changed is not None and value is None:
|
||||
self._disable_event_detect()
|
||||
self._when_changed = None
|
||||
elif value is None:
|
||||
self._when_changed = None
|
||||
elif isinstance(value, MethodType):
|
||||
self._when_changed = WeakMethod(value)
|
||||
else:
|
||||
self._when_changed = ref(value)
|
||||
if not enabled:
|
||||
self._enable_event_detect()
|
||||
|
||||
def _enable_event_detect(self):
|
||||
raise NotImplementedError
|
||||
|
||||
Reference in New Issue
Block a user