Completed
Push — master ( 32acac...19ae40 )
by Lakshmi
11:34
created

SetTemperatureAction.run()   F

Complexity

Conditions 9

Size

Total Lines 26

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 9
dl 0
loc 26
rs 3
c 0
b 0
f 0
1
from lib import actions
2
3
4
class SetTemperatureAction(actions.BaseAction):
5
    def run(self, scale, structure=None, device=None, temp=None, temp_low=None, temp_high=None):
6
        temperature = None
7
        mode = None
8
9
        # Assume temp if a range is not provided
10
        if temp_low and temp_high:
11
            temperature = (self._convert_temperature(temp_low, scale),
12
                           self._convert_temperature(temp_high, scale))
13
            # Automatically flip the mode to 'range' to accept the range temp
14
            mode = 'range'
15
        else:
16
            temperature = self._convert_temperature(temp, scale)
17
18
        if structure and device:
19
            nest = self._get_device(structure, device)
20
            if mode:
21
                nest.mode = mode
22
            nest.temperature = temperature
23
        else:
24
            for structure in self._nest.structures:
25
                for device in structure.devices:
26
                    if mode:
27
                        device.mode = mode
28
                    device.temperature = temperature
29
30
        return temperature
31