Skip to content

Commit 4a0cb9d

Browse files
authored
Merge pull request #29 from adafruit/pylint-update
Ran black, updated to pylint 2.x
2 parents c01e196 + 668ef26 commit 4a0cb9d

File tree

12 files changed

+346
-191
lines changed

12 files changed

+346
-191
lines changed

.github/workflows/build.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ jobs:
4040
source actions-ci/install.sh
4141
- name: Pip install pylint, black, & Sphinx
4242
run: |
43-
pip install --force-reinstall pylint==1.9.2 black==19.10b0 Sphinx sphinx-rtd-theme
43+
pip install --force-reinstall pylint black==19.10b0 Sphinx sphinx-rtd-theme
4444
- name: Library version
4545
run: git describe --dirty --always --tags
4646
- name: PyLint

adafruit_tinylora/adafruit_tinylora.py

Lines changed: 26 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -169,20 +169,26 @@ def __init__(self, spi, cs, irq, rst, ttn_config, channel=None):
169169
self._modemcfg = None
170170
self.set_datarate("SF7BW125")
171171
# Set regional frequency plan
172+
# pylint: disable=import-outside-toplevel
172173
if "US" in ttn_config.country:
173174
from adafruit_tinylora.ttn_usa import TTN_FREQS
175+
174176
self._frequencies = TTN_FREQS
175177
elif ttn_config.country == "AS":
176178
from adafruit_tinylora.ttn_as import TTN_FREQS
179+
177180
self._frequencies = TTN_FREQS
178181
elif ttn_config.country == "AU":
179182
from adafruit_tinylora.ttn_au import TTN_FREQS
183+
180184
self._frequencies = TTN_FREQS
181185
elif ttn_config.country == "EU":
182186
from adafruit_tinylora.ttn_eu import TTN_FREQS
187+
183188
self._frequencies = TTN_FREQS
184189
else:
185190
raise TypeError("Country Code Incorrect/Unsupported")
191+
# pylint: enable=import-outside-toplevel
186192
# Set Channel Number
187193
self._channel = channel
188194
self._tx_random = randint(0, 7)
@@ -193,24 +199,23 @@ def __init__(self, spi, cs, irq, rst, ttn_config, channel=None):
193199
self.frame_counter = 0
194200
# Set up RFM9x for LoRa Mode
195201
for pair in (
196-
(_REG_OPERATING_MODE, _MODE_SLEEP),
197-
(_REG_OPERATING_MODE, _MODE_LORA),
198-
(_REG_PA_CONFIG, 0xFF),
199-
(_REG_PREAMBLE_DETECT, 0x25),
200-
(_REG_PREAMBLE_MSB, 0x00),
201-
(_REG_PREAMBLE_LSB, 0x08),
202-
(_REG_MODEM_CONFIG, 0x0C),
203-
(_REG_TIMER1_COEF, 0x34),
204-
(_REG_NODE_ADDR, 0x27),
205-
(_REG_IMAGE_CAL, 0x1D),
206-
(_REG_RSSI_CONFIG, 0x80),
207-
(_REG_RSSI_COLLISION, 0x00),
202+
(_REG_OPERATING_MODE, _MODE_SLEEP),
203+
(_REG_OPERATING_MODE, _MODE_LORA),
204+
(_REG_PA_CONFIG, 0xFF),
205+
(_REG_PREAMBLE_DETECT, 0x25),
206+
(_REG_PREAMBLE_MSB, 0x00),
207+
(_REG_PREAMBLE_LSB, 0x08),
208+
(_REG_MODEM_CONFIG, 0x0C),
209+
(_REG_TIMER1_COEF, 0x34),
210+
(_REG_NODE_ADDR, 0x27),
211+
(_REG_IMAGE_CAL, 0x1D),
212+
(_REG_RSSI_CONFIG, 0x80),
213+
(_REG_RSSI_COLLISION, 0x00),
208214
):
209215
self._write_u8(pair[0], pair[1])
210216
# Give the lora object ttn configuration
211217
self._ttn_config = ttn_config
212218

213-
214219
def __enter__(self):
215220
return self
216221

@@ -296,14 +301,14 @@ def send_packet(self, lora_packet, packet_length, timeout):
296301
self._rfm_msb = self._frequencies[self._tx_random][0]
297302
# Set up frequency registers
298303
for pair in (
299-
(_REG_FRF_MSB, self._rfm_msb),
300-
(_REG_FRF_MID, self._rfm_mid),
301-
(_REG_FRF_LSB, self._rfm_lsb),
302-
(_REG_FEI_LSB, self._sf),
303-
(_REG_FEI_MSB, self._bw),
304-
(_REG_MODEM_CONFIG, self._modemcfg),
305-
(_REG_PAYLOAD_LENGTH, packet_length),
306-
(_REG_FIFO_POINTER, _REG_FIFO_BASE_ADDR),
304+
(_REG_FRF_MSB, self._rfm_msb),
305+
(_REG_FRF_MID, self._rfm_mid),
306+
(_REG_FRF_LSB, self._rfm_lsb),
307+
(_REG_FEI_LSB, self._sf),
308+
(_REG_FEI_MSB, self._bw),
309+
(_REG_MODEM_CONFIG, self._modemcfg),
310+
(_REG_PAYLOAD_LENGTH, packet_length),
311+
(_REG_FIFO_POINTER, _REG_FIFO_BASE_ADDR),
307312
):
308313
self._write_u8(pair[0], pair[1])
309314
# fill the FIFO buffer with the LoRa payload

adafruit_tinylora/adafruit_tinylora_encryption.py

Lines changed: 53 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -32,26 +32,29 @@ def xtime(col):
3232
"""
3333
return (((col << 1) ^ 0x1B) & 0xFF) if (col & 0x80) else (col << 1)
3434

35+
3536
# AES S-box
36-
S_BOX = (b'c|w{\xf2ko\xc50\x01g+\xfe\xd7\xabv',
37-
b'\xca\x82\xc9}\xfaYG\xf0\xad\xd4\xa2\xaf\x9c\xa4r\xc0',
38-
b'\xb7\xfd\x93&6?\xf7\xcc4\xa5\xe5\xf1q\xd81\x15',
39-
b"\x04\xc7#\xc3\x18\x96\x05\x9a\x07\x12\x80\xe2\xeb'\xb2u",
40-
b'\t\x83,\x1a\x1bnZ\xa0R;\xd6\xb3)\xe3/\x84',
41-
b'S\xd1\x00\xed \xfc\xb1[j\xcb\xbe9JLX\xcf',
42-
b'\xd0\xef\xaa\xfbCM3\x85E\xf9\x02\x7fP<\x9f\xa8',
43-
b'Q\xa3@\x8f\x92\x9d8\xf5\xbc\xb6\xda!\x10\xff\xf3\xd2',
44-
b'\xcd\x0c\x13\xec_\x97D\x17\xc4\xa7~=d]\x19s',
45-
b'`\x81O\xdc"*\x90\x88F\xee\xb8\x14\xde^\x0b\xdb',
46-
b'\xe02:\nI\x06$\\\xc2\xd3\xacb\x91\x95\xe4y',
47-
b'\xe7\xc87m\x8d\xd5N\xa9lV\xf4\xeaez\xae\x08',
48-
b'\xbax%.\x1c\xa6\xb4\xc6\xe8\xddt\x1fK\xbd\x8b\x8a',
49-
b'p>\xb5fH\x03\xf6\x0ea5W\xb9\x86\xc1\x1d\x9e',
50-
b'\xe1\xf8\x98\x11i\xd9\x8e\x94\x9b\x1e\x87\xe9\xceU(\xdf',
51-
b'\x8c\xa1\x89\r\xbf\xe6BhA\x99-\x0f\xb0T\xbb\x16')
37+
S_BOX = (
38+
b"c|w{\xf2ko\xc50\x01g+\xfe\xd7\xabv",
39+
b"\xca\x82\xc9}\xfaYG\xf0\xad\xd4\xa2\xaf\x9c\xa4r\xc0",
40+
b"\xb7\xfd\x93&6?\xf7\xcc4\xa5\xe5\xf1q\xd81\x15",
41+
b"\x04\xc7#\xc3\x18\x96\x05\x9a\x07\x12\x80\xe2\xeb'\xb2u",
42+
b"\t\x83,\x1a\x1bnZ\xa0R;\xd6\xb3)\xe3/\x84",
43+
b"S\xd1\x00\xed \xfc\xb1[j\xcb\xbe9JLX\xcf",
44+
b"\xd0\xef\xaa\xfbCM3\x85E\xf9\x02\x7fP<\x9f\xa8",
45+
b"Q\xa3@\x8f\x92\x9d8\xf5\xbc\xb6\xda!\x10\xff\xf3\xd2",
46+
b"\xcd\x0c\x13\xec_\x97D\x17\xc4\xa7~=d]\x19s",
47+
b'`\x81O\xdc"*\x90\x88F\xee\xb8\x14\xde^\x0b\xdb',
48+
b"\xe02:\nI\x06$\\\xc2\xd3\xacb\x91\x95\xe4y",
49+
b"\xe7\xc87m\x8d\xd5N\xa9lV\xf4\xeaez\xae\x08",
50+
b"\xbax%.\x1c\xa6\xb4\xc6\xe8\xddt\x1fK\xbd\x8b\x8a",
51+
b"p>\xb5fH\x03\xf6\x0ea5W\xb9\x86\xc1\x1d\x9e",
52+
b"\xe1\xf8\x98\x11i\xd9\x8e\x94\x9b\x1e\x87\xe9\xceU(\xdf",
53+
b"\x8c\xa1\x89\r\xbf\xe6BhA\x99-\x0f\xb0T\xbb\x16",
54+
)
5255

5356

54-
class AES():
57+
class AES:
5558
"""TinyLoRA AES Implementation
5659
Functions in this implementation are from and/or derived from AES-Python
5760
(https://github.com/bozhu/AES-Python) and TinyLoRa ()
@@ -96,8 +99,8 @@ def encrypt_payload(self, data):
9699
block_a[8] = self._device_address[1]
97100
block_a[9] = self._device_address[0]
98101
# block from frame counter
99-
block_a[10] = (self.frame_counter & 0x00FF)
100-
block_a[11] = ((self.frame_counter >> 8) & 0x00FF)
102+
block_a[10] = self.frame_counter & 0x00FF
103+
block_a[11] = (self.frame_counter >> 8) & 0x00FF
101104
block_a[12] = 0x00
102105
block_a[13] = 0x00
103106
block_a[14] = 0x00
@@ -124,10 +127,12 @@ def _aes_encrypt(self, data, key):
124127
:param bytearray data: Data array.
125128
:param bytearray key: Round Key Array.
126129
"""
127-
state = [['0', '0', '0', '0'],
128-
['0', '0', '0', '0'],
129-
['0', '0', '0', '0'],
130-
['0', '0', '0', '0']]
130+
state = [
131+
["0", "0", "0", "0"],
132+
["0", "0", "0", "0"],
133+
["0", "0", "0", "0"],
134+
["0", "0", "0", "0"],
135+
]
131136
# Copy Data to State Array for manipulation
132137
for col in range(4):
133138
for row in range(4):
@@ -169,9 +174,9 @@ def _aes_calculate_key(self, num_round, round_key):
169174
while num_round != 1:
170175
b = round_const & 0x80
171176
round_const <<= 1
172-
round_const &= 0xff
177+
round_const &= 0xFF
173178
if b == 0x80:
174-
round_const ^= 0x1b
179+
round_const ^= 0x1B
175180
num_round -= 1
176181
# Calculate first temp
177182
tmp_arr[0] = self._aes_sub_byte(round_key[12 + 1])
@@ -202,8 +207,8 @@ def _aes_sub_byte(sub_byte):
202207
from the AES S_BOX.
203208
:param byte sub_byte: byte to be replaced with S_BOX byte.
204209
"""
205-
row = ((sub_byte >> 4) & 0x0F)
206-
col = (sub_byte & 0x0F)
210+
row = (sub_byte >> 4) & 0x0F
211+
col = sub_byte & 0x0F
207212
return S_BOX[row][col]
208213

209214
def _aes_sub_bytes(self, state):
@@ -238,9 +243,24 @@ def _aes_shift_rows(arr):
238243
"""AES ShiftRows Step: State array's bytes shifted to the left.
239244
:param bytearray state: State array.
240245
"""
241-
arr[0][1], arr[1][1], arr[2][1], arr[3][1] = arr[1][1], arr[2][1], arr[3][1], arr[0][1]
242-
arr[0][2], arr[1][2], arr[2][2], arr[3][2] = arr[2][2], arr[3][2], arr[0][2], arr[1][2]
243-
arr[0][3], arr[1][3], arr[2][3], arr[3][3] = arr[3][3], arr[0][3], arr[1][3], arr[2][3]
246+
arr[0][1], arr[1][1], arr[2][1], arr[3][1] = (
247+
arr[1][1],
248+
arr[2][1],
249+
arr[3][1],
250+
arr[0][1],
251+
)
252+
arr[0][2], arr[1][2], arr[2][2], arr[3][2] = (
253+
arr[2][2],
254+
arr[3][2],
255+
arr[0][2],
256+
arr[1][2],
257+
)
258+
arr[0][3], arr[1][3], arr[2][3], arr[3][3] = (
259+
arr[3][3],
260+
arr[0][3],
261+
arr[1][3],
262+
arr[2][3],
263+
)
244264

245265
def calculate_mic(self, lora_packet, lora_packet_length, mic):
246266
"""Calculates the validity of data messages, generates a message integrity check bytearray.
@@ -255,8 +275,8 @@ def calculate_mic(self, lora_packet, lora_packet_length, mic):
255275
block_b[7] = self._device_address[2]
256276
block_b[8] = self._device_address[1]
257277
block_b[9] = self._device_address[0]
258-
block_b[10] = (self.frame_counter & 0x00FF)
259-
block_b[11] = ((self.frame_counter >> 8) & 0x00FF)
278+
block_b[10] = self.frame_counter & 0x00FF
279+
block_b[11] = (self.frame_counter >> 8) & 0x00FF
260280
block_b[15] = lora_packet_length
261281
# calculate num. of blocks and blocksz of last block
262282
num_blocks = lora_packet_length // 16
@@ -354,7 +374,7 @@ def _shift_left(data):
354374
else:
355375
overflow = 0
356376
# shift 1b left
357-
data[i] = ((data[i] << 1) + overflow)&0xff
377+
data[i] = ((data[i] << 1) + overflow) & 0xFF
358378

359379
@staticmethod
360380
def _xor_data(new_data, old_data):

adafruit_tinylora/ttn_as.py

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,13 @@
2525
AS920 The Things Network Frequency Plans
2626
* Author(s): Brent Rubell
2727
"""
28-
TTN_FREQS = {0: (0xe6, 0xCC, 0xF4), # 868.1 MHz
29-
1: (0xe6, 0xD9, 0xC0), # 868.3 MHz
30-
2: (0xe6, 0x8C, 0xF3), # 863.5 MHz
31-
3: (0xe6, 0x99, 0xC0), # 867.1 MHz
32-
4: (0xe6, 0xA6, 0x8D), # 867.3 MHz
33-
5: (0xe6, 0xB3, 0x5A), # 867.5 MHz
34-
6: (0xe6, 0xC0, 0x27), # 867.7 MHz
35-
7: (0xe6, 0x80, 0x27)} # 867.9 MHz
28+
TTN_FREQS = {
29+
0: (0xE6, 0xCC, 0xF4), # 868.1 MHz
30+
1: (0xE6, 0xD9, 0xC0), # 868.3 MHz
31+
2: (0xE6, 0x8C, 0xF3), # 863.5 MHz
32+
3: (0xE6, 0x99, 0xC0), # 867.1 MHz
33+
4: (0xE6, 0xA6, 0x8D), # 867.3 MHz
34+
5: (0xE6, 0xB3, 0x5A), # 867.5 MHz
35+
6: (0xE6, 0xC0, 0x27), # 867.7 MHz
36+
7: (0xE6, 0x80, 0x27),
37+
} # 867.9 MHz

adafruit_tinylora/ttn_au.py

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,13 @@
2525
The Things Network Frequency Plans - AU915
2626
* Author(s): Brent Rubell
2727
"""
28-
TTN_FREQS = {0: (0xe5, 0x33, 0x5a), # 916.8 MHz
29-
1: (0xe5, 0x40, 0x26), # 917.0 MHz
30-
2: (0xe5, 0x4c, 0xf3), # 917.2 MHz
31-
3: (0xe5, 0x59, 0xC0), # 917.4 MHz
32-
4: (0xe5, 0x66, 0x8D), # 917.6 MHz
33-
5: (0xe5, 0x73, 0x5A), # 917.8 MHz
34-
6: (0xe5, 0x80, 0x27), # 918.0 MHz
35-
7: (0xe5, 0x8c, 0xf3)} # 918.2 MHz
28+
TTN_FREQS = {
29+
0: (0xE5, 0x33, 0x5A), # 916.8 MHz
30+
1: (0xE5, 0x40, 0x26), # 917.0 MHz
31+
2: (0xE5, 0x4C, 0xF3), # 917.2 MHz
32+
3: (0xE5, 0x59, 0xC0), # 917.4 MHz
33+
4: (0xE5, 0x66, 0x8D), # 917.6 MHz
34+
5: (0xE5, 0x73, 0x5A), # 917.8 MHz
35+
6: (0xE5, 0x80, 0x27), # 918.0 MHz
36+
7: (0xE5, 0x8C, 0xF3),
37+
} # 918.2 MHz

adafruit_tinylora/ttn_eu.py

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,13 @@
2525
The Things Network Frequency Plans - EU863
2626
* Author(s): Brent Rubell
2727
"""
28-
TTN_FREQS = {0: (0xd9, 0x06, 0x8b), # 868.1 MHz
29-
1: (0xd9, 0x13, 0x58), # 868.3 MHz
30-
2: (0xd9, 0x20, 0x24), # 868.5 MHz
31-
3: (0xd8, 0xc6, 0x8b), # 867.1 MHz
32-
4: (0xd8, 0xd3, 0x58), # 867.3 MHz
33-
5: (0xd8, 0xe0, 0x24), # 867.5 MHz
34-
6: (0xd8, 0xec, 0xf1), # 867.7 MHz
35-
7: (0xd8, 0xf9, 0xbe)} # 867.9 MHz
28+
TTN_FREQS = {
29+
0: (0xD9, 0x06, 0x8B), # 868.1 MHz
30+
1: (0xD9, 0x13, 0x58), # 868.3 MHz
31+
2: (0xD9, 0x20, 0x24), # 868.5 MHz
32+
3: (0xD8, 0xC6, 0x8B), # 867.1 MHz
33+
4: (0xD8, 0xD3, 0x58), # 867.3 MHz
34+
5: (0xD8, 0xE0, 0x24), # 867.5 MHz
35+
6: (0xD8, 0xEC, 0xF1), # 867.7 MHz
36+
7: (0xD8, 0xF9, 0xBE),
37+
} # 867.9 MHz

adafruit_tinylora/ttn_usa.py

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,13 @@
2525
The Things Network Frequency Plans - US902
2626
* Author(s): Brent Rubell
2727
"""
28-
TTN_FREQS = {0: (0xE1, 0xF9, 0xC0), # 903.9 MHz
29-
1: (0xE2, 0x06, 0x8C), # 904.1 MHz
30-
2: (0xE2, 0x13, 0x20), # 904.3 MHz
31-
3: (0xE2, 0x20, 0x26), # 904.5 MHz
32-
4: (0xE2, 0x2C, 0xF3), # 904.7 MHz
33-
5: (0xE2, 0x39, 0xc0), # 904.9 MHz
34-
6: (0xE2, 0x46, 0x8c), # 905.1 MHz
35-
7: (0xE2, 0x53, 0x59)} # 905.3 MHz
28+
TTN_FREQS = {
29+
0: (0xE1, 0xF9, 0xC0), # 903.9 MHz
30+
1: (0xE2, 0x06, 0x8C), # 904.1 MHz
31+
2: (0xE2, 0x13, 0x20), # 904.3 MHz
32+
3: (0xE2, 0x20, 0x26), # 904.5 MHz
33+
4: (0xE2, 0x2C, 0xF3), # 904.7 MHz
34+
5: (0xE2, 0x39, 0xC0), # 904.9 MHz
35+
6: (0xE2, 0x46, 0x8C), # 905.1 MHz
36+
7: (0xE2, 0x53, 0x59),
37+
} # 905.3 MHz

0 commit comments

Comments
 (0)