all: Format with black.

Also activate auto formatting. Bump flake8 and mark black
disagreements in setup.cfg.
This commit is contained in:
Laurens Valk
2022-05-27 16:22:05 +02:00
parent 24f7d7c288
commit bd7806d2d4
60 changed files with 716 additions and 709 deletions
@@ -18,17 +18,17 @@ BDADDR_ANY = ""
def str2ba(string, ba):
"""Convert string to Bluetooth address"""
for i, v in enumerate(string.split(':')):
ba.b[5-i] = int(v, 16)
for i, v in enumerate(string.split(":")):
ba.b[5 - i] = int(v, 16)
def ba2str(ba):
"""Convert Bluetooth address to string"""
string = []
for b in ba.b:
string.append('{:02X}'.format(b))
string.append("{:02X}".format(b))
string.reverse()
return ':'.join(string).upper()
return ":".join(string).upper()
class RFCOMMServer:
@@ -37,6 +37,7 @@ class RFCOMMServer:
This is based on the ``socketserver.SocketServer`` class in the Python
standard library.
"""
request_queue_size = 1
def __init__(self, server_address, RequestHandlerClass):
@@ -88,6 +89,7 @@ class StreamRequestHandler:
This is based on ``socketserver.StreamRequestHandler`` from the Python
standard library.
"""
def __init__(self, request, client_address, server):
self.request = request
self.client_address = client_address
@@ -113,6 +115,7 @@ class ThreadingRFCOMMServer(ThreadingMixIn, RFCOMMServer):
"""Version of :class:`RFCOMMServer` that handles connections in a new
thread.
"""
pass
+33 -19
View File
@@ -5,8 +5,12 @@ from _thread import allocate_lock
from errno import ECONNRESET
from struct import pack, unpack
from .bluetooth import (BDADDR_ANY, ThreadingRFCOMMServer,
ThreadingRFCOMMClient, StreamRequestHandler)
from .bluetooth import (
BDADDR_ANY,
ThreadingRFCOMMServer,
ThreadingRFCOMMClient,
StreamRequestHandler,
)
def resolve(brick):
@@ -99,7 +103,7 @@ class LogicMailbox(Mailbox):
"""
def encode(self, value):
return b'\x01' if value else b'\x00'
return b"\x01" if value else b"\x00"
def decode(self, payload):
return bool(payload[0])
@@ -113,10 +117,10 @@ class NumericMailbox(Mailbox):
"""
def encode(self, value):
return pack('<f', value)
return pack("<f", value)
def decode(self, payload):
return unpack('<f', payload)[0]
return unpack("<f", payload)[0]
class TextMailbox(Mailbox):
@@ -127,10 +131,10 @@ class TextMailbox(Mailbox):
"""
def encode(self, value):
return ('{}\0'.format(value)).encode('utf-8')
return ("{}\0".format(value)).encode("utf-8")
def decode(self, payload):
return payload.decode().strip('\0')
return payload.decode().strip("\0")
# EV3 standard firmware is hard-coded to use channel 1
@@ -155,16 +159,16 @@ class MailboxHandler(StreamRequestHandler):
if ex.args[0] == ECONNRESET:
break
raise
size, = unpack('<H', buf)
(size,) = unpack("<H", buf)
buf = self.rfile.recv(size)
msg_count, cmd_type, cmd, name_size = unpack('<HBBB', buf[0:5])
msg_count, cmd_type, cmd, name_size = unpack("<HBBB", buf[0:5])
if cmd_type != SYSTEM_COMMAND_NO_REPLY:
raise ValueError('Bad message type')
raise ValueError("Bad message type")
if cmd != WRITEMAILBOX:
raise ValueError('Bad command')
mbox = buf[5:5+name_size].decode().strip('\0')
data_size, = unpack('<H', buf[5+name_size:7+name_size])
data = buf[7+name_size:7+name_size+data_size]
raise ValueError("Bad command")
mbox = buf[5 : 5 + name_size].decode().strip("\0")
(data_size,) = unpack("<H", buf[5 + name_size : 7 + name_size])
data = buf[7 + name_size : 7 + name_size + data_size]
with self.server._lock:
self.server._mailboxes[mbox] = data
@@ -216,9 +220,18 @@ class MailboxHandlerMixIn:
mbox_len = len(mbox) + 1
payload_len = len(payload)
send_len = 7 + mbox_len + payload_len
fmt = '<HHBBB{}sH{}s'.format(mbox_len, payload_len)
data = pack(fmt, send_len, 1, SYSTEM_COMMAND_NO_REPLY, WRITEMAILBOX,
mbox_len, mbox.encode('utf-8'), payload_len, payload)
fmt = "<HHBBB{}sH{}s".format(mbox_len, payload_len)
data = pack(
fmt,
send_len,
1,
SYSTEM_COMMAND_NO_REPLY,
WRITEMAILBOX,
mbox_len,
mbox.encode("utf-8"),
payload_len,
payload,
)
with self._lock:
if brick is None:
for client in self._clients.values():
@@ -255,7 +268,8 @@ class BluetoothMailboxServer(MailboxHandlerMixIn, ThreadingRFCOMMServer):
"""
super().__init__()
super(ThreadingRFCOMMServer, self).__init__(
(BDADDR_ANY, EV3_RFCOMM_CHANNEL), MailboxHandler)
(BDADDR_ANY, EV3_RFCOMM_CHANNEL), MailboxHandler
)
def wait_for_connection(self, count=1):
"""Waits for a :class:`BluetoothMailboxClient` on a remote device to
@@ -326,7 +340,7 @@ class BluetoothMailboxClient(MailboxHandlerMixIn):
raise ValueError('no paired devices matching "{}"'.format(brick))
client = MailboxRFCOMMClient(self, addr)
if self._clients.setdefault(addr, client) is not client:
raise ValueError('connection with this address already exists')
raise ValueError("connection with this address already exists")
try:
client.handle_request()
except Exception: