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
+143 -127
View File
@@ -27,98 +27,109 @@ running_modes: set[str] = set()
start_time = time.time()
agent_name = "mock-agent-1"
# Simulated data generators
def generate_aircraft() -> list[dict]:
"""Generate fake ADS-B aircraft data."""
aircraft = []
for _ in range(random.randint(3, 10)):
icao = ''.join(random.choices(string.hexdigits.upper()[:6], k=6))
callsign = random.choice(['UAL', 'DAL', 'AAL', 'SWA', 'JBU']) + str(random.randint(100, 9999))
aircraft.append({
'icao': icao,
'callsign': callsign,
'altitude': random.randint(5000, 45000),
'speed': random.randint(200, 550),
'heading': random.randint(0, 359),
'lat': round(40.0 + random.uniform(-2, 2), 4),
'lon': round(-74.0 + random.uniform(-2, 2), 4),
'vertical_rate': random.randint(-2000, 2000),
'squawk': str(random.randint(1000, 7777)),
'last_seen': datetime.now(timezone.utc).isoformat()
})
icao = "".join(random.choices(string.hexdigits.upper()[:6], k=6))
callsign = random.choice(["UAL", "DAL", "AAL", "SWA", "JBU"]) + str(random.randint(100, 9999))
aircraft.append(
{
"icao": icao,
"callsign": callsign,
"altitude": random.randint(5000, 45000),
"speed": random.randint(200, 550),
"heading": random.randint(0, 359),
"lat": round(40.0 + random.uniform(-2, 2), 4),
"lon": round(-74.0 + random.uniform(-2, 2), 4),
"vertical_rate": random.randint(-2000, 2000),
"squawk": str(random.randint(1000, 7777)),
"last_seen": datetime.now(timezone.utc).isoformat(),
}
)
return aircraft
def generate_sensors() -> list[dict]:
"""Generate fake 433MHz sensor data."""
sensors = []
models = ['Acurite-Tower', 'Oregon-THGR122N', 'LaCrosse-TX141W', 'Ambient-F007TH']
models = ["Acurite-Tower", "Oregon-THGR122N", "LaCrosse-TX141W", "Ambient-F007TH"]
for _i in range(random.randint(2, 5)):
sensors.append({
'time': datetime.now(timezone.utc).isoformat(),
'model': random.choice(models),
'id': random.randint(1, 255),
'channel': random.randint(1, 3),
'temperature_C': round(random.uniform(-10, 35), 1),
'humidity': random.randint(20, 95),
'battery_ok': random.choice([0, 1])
})
sensors.append(
{
"time": datetime.now(timezone.utc).isoformat(),
"model": random.choice(models),
"id": random.randint(1, 255),
"channel": random.randint(1, 3),
"temperature_C": round(random.uniform(-10, 35), 1),
"humidity": random.randint(20, 95),
"battery_ok": random.choice([0, 1]),
}
)
return sensors
def generate_wifi_networks() -> list[dict]:
"""Generate fake WiFi network data."""
networks = []
ssids = ['HomeNetwork', 'Linksys', 'NETGEAR', 'xfinitywifi', 'ATT-WIFI', 'CoffeeShop-Guest']
ssids = ["HomeNetwork", "Linksys", "NETGEAR", "xfinitywifi", "ATT-WIFI", "CoffeeShop-Guest"]
for ssid in random.sample(ssids, random.randint(3, 6)):
bssid = ':'.join([f'{random.randint(0, 255):02X}' for _ in range(6)])
networks.append({
'ssid': ssid,
'bssid': bssid,
'channel': random.choice([1, 6, 11, 36, 40, 44, 48]),
'signal': random.randint(-80, -30),
'encryption': random.choice(['WPA2', 'WPA3', 'WEP', 'Open']),
'clients': random.randint(0, 10),
'last_seen': datetime.now(timezone.utc).isoformat()
})
bssid = ":".join([f"{random.randint(0, 255):02X}" for _ in range(6)])
networks.append(
{
"ssid": ssid,
"bssid": bssid,
"channel": random.choice([1, 6, 11, 36, 40, 44, 48]),
"signal": random.randint(-80, -30),
"encryption": random.choice(["WPA2", "WPA3", "WEP", "Open"]),
"clients": random.randint(0, 10),
"last_seen": datetime.now(timezone.utc).isoformat(),
}
)
return networks
def generate_bluetooth_devices() -> list[dict]:
"""Generate fake Bluetooth device data."""
devices = []
names = ['iPhone', 'Galaxy S21', 'AirPods', 'Tile Tracker', 'Fitbit', 'Unknown']
names = ["iPhone", "Galaxy S21", "AirPods", "Tile Tracker", "Fitbit", "Unknown"]
for _ in range(random.randint(2, 8)):
mac = ':'.join([f'{random.randint(0, 255):02X}' for _ in range(6)])
devices.append({
'address': mac,
'name': random.choice(names),
'rssi': random.randint(-90, -40),
'type': random.choice(['LE', 'Classic', 'Dual']),
'manufacturer': random.choice(['Apple', 'Samsung', 'Unknown']),
'last_seen': datetime.now(timezone.utc).isoformat()
})
mac = ":".join([f"{random.randint(0, 255):02X}" for _ in range(6)])
devices.append(
{
"address": mac,
"name": random.choice(names),
"rssi": random.randint(-90, -40),
"type": random.choice(["LE", "Classic", "Dual"]),
"manufacturer": random.choice(["Apple", "Samsung", "Unknown"]),
"last_seen": datetime.now(timezone.utc).isoformat(),
}
)
return devices
def generate_vessels() -> list[dict]:
"""Generate fake AIS vessel data."""
vessels = []
vessel_names = ['EVERGREEN', 'MAERSK WINNER', 'OOCL HONG KONG', 'MSC GULSUN', 'CMA CGM MARCO POLO']
vessel_names = ["EVERGREEN", "MAERSK WINNER", "OOCL HONG KONG", "MSC GULSUN", "CMA CGM MARCO POLO"]
for name in random.sample(vessel_names, random.randint(2, 4)):
mmsi = str(random.randint(200000000, 800000000))
vessels.append({
'mmsi': mmsi,
'name': name,
'callsign': ''.join(random.choices(string.ascii_uppercase, k=5)),
'ship_type': random.choice(['Cargo', 'Tanker', 'Passenger', 'Fishing']),
'lat': round(40.5 + random.uniform(-0.5, 0.5), 4),
'lon': round(-73.9 + random.uniform(-0.5, 0.5), 4),
'speed': round(random.uniform(0, 25), 1),
'course': random.randint(0, 359),
'destination': random.choice(['NEW YORK', 'NEWARK', 'BALTIMORE', 'BOSTON']),
'last_seen': datetime.now(timezone.utc).isoformat()
})
vessels.append(
{
"mmsi": mmsi,
"name": name,
"callsign": "".join(random.choices(string.ascii_uppercase, k=5)),
"ship_type": random.choice(["Cargo", "Tanker", "Passenger", "Fishing"]),
"lat": round(40.5 + random.uniform(-0.5, 0.5), 4),
"lon": round(-73.9 + random.uniform(-0.5, 0.5), 4),
"speed": round(random.uniform(0, 25), 1),
"course": random.randint(0, 359),
"destination": random.choice(["NEW YORK", "NEWARK", "BALTIMORE", "BOSTON"]),
"last_seen": datetime.now(timezone.utc).isoformat(),
}
)
return vessels
@@ -128,15 +139,15 @@ data_snapshots: dict[str, list] = {}
def update_data_snapshot(mode: str):
"""Update data snapshot for a mode."""
if mode == 'adsb':
if mode == "adsb":
data_snapshots[mode] = generate_aircraft()
elif mode == 'sensor':
elif mode == "sensor":
data_snapshots[mode] = generate_sensors()
elif mode == 'wifi':
elif mode == "wifi":
data_snapshots[mode] = generate_wifi_networks()
elif mode == 'bluetooth':
elif mode == "bluetooth":
data_snapshots[mode] = generate_bluetooth_devices()
elif mode == 'ais':
elif mode == "ais":
data_snapshots[mode] = generate_vessels()
else:
data_snapshots[mode] = []
@@ -157,67 +168,72 @@ def data_generator_loop(mode: str, stop_event: threading.Event):
# Routes
# =============================================================================
@app.route('/capabilities')
@app.route("/capabilities")
def capabilities():
"""Return mock capabilities."""
return jsonify({
'modes': {
'pager': True,
'sensor': True,
'adsb': True,
'ais': True,
'acars': True,
'aprs': True,
'wifi': True,
'bluetooth': True,
'dsc': True,
'rtlamr': True,
'tscm': True,
'satellite': True,
'listening_post': True
},
'devices': [
{'index': 0, 'name': 'Mock RTL-SDR', 'type': 'rtlsdr', 'serial': 'MOCK001'}
],
'agent_version': '1.0.0-mock'
})
return jsonify(
{
"modes": {
"pager": True,
"sensor": True,
"adsb": True,
"ais": True,
"acars": True,
"aprs": True,
"wifi": True,
"bluetooth": True,
"dsc": True,
"rtlamr": True,
"tscm": True,
"satellite": True,
"listening_post": True,
},
"devices": [{"index": 0, "name": "Mock RTL-SDR", "type": "rtlsdr", "serial": "MOCK001"}],
"agent_version": "1.0.0-mock",
}
)
@app.route('/status')
@app.route("/status")
def status():
"""Return agent status."""
return jsonify({
'running_modes': list(running_modes),
'uptime': time.time() - start_time,
'push_enabled': False,
'push_connected': False
})
return jsonify(
{
"running_modes": list(running_modes),
"uptime": time.time() - start_time,
"push_enabled": False,
"push_connected": False,
}
)
@app.route('/health')
@app.route("/health")
def health():
"""Health check."""
return jsonify({'status': 'healthy', 'version': '1.0.0-mock'})
return jsonify({"status": "healthy", "version": "1.0.0-mock"})
@app.route('/config', methods=['GET', 'POST'])
@app.route("/config", methods=["GET", "POST"])
def config():
"""Config endpoint."""
if request.method == 'POST':
return jsonify({'status': 'updated', 'config': {}})
return jsonify({
'name': agent_name,
'port': request.environ.get('SERVER_PORT', 8021),
'push_enabled': False,
'modes_enabled': dict.fromkeys(['pager', 'sensor', 'adsb', 'ais', 'wifi', 'bluetooth'], True)
})
if request.method == "POST":
return jsonify({"status": "updated", "config": {}})
return jsonify(
{
"name": agent_name,
"port": request.environ.get("SERVER_PORT", 8021),
"push_enabled": False,
"modes_enabled": dict.fromkeys(["pager", "sensor", "adsb", "ais", "wifi", "bluetooth"], True),
}
)
@app.route('/<mode>/start', methods=['POST'])
@app.route("/<mode>/start", methods=["POST"])
def start_mode(mode: str):
"""Start a mode."""
if mode in running_modes:
return jsonify({'status': 'error', 'message': f'{mode} already running'}), 409
return jsonify({"status": "error", "message": f"{mode} already running"}), 409
running_modes.add(mode)
@@ -231,14 +247,14 @@ def start_mode(mode: str):
# Generate initial data
update_data_snapshot(mode)
return jsonify({'status': 'started', 'mode': mode})
return jsonify({"status": "started", "mode": mode})
@app.route('/<mode>/stop', methods=['POST'])
@app.route("/<mode>/stop", methods=["POST"])
def stop_mode(mode: str):
"""Stop a mode."""
if mode not in running_modes:
return jsonify({'status': 'not_running'})
return jsonify({"status": "not_running"})
running_modes.discard(mode)
@@ -251,44 +267,44 @@ def stop_mode(mode: str):
if mode in data_snapshots:
del data_snapshots[mode]
return jsonify({'status': 'stopped', 'mode': mode})
return jsonify({"status": "stopped", "mode": mode})
@app.route('/<mode>/status')
@app.route("/<mode>/status")
def mode_status(mode: str):
"""Get mode status."""
return jsonify({
'running': mode in running_modes,
'data_count': len(data_snapshots.get(mode, []))
})
return jsonify({"running": mode in running_modes, "data_count": len(data_snapshots.get(mode, []))})
@app.route('/<mode>/data')
@app.route("/<mode>/data")
def mode_data(mode: str):
"""Get current data snapshot."""
# Generate fresh data if mode is running but no snapshot exists
if mode in running_modes and mode not in data_snapshots:
update_data_snapshot(mode)
return jsonify({
'mode': mode,
'data': data_snapshots.get(mode, []),
'timestamp': datetime.now(timezone.utc).isoformat(),
'agent_name': agent_name
})
return jsonify(
{
"mode": mode,
"data": data_snapshots.get(mode, []),
"timestamp": datetime.now(timezone.utc).isoformat(),
"agent_name": agent_name,
}
)
# =============================================================================
# Main
# =============================================================================
def main():
global agent_name, start_time
parser = argparse.ArgumentParser(description='Mock Intercept Agent')
parser.add_argument('--port', '-p', type=int, default=8021, help='Port (default: 8021)')
parser.add_argument('--name', '-n', default='mock-agent-1', help='Agent name')
parser.add_argument('--debug', action='store_true', help='Enable debug mode')
parser = argparse.ArgumentParser(description="Mock Intercept Agent")
parser.add_argument("--port", "-p", type=int, default=8021, help="Port (default: 8021)")
parser.add_argument("--name", "-n", default="mock-agent-1", help="Agent name")
parser.add_argument("--debug", action="store_true", help="Enable debug mode")
args = parser.parse_args()
agent_name = args.name
@@ -309,8 +325,8 @@ def main():
print(" Press Ctrl+C to stop")
print()
app.run(host='0.0.0.0', port=args.port, debug=args.debug)
app.run(host="0.0.0.0", port=args.port, debug=args.debug)
if __name__ == '__main__':
if __name__ == "__main__":
main()