style: apply ruff-format to entire codebase

First-time run of ruff-format via pre-commit hook normalises quote
style, trailing commas, and whitespace across 188 Python files.
No logic changes.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
James Smith
2026-07-05 14:48:11 +01:00
parent 82e64104fe
commit 96172ca593
189 changed files with 19883 additions and 19552 deletions
+10 -13
View File
@@ -21,7 +21,7 @@ from utils.logging import get_logger
from utils.process import register_process, safe_terminate, unregister_process
from utils.waterfall_fft import cu8_to_complex
logger = get_logger('intercept.ground_station.fm_demod')
logger = get_logger("intercept.ground_station.fm_demod")
AUDIO_RATE = 48_000 # Hz — standard rate for direwolf / multimon-ng
@@ -33,7 +33,7 @@ class FMDemodConsumer:
self,
decoder_cmd: list[str],
*,
modulation: str = 'fm',
modulation: str = "fm",
on_decoded: Callable[[str], None] | None = None,
):
"""
@@ -104,10 +104,9 @@ class FMDemodConsumer:
def _start_proc(self) -> None:
import shutil
if not shutil.which(self._decoder_cmd[0]):
logger.warning(
f"FMDemodConsumer: decoder '{self._decoder_cmd[0]}' not found — disabled"
)
logger.warning(f"FMDemodConsumer: decoder '{self._decoder_cmd[0]}' not found — disabled")
return
try:
self._proc = subprocess.Popen(
@@ -117,9 +116,7 @@ class FMDemodConsumer:
stderr=subprocess.DEVNULL,
)
register_process(self._proc)
self._stdout_thread = threading.Thread(
target=self._read_stdout, daemon=True, name='fm-demod-stdout'
)
self._stdout_thread = threading.Thread(target=self._read_stdout, daemon=True, name="fm-demod-stdout")
self._stdout_thread.start()
except Exception as e:
logger.error(f"FMDemodConsumer: failed to start decoder: {e}")
@@ -130,7 +127,7 @@ class FMDemodConsumer:
assert self._proc.stdout is not None
try:
for line in self._proc.stdout:
decoded = line.decode('utf-8', errors='replace').rstrip()
decoded = line.decode("utf-8", errors="replace").rstrip()
if decoded and self._on_decoded:
try:
self._on_decoded(decoded)
@@ -186,14 +183,14 @@ def _demodulate(
if shifted.size < 16:
return None, next_phase
if mod == 'fm':
if mod == "fm":
audio = np.angle(shifted[1:] * np.conj(shifted[:-1])).astype(np.float32)
elif mod == 'am':
elif mod == "am":
envelope = np.abs(shifted).astype(np.float32)
audio = envelope - float(np.mean(envelope))
elif mod == 'usb':
elif mod == "usb":
audio = np.real(shifted).astype(np.float32)
elif mod == 'lsb':
elif mod == "lsb":
audio = -np.real(shifted).astype(np.float32)
else:
audio = np.real(shifted).astype(np.float32)
@@ -23,9 +23,9 @@ import numpy as np
from utils.logging import get_logger
from utils.process import register_process, safe_terminate, unregister_process
logger = get_logger('intercept.ground_station.gr_satellites')
logger = get_logger("intercept.ground_station.gr_satellites")
GR_SATELLITES_BIN = 'gr_satellites'
GR_SATELLITES_BIN = "gr_satellites"
class GrSatConsumer:
@@ -106,10 +106,11 @@ class GrSatConsumer:
cmd = [
GR_SATELLITES_BIN,
self._satellite_name,
'--samplerate', str(sample_rate),
'--iq',
'--json',
'-',
"--samplerate",
str(sample_rate),
"--iq",
"--json",
"-",
]
try:
self._proc = subprocess.Popen(
@@ -124,7 +125,7 @@ class GrSatConsumer:
target=self._read_stdout,
args=(_json,),
daemon=True,
name='gr-sat-stdout',
name="gr-sat-stdout",
)
self._stdout_thread.start()
logger.info(f"GrSatConsumer started for '{self._satellite_name}'")
@@ -138,14 +139,14 @@ class GrSatConsumer:
assert self._proc.stdout is not None
try:
for line in self._proc.stdout:
text = line.decode('utf-8', errors='replace').rstrip()
text = line.decode("utf-8", errors="replace").rstrip()
if not text:
continue
if self._on_decoded:
try:
data = _json.loads(text)
except _json.JSONDecodeError:
data = {'raw': text}
data = {"raw": text}
try:
self._on_decoded(data)
except Exception as e:
@@ -5,7 +5,7 @@ from __future__ import annotations
from utils.logging import get_logger
from utils.sigmf import SigMFMetadata, SigMFWriter
logger = get_logger('intercept.ground_station.sigmf_consumer')
logger = get_logger("intercept.ground_station.sigmf_consumer")
class SigMFConsumer:
+7 -9
View File
@@ -20,7 +20,7 @@ from utils.waterfall_fft import (
quantize_to_uint8,
)
logger = get_logger('intercept.ground_station.waterfall_consumer')
logger = get_logger("intercept.ground_station.waterfall_consumer")
FFT_SIZE = 1024
AVG_COUNT = 4
@@ -52,7 +52,7 @@ class WaterfallConsumer:
self._start_freq = 0.0
self._end_freq = 0.0
self._sample_rate = 0
self._buffer = b''
self._buffer = b""
self._required_bytes = 0
self._frame_interval = 1.0 / max(1, fps)
self._last_frame_time = 0.0
@@ -80,7 +80,7 @@ class WaterfallConsumer:
)
self._required_bytes = required_samples * 2 # 1 byte I + 1 byte Q
self._frame_interval = 1.0 / max(1, self._fps)
self._buffer = b''
self._buffer = b""
self._last_frame_time = 0.0
def on_chunk(self, raw: bytes) -> None:
@@ -91,15 +91,13 @@ class WaterfallConsumer:
if len(self._buffer) < self._required_bytes:
return
chunk = self._buffer[-self._required_bytes:]
self._buffer = b''
chunk = self._buffer[-self._required_bytes :]
self._buffer = b""
self._last_frame_time = now
try:
samples = cu8_to_complex(chunk)
power_db = compute_power_spectrum(
samples, fft_size=self._fft_size, avg_count=self._avg_count
)
power_db = compute_power_spectrum(samples, fft_size=self._fft_size, avg_count=self._avg_count)
quantized = quantize_to_uint8(power_db, db_min=self._db_min, db_max=self._db_max)
frame = build_binary_frame(self._start_freq, self._end_freq, quantized)
except Exception as e:
@@ -118,4 +116,4 @@ class WaterfallConsumer:
pass
def on_stop(self) -> None:
self._buffer = b''
self._buffer = b""