Passed
Pull Request — master (#35)
by
unknown
01:32
created

PyDMXControl.profiles.Showtec._Compact_PAR   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 68
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 4
eloc 45
dl 0
loc 68
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
B Compact_PAR_7_Q4.__init__() 0 55 4
1
"""
2
 *  PyDMXControl: A Python 3 module to control DMX using uDMX.
3
 *                Featuring fixture profiles, built-in effects and a web control panel.
4
 *  <https://github.com/MattIPv4/PyDMXControl/>
5
 *  Copyright (C) 2018 Matt Cowley (MattIPv4) ([email protected])
6
"""
7
8
from ..defaults import Fixture
9
10
11
class Compact_PAR_7_Q4(Fixture):
12
13
    def __init__(self, n_channels, *args, **kwargs):
14
        """
15
        These models can be configured to use 4, 6, or 11 DMX channels, so the number
16
        of channels has to be supplied when creating the Fixture objects.
17
18
        Parameters
19
        ----------
20
        n_channels: Number of channel configured in the PAR 7 Q4.
21
        """
22
        super().__init__(*args, **kwargs)
23
24
        if n_channels == 4:
25
            self._register_channel('red')
26
            self._register_channel_aliases('red', 'r')
27
            self._register_channel('green')
28
            self._register_channel_aliases('green', 'g')
29
            self._register_channel('blue')
30
            self._register_channel_aliases('blue', 'b')
31
            self._register_channel('white')
32
            self._register_channel_aliases('white', 'w')
33
34
        elif n_channels == 6:
35
            self._register_channel('dimmer')
36
            self._register_channel_aliases('dimmer', 'dim', 'd')
37
            self._register_channel('strobe')
38
            self._register_channel('red')
39
            self._register_channel_aliases('red', 'r')
40
            self._register_channel('green')
41
            self._register_channel_aliases('green', 'g')
42
            self._register_channel('blue')
43
            self._register_channel_aliases('blue', 'b')
44
            self._register_channel('white')
45
            self._register_channel_aliases('white', 'w')
46
47
        elif n_channels == 11:
48
            self._register_channel('dimmer')
49
            self._register_channel_aliases('dimmer', 'dim', 'd')
50
            self._register_channel('strobe')
51
            self._register_channel('random strobe')
52
            self._register_channel('color presets')
53
            self._register_channel('color running')
54
            self._register_channel('color running speed')
55
            self._register_channel('sound mode')
56
            self._register_channel('red')
57
            self._register_channel_aliases('red', 'r')
58
            self._register_channel('green')
59
            self._register_channel_aliases('green', 'g')
60
            self._register_channel('blue')
61
            self._register_channel_aliases('blue', 'b')
62
            self._register_channel('white')
63
            self._register_channel_aliases('white', 'w')
64
65
        else:
66
            raise ValueError('Number of channels (n_channels) has to be 4, 6, or 11. You passed '
67
                             '{}.'.format(n_channels))
68