from .module import Module, interact


class Led(Module):
    def __init__(self, id, alias, robot):
        Module.__init__(self, 'LED', id, alias, robot)
        self.color = (0, 0, 0)

    @property
    def color(self):
        return self._value

    @color.setter
    def color(self, new_color):
        if new_color != self._value:
            self._value = new_color
            self._push_value('rgb', new_color)

    def control(self):
        def change_color(red, green, blue):
            self.color = (red, green, blue)

        return interact(change_color,
                        red=(0, 255, 1),
                        green=(0, 255, 1),
                        blue=(0, 255, 1))

from .module import Module, interact


class Led(Module):
    def __init__(self, id, alias, robot):
        Module.__init__(self, 'LED', id, alias, robot)
        self.color = (0, 0, 0)

    @property
    def color(self):
        return self._value

    @color.setter
    def color(self, new_color):
        new_color = [int(min(max(c, 0), 255)) for c in new_color]

        if new_color != self._value:
            self._value = new_color
            self._push_value('rgb', new_color)

    def control(self):
        def change_color(red, green, blue):
            self.color = (red, green, blue)

        return interact(change_color,
                        red=(0, 255, 1),
                        green=(0, 255, 1),
                        blue=(0, 255, 1))

Make sur the rgb values are within [0, 255] range.
Make sur the rgb values are within [0, 255] range.

  from .module import Module, interact
  
  
  class Led(Module):
      def __init__(self, id, alias, robot):
          Module.__init__(self, 'LED', id, alias, robot)
          self.color = (0, 0, 0)
  
      @property
      def color(self):
          return self._value
  
      @color.setter
      def color(self, new_color):
+         new_color = [int(min(max(c, 0), 255)) for c in new_color]
+ 
          if new_color != self._value:
              self._value = new_color
              self._push_value('rgb', new_color)
  
      def control(self):
          def change_color(red, green, blue):
              self.color = (red, green, blue)
  
          return interact(change_color,
                          red=(0, 255, 1),
                          green=(0, 255, 1),
                          blue=(0, 255, 1))
  
Make sur the rgb values are within [0, 255] range.
## Code Before:
from .module import Module, interact


class Led(Module):
    def __init__(self, id, alias, robot):
        Module.__init__(self, 'LED', id, alias, robot)
        self.color = (0, 0, 0)

    @property
    def color(self):
        return self._value

    @color.setter
    def color(self, new_color):
        if new_color != self._value:
            self._value = new_color
            self._push_value('rgb', new_color)

    def control(self):
        def change_color(red, green, blue):
            self.color = (red, green, blue)

        return interact(change_color,
                        red=(0, 255, 1),
                        green=(0, 255, 1),
                        blue=(0, 255, 1))

## Instruction:
Make sur the rgb values are within [0, 255] range.
## Code After:
from .module import Module, interact


class Led(Module):
    def __init__(self, id, alias, robot):
        Module.__init__(self, 'LED', id, alias, robot)
        self.color = (0, 0, 0)

    @property
    def color(self):
        return self._value

    @color.setter
    def color(self, new_color):
        new_color = [int(min(max(c, 0), 255)) for c in new_color]

        if new_color != self._value:
            self._value = new_color
            self._push_value('rgb', new_color)

    def control(self):
        def change_color(red, green, blue):
            self.color = (red, green, blue)

        return interact(change_color,
                        red=(0, 255, 1),
                        green=(0, 255, 1),
                        blue=(0, 255, 1))
