Code Duplication    Length = 26-27 lines in 2 locations

PyDMXControl/smart/_RGB.py 1 location

@@ 10-36 (lines=27) @@
7
class RGBLight(Accessory):
8
    category = CATEGORY_LIGHTBULB
9
10
    def __init__(self, fixture, driver):
11
        super().__init__(driver, fixture.name)
12
13
        serv_light = self.add_preload_service(
14
            'Lightbulb', chars=['On', 'Hue', 'Saturation', 'Brightness'])
15
16
        # Set our instance variables
17
        self.fixture = fixture
18
        self.accessory_state = self.get_state()  # State of On/Off
19
        self.hue = self.get_hue()  # Hue Value 0 - 360 Homekit API
20
        self.saturation = self.get_saturation()  # Saturation Values 0 - 100 Homekit API
21
        self.brightness = self.get_brightness()  # Brightness value 0 - 100 Homekit API
22
23
        # Configure our callbacks
24
        self.char_on = serv_light.configure_char(
25
            'On', setter_callback=self.set_state, getter_callback=self.get_state)
26
        self.char_hue = serv_light.configure_char(
27
            'Hue', setter_callback=self.set_hue, getter_callback=self.get_hue)
28
        self.char_saturation = serv_light.configure_char(
29
            'Saturation', setter_callback=self.set_saturation, getter_callback=self.get_saturation)
30
        self.char_brightness = serv_light.configure_char(
31
            'Brightness', setter_callback=self.set_brightness, getter_callback=self.get_brightness)
32
33
        # Set model info
34
        self.set_info_service(manufacturer=fixture.manufacturer,
35
                              model=fixture.model,
36
                              serial_number="Chans: {}".format(fixture.channel_usage))
37
38
    def set_state(self, value):
39
        self.accessory_state = value

PyDMXControl/smart/_Master.py 1 location

@@ 10-35 (lines=26) @@
7
class MasterLight(Accessory):
8
    category = CATEGORY_LIGHTBULB
9
10
    def __init__(self, controller, driver):
11
        super().__init__(driver, "> Master")
12
13
        serv_light = self.add_preload_service(
14
            'Lightbulb', chars=['On', 'Hue', 'Saturation', 'Brightness'])
15
16
        # Set our instance variables
17
        self.controller = controller
18
        self.hue = self.get_hue()  # Hue Value 0 - 360 Homekit API
19
        self.saturation = self.get_saturation()  # Saturation Values 0 - 100 Homekit API
20
        self.brightness = self.get_brightness()  # Brightness value 0 - 100 Homekit API
21
22
        # Configure our callbacks
23
        self.char_state = serv_light.configure_char(
24
            'On', getter_callback=self.get_state)
25
        self.char_hue = serv_light.configure_char(
26
            'Hue', setter_callback=self.set_hue, getter_callback=self.get_hue)
27
        self.char_saturation = serv_light.configure_char(
28
            'Saturation', setter_callback=self.set_saturation, getter_callback=self.get_saturation)
29
        self.char_brightness = serv_light.configure_char(
30
            'Brightness', setter_callback=self.set_brightness, getter_callback=self.get_brightness)
31
32
        # Set model info
33
        self.set_info_service(manufacturer="PyDMXControl",
34
                              model="Global Master",
35
                              serial_number="Chans: 1->{} (All)".format(controller.next_channel-1))
36
37
    @staticmethod
38
    def get_state():