Skip to content

Commit 6908f46

Browse files
author
Federico Fissore
committed
added try except around send() methods
replaces all double quotes with single quotes for readability renamed a couple of variables in console for readability put spaces around < and == operator
1 parent f0002ad commit 6908f46

File tree

7 files changed

+90
-85
lines changed

7 files changed

+90
-85
lines changed

linux/bridge/bridge.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,11 @@ def run(self):
2121
runner.run()
2222

2323
def process(self, data):
24-
if data=='XX':
24+
if data == 'XX':
2525
for cmd in self.commands:
26-
if "reset" in dir(cmd):
26+
if 'reset' in dir(cmd):
2727
cmd.reset()
28-
return ""
28+
return ''
2929

3030
cmd = self.commands[data[0]]
3131
return cmd.run(data[1:])

linux/bridge/console.py

Lines changed: 28 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -7,42 +7,45 @@ def __init__(self, port=6571):
77
server = socket(AF_INET, SOCK_STREAM)
88
server.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)
99
server.bind(('127.0.0.1', port))
10-
server.listen(1) # No connection backlog
10+
server.listen(1) # No connection backlog
1111
server.setblocking(0)
1212
self.server = server
1313
self.clients = [ ]
1414
self.clients_sendbuffer = { }
1515
self.sockets = [ server ]
1616

1717
# Data waiting to be transferred to sockets
18-
self.sendbuffer = ""
18+
self.sendbuffer = ''
1919
# Data waiting to be transferred to PacketProcessor
20-
self.recvbuffer = ""
20+
self.recvbuffer = ''
2121

2222
def run(self):
23-
rd, wr, err = select(self.sockets, [], self.sockets, 0)
23+
sockets_to_read_from, sockets_to_write_to, err = select(self.sockets, [], [], 0)
2424

2525
# Accept new connections
26-
if self.server in rd:
26+
if self.server in sockets_to_read_from:
2727
self.accept()
28-
rd.remove(self.server)
28+
sockets_to_read_from.remove(self.server)
2929

3030
# Read from sockets
31-
if len(self.sendbuffer)<1024:
32-
for sock in rd:
31+
if len(self.sendbuffer) < 1024:
32+
for sock in sockets_to_read_from:
3333
self.socket_receive(sock)
3434

3535
# Write buffers to sockets
36-
rd, wr, err = select([], self.clients, [], 0)
37-
for c in wr:
38-
buff = self.clients_sendbuffer[c]
39-
sent = c.send(buff)
40-
self.clients_sendbuffer[c] = buff[sent:]
41-
36+
sockets_to_read_from, sockets_to_write_to, err = select([], self.clients, [], 0)
37+
for client in sockets_to_write_to:
38+
try:
39+
buff = self.clients_sendbuffer[client]
40+
sent = client.send(buff)
41+
self.clients_sendbuffer[client] = buff[sent:]
42+
except:
43+
self.close(client)
44+
4245
# Drop starving clients
43-
for c in self.clients:
44-
if len(self.clients_sendbuffer[c])>8192:
45-
self.close(c)
46+
for client in self.clients:
47+
if len(self.clients_sendbuffer[client]) > 8192:
48+
self.close(client)
4649

4750
def socket_receive(self, client):
4851
chunk = client.recv(1024)
@@ -52,9 +55,9 @@ def socket_receive(self, client):
5255
self.recvbuffer += chunk
5356

5457
# send chunk as echo to all other clients
55-
for c in self.clients:
56-
if c != client:
57-
self.clients_sendbuffer[c] += chunk
58+
for current_client in self.clients:
59+
if current_client != client:
60+
self.clients_sendbuffer[current_client] += chunk
5861

5962
def write(self, data):
6063
# send chunk to all clients
@@ -64,7 +67,7 @@ def write(self, data):
6467
def read(self, maxlen):
6568
if maxlen > len(self.recvbuffer):
6669
res = self.recvbuffer
67-
self.recvbuffer = ""
70+
self.recvbuffer = ''
6871
else:
6972
res = self.recvbuffer[:maxlen]
7073
self.recvbuffer = self.recvbuffer[maxlen:]
@@ -74,7 +77,7 @@ def available(self):
7477
return len(self.recvbuffer)
7578

7679
def is_connected(self):
77-
return len(self.clients)>0
80+
return len(self.clients) > 0
7881

7982
def accept(self):
8083
(client, address) = self.server.accept()
@@ -83,7 +86,7 @@ def accept(self):
8386

8487
self.sockets.append(client)
8588
self.clients.append(client)
86-
self.clients_sendbuffer[client] = ""
89+
self.clients_sendbuffer[client] = ''
8790

8891
def close(self, sock):
8992
sock.close()
@@ -96,7 +99,7 @@ def close(self, sock):
9699
class WRITE_Command:
97100
def run(self, data):
98101
console.write(data)
99-
return ""
102+
return ''
100103

101104
class READ_Command:
102105
def run(self, data):
@@ -120,6 +123,5 @@ def test():
120123
while True:
121124
console.process(1)
122125

123-
if __name__ == "__main__":
126+
if __name__ == '__main__':
124127
test()
125-

linux/bridge/mailbox.py

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ def __init__(self):
1212

1313
def run(self):
1414
json_server.run()
15-
if json_server.available()>0:
15+
if json_server.available() > 0:
1616
try:
1717
self.ext_command(json_server.read())
1818
except:
@@ -23,11 +23,11 @@ def ext_command(self, msg):
2323
return
2424
command = msg['command']
2525

26-
if command=='raw':
26+
if command == 'raw':
2727
self.incoming.append(msg['data'])
2828
return
2929

30-
if command=='get':
30+
if command == 'get':
3131
if msg.has_key('key'):
3232
k = msg['key']
3333
v = self.data_store_get(k)
@@ -36,14 +36,14 @@ def ext_command(self, msg):
3636
json_server.write({ 'response' : 'get', 'value' : self.data_store })
3737
return
3838

39-
if command=='put':
39+
if command == 'put':
4040
k = msg['key']
4141
v = msg['value']
4242
self.data_store_put(k, v)
4343
json_server.write({ 'response' : 'put', 'key' : k, 'value' : v })
4444
return
4545

46-
if command=='delete':
46+
if command == 'delete':
4747
k = msg['key']
4848
v = self.data_store_get(k)
4949
if v:
@@ -69,12 +69,12 @@ def send(self, data):
6969
json_server.write({ 'request' : 'raw', 'data' : data })
7070

7171
def recv(self):
72-
if len(self.incoming)>0:
72+
if len(self.incoming) > 0:
7373
return self.incoming.popleft()
7474
return None
7575

7676
def peek(self):
77-
if len(self.incoming)>0:
77+
if len(self.incoming) > 0:
7878
return self.incoming[0]
7979
else:
8080
return None
@@ -84,7 +84,7 @@ def peek(self):
8484
class SEND_Command:
8585
def run(self, data):
8686
mailbox.send(data)
87-
return ""
87+
return ''
8888

8989
class SEND_JSON_Command:
9090
def run(self, data):
@@ -93,13 +93,13 @@ def run(self, data):
9393
mailbox.send(obj)
9494
except:
9595
mailbox.send(data)
96-
return ""
96+
return ''
9797

9898
class RECV_Command:
9999
def run(self, data):
100100
msg = mailbox.recv()
101101
if msg is None:
102-
return ""
102+
return ''
103103
else:
104104
return msg
105105

@@ -117,7 +117,7 @@ class DATASTORE_GET_Command:
117117
def run(self, data):
118118
res = mailbox.data_store_get(data)
119119
if res is None:
120-
return ""
120+
return ''
121121
else:
122122
return res
123123

linux/bridge/packet.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ def __init__(self, file):
2020
self.file = file
2121

2222
def write(self, data):
23-
while len(data)>0:
23+
while len(data) > 0:
2424
if not self.file is None:
2525
self.file.write(data[0])
2626
self.result = self.result ^ ord(data[0])
@@ -34,14 +34,14 @@ def write_crc(self):
3434

3535
def check(self, crc):
3636
#if self.result != crc:
37-
# print "CRC:" + hex(self.result) + "!" + hex(crc)
37+
# print 'CRC:' + hex(self.result) + '!' + hex(crc)
3838
return self.result == crc
3939

4040

4141

4242
def send(index, msg):
4343
crc = CRC(stdout)
44-
crc.write("\xff") # Packet start
44+
crc.write('\xff') # Packet start
4545
crc.write(chr(index)) # Message No. inside Pipe
4646
l = len(msg)
4747
crc.write(chr(l >> 8)) # Message length
@@ -57,12 +57,12 @@ def __init__(self, reader):
5757

5858
def run(self, data):
5959
if data[0] != 'X':
60-
call(["/usr/bin/blink-start", "100"])
60+
call(['/usr/bin/blink-start', '100'])
6161
return chr(1)
6262
if data[1:4] != '100':
63-
call(["/usr/bin/blink-start", "100"])
63+
call(['/usr/bin/blink-start', '100'])
6464
return chr(2)
65-
call(["/usr/bin/blink-stop"])
65+
call(['/usr/bin/blink-stop'])
6666
return chr(0)
6767

6868
class PacketReader:
@@ -88,7 +88,7 @@ def process(self):
8888
c = self.t_read()
8989
if c is None:
9090
return None
91-
if ord(c)==0xFF:
91+
if ord(c) == 0xFF:
9292
break
9393

9494
# Read index and len
@@ -111,7 +111,7 @@ def process(self):
111111
len_t = (ord(len_hi) << 8) + ord(len_lo)
112112

113113
# Read payload
114-
data = ""
114+
data = ''
115115
for x in range(len_t):
116116
c = self.t_read()
117117
if c is None:
@@ -133,7 +133,7 @@ def process(self):
133133
return None
134134

135135
# Check for reset command
136-
if len(data)==5 and data[0:2]=='XX':
136+
if len(data) == 5 and data[0:2] == 'XX':
137137
self.index = ord(index)
138138

139139
# Check for out-of-order packets

linux/bridge/processes.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ def __init__(self, processes):
9696
self.proc = processes
9797

9898
def run(self, data):
99-
id = self.proc.create(data.split("\xFE"))
99+
id = self.proc.create(data.split('\xFE'))
100100
if id is None:
101101
return chr(1) + chr(0);
102102
return chr(0) + chr(id)
@@ -131,7 +131,7 @@ def __init__(self, processes):
131131
def run(self, data):
132132
id = ord(data[0])
133133
self.proc.clean(id)
134-
return ""
134+
return ''
135135

136136
class READ_OUTPUT_Command:
137137
def __init__(self, processes):
@@ -142,7 +142,7 @@ def run(self, data):
142142
maxlen = ord(data[1])
143143
res = self.proc.read_output(id, maxlen)
144144
if res is None:
145-
return ""
145+
return ''
146146
return res
147147

148148
class AVAILABLE_OUTPUT_Command:
@@ -164,7 +164,7 @@ def run(self, data):
164164
id = ord(data[0])
165165
data = data[1:]
166166
self.proc.write_input(id, data)
167-
return ""
167+
return ''
168168

169169
def init(command_processor):
170170
command_processor.register('R', RUN_Command(processes))

0 commit comments

Comments
 (0)