GitHub Access Token became invalid

It seems like the GitHub access token used for retrieving details about this repository from GitHub became invalid. This might prevent certain types of inspections from being run (in particular, everything related to pull requests).
Please ask an admin of your repository to re-new the access token on this website.
Completed
Push — master ( d5449d...f0eee5 )
by Benjamin
01:11
created

Pump.run()   B

Complexity

Conditions 6

Size

Total Lines 13

Duplication

Lines 0
Ratio 0 %

Importance

Changes 3
Bugs 0 Features 0
Metric Value
c 3
b 0
f 0
dl 0
loc 13
rs 8
cc 6
1
import threading
2
from time import sleep
3
4
from libAnt.constants import MESSAGE_TX_SYNC, MESSAGE_TX_SYNC_LEGACY
5
from libAnt.message import Message
6
7
8
class Network:
9
    def __init__(self, key=b'\x00' * 8, name=None):
10
        self.key = key
11
        self.name = name
12
        self.number = 0
13
14
    def __str__(self):
15
        return self.name + self.key
16
17
18
class Pump(threading.Thread):
19
    def __init__(self, driver):
20
        super().__init__()
21
        self._stop = threading.Event()
22
        self._driver = driver
23
24
    def stop(self):
25
        self._stop.set()
26
27
    def stopped(self):
28
        return self._stop.isSet()
29
30
    def run(self):
31
        with self._driver as driver:
32
            while not self._stop.is_set():
33
                sync = driver.read(1)  # search for sync
34
                if sync == MESSAGE_TX_SYNC or sync == MESSAGE_TX_SYNC_LEGACY:
35
                    size = driver.read(1) # get size of message
36
                    try:
37
                        raw = bytearray(sync)
38
                        raw.extend(size)
39
                        raw.extend(driver.read(size + 2))
40
                        message = Message.decode(raw)
41
                    except Exception as e:
42
                        pass
43
44
45
class Node:
46
    def __init__(self, driver, name=None):
47
        self._driver = driver
48
        self._name = name
49
        self._pump = Pump(driver)
50
51
    def __enter__(self):
52
        return self
53
54
    def __exit__(self, exc_type, exc_val, exc_tb):
55
        self.stop()
56
57
    def start(self):
58
        if not self.isRunning():
59
            self._pump.start()
60
61
    def stop(self):
62
        if self.isRunning():
63
            self._pump.stop()
64
            self._pump.join()
65
66
    def isRunning(self):
67
        return self._pump.is_alive()
68
69
    def reset(self):
70
        self.stop()
71
        # TODO: reset device
72
73
    def getCapabilities(self):
74
        pass
75