mirror of
https://github.com/pablorevilla-meshtastic/meshview.git
synced 2026-08-07 09:22:49 +02:00
Add Ruff formatting and pre-commit hooks
Configure Ruff as the code formatter and linter with pre-commit hooks. Applied automatic formatting fixes across the entire codebase including: - Import sorting and organization - Code style consistency (spacing, line breaks, indentation) - String quote normalization - Removal of trailing whitespace and unnecessary blank lines
This commit is contained in:
+17
-14
@@ -1,12 +1,11 @@
|
||||
import asyncio
|
||||
import json
|
||||
import datetime
|
||||
import json
|
||||
import logging
|
||||
|
||||
from sqlalchemy import delete
|
||||
from meshview import mqtt_reader
|
||||
from meshview import mqtt_database
|
||||
from meshview import mqtt_store
|
||||
from meshview import models
|
||||
|
||||
from meshview import models, mqtt_database, mqtt_reader, mqtt_store
|
||||
from meshview.config import CONFIG
|
||||
|
||||
# -------------------------
|
||||
@@ -20,31 +19,32 @@ formatter = logging.Formatter('%(asctime)s [%(levelname)s] %(message)s')
|
||||
file_handler.setFormatter(formatter)
|
||||
cleanup_logger.addHandler(file_handler)
|
||||
|
||||
|
||||
# -------------------------
|
||||
# Helper functions
|
||||
# -------------------------
|
||||
def get_bool(config, section, key, default=False):
|
||||
return str(config.get(section, {}).get(key, default)).lower() in ("1", "true", "yes", "on")
|
||||
|
||||
|
||||
def get_int(config, section, key, default=0):
|
||||
try:
|
||||
return int(config.get(section, {}).get(key, default))
|
||||
except ValueError:
|
||||
return default
|
||||
|
||||
|
||||
# -------------------------
|
||||
# Shared DB lock
|
||||
# -------------------------
|
||||
db_lock = asyncio.Lock()
|
||||
|
||||
|
||||
# -------------------------
|
||||
# Database cleanup using ORM
|
||||
# -------------------------
|
||||
async def daily_cleanup_at(
|
||||
hour: int = 2,
|
||||
minute: int = 0,
|
||||
days_to_keep: int = 14,
|
||||
vacuum_db: bool = True
|
||||
hour: int = 2, minute: int = 0, days_to_keep: int = 14, vacuum_db: bool = True
|
||||
):
|
||||
while True:
|
||||
now = datetime.datetime.now()
|
||||
@@ -56,7 +56,9 @@ async def daily_cleanup_at(
|
||||
await asyncio.sleep(delay)
|
||||
|
||||
# Local-time cutoff as string for SQLite DATETIME comparison
|
||||
cutoff = (datetime.datetime.now() - datetime.timedelta(days=days_to_keep)).strftime("%Y-%m-%d %H:%M:%S")
|
||||
cutoff = (datetime.datetime.now() - datetime.timedelta(days=days_to_keep)).strftime(
|
||||
"%Y-%m-%d %H:%M:%S"
|
||||
)
|
||||
cleanup_logger.info(f"Running cleanup for records older than {cutoff}...")
|
||||
|
||||
try:
|
||||
@@ -110,6 +112,7 @@ async def daily_cleanup_at(
|
||||
except Exception as e:
|
||||
cleanup_logger.error(f"Error during cleanup: {e}")
|
||||
|
||||
|
||||
# -------------------------
|
||||
# MQTT loading
|
||||
# -------------------------
|
||||
@@ -118,7 +121,7 @@ async def load_database_from_mqtt(
|
||||
mqtt_port: int,
|
||||
topics: list,
|
||||
mqtt_user: str | None = None,
|
||||
mqtt_passwd: str | None = None
|
||||
mqtt_passwd: str | None = None,
|
||||
):
|
||||
async for topic, env in mqtt_reader.get_topic_envelopes(
|
||||
mqtt_server, mqtt_port, topics, mqtt_user, mqtt_passwd
|
||||
@@ -126,6 +129,7 @@ async def load_database_from_mqtt(
|
||||
async with db_lock: # Block if cleanup is running
|
||||
await mqtt_store.process_envelope(topic, env)
|
||||
|
||||
|
||||
# -------------------------
|
||||
# Main function
|
||||
# -------------------------
|
||||
@@ -156,12 +160,11 @@ async def main():
|
||||
)
|
||||
|
||||
if cleanup_enabled:
|
||||
tg.create_task(
|
||||
daily_cleanup_at(cleanup_hour, cleanup_minute, cleanup_days, vacuum_db)
|
||||
)
|
||||
tg.create_task(daily_cleanup_at(cleanup_hour, cleanup_minute, cleanup_days, vacuum_db))
|
||||
else:
|
||||
cleanup_logger.info("Daily cleanup is disabled by configuration.")
|
||||
|
||||
|
||||
# -------------------------
|
||||
# Entry point
|
||||
# -------------------------
|
||||
|
||||
Reference in New Issue
Block a user