Tidying up...

Dunno how many commits this PR is now!
This commit is contained in:
Dave Jones
2016-10-22 16:02:27 +01:00
parent b59af7a08f
commit d3c55d25a4
2 changed files with 13 additions and 19 deletions

View File

@@ -562,12 +562,8 @@ class RGBLED(SourceMixin, Device):
raise GPIOPinMissing('red, green, and blue pins must be provided') raise GPIOPinMissing('red, green, and blue pins must be provided')
LEDClass = PWMLED if pwm else LED LEDClass = PWMLED if pwm else LED
super(RGBLED, self).__init__() super(RGBLED, self).__init__()
try: self._leds = tuple(LEDClass(pin, active_high) for pin in (red, green, blue))
self._leds = tuple(LEDClass(pin, active_high) for pin in (red, green, blue)) self.value = initial_value
self.value = initial_value
except:
self.close()
raise
red = _led_property(0) red = _led_property(0)
green = _led_property(1) green = _led_property(1)

View File

@@ -224,24 +224,22 @@ class PiPin(Pin):
return self._when_changed return self._when_changed
def _set_when_changed(self, value): 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: 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): if isinstance(value, MethodType):
self._when_changed = WeakMethod(value) self._when_changed = WeakMethod(value)
else: else:
self._when_changed = ref(value) self._when_changed = ref(value)
self._enable_event_detect() if not enabled:
elif self._when_changed is not None and value is None: self._enable_event_detect()
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)
def _enable_event_detect(self): def _enable_event_detect(self):
raise NotImplementedError raise NotImplementedError