fix: ruff findings

This commit is contained in:
soubarna
2026-10-05 17:28:15 +05:30
parent 2c93874799
commit 3355c20202
44 changed files with 117 additions and 213 deletions
+1 -1
View File
@@ -27,7 +27,7 @@ if VENV_DIR.exists():
if site_packages:
sys.path.insert(0, str(site_packages))
from fenris.collector import run_collection
from fenris.collector import run_collection # noqa: E402 -- must follow the sys.path bootstrap above
CONFIG_PATH = Path("/etc/fenris/fenris.conf")
+1 -1
View File
@@ -9,7 +9,7 @@ usage-habit classification is known rather than unknown (§5.3).
"""
import sqlite3
from dataclasses import dataclass
from datetime import datetime, timedelta, timezone
from datetime import datetime, timedelta
@dataclass(frozen=True)
+1 -1
View File
@@ -12,7 +12,7 @@ No proportional allocation, endpoint assignment, or double counting.
"""
import sqlite3
from datetime import datetime, timedelta, timezone
from typing import Any, Dict, List, Optional, Tuple
from typing import Any, Dict, List, Optional
from .hour_classify import classify_hour, HourSplit
-1
View File
@@ -26,7 +26,6 @@ Runit guarantees:
Spec: §8.4, §8.5, §8.6, §8.7, §8.8, ADR 0008
"""
import os
import shutil
import subprocess
import sys
from enum import Enum
+2 -3
View File
@@ -18,11 +18,10 @@ import logging
import sqlite3
from datetime import datetime, timezone
from pathlib import Path
from typing import Any, Dict, List, Optional, Tuple
from typing import Any, Dict, List, Optional
from .hour_classify import classify_hour
from .segment import open_segment, normalize_identity
from .monitoring_periods import close_period
from .segment import open_segment
logger = logging.getLogger(__name__)
+3 -3
View File
@@ -31,13 +31,13 @@ if VENV_DIR.exists():
if site_packages:
sys.path.insert(0, str(site_packages))
from fenris.store import init_store, get_store_path
from fenris.monitoring_periods import (
from fenris.store import init_store # noqa: E402 -- must follow the sys.path bootstrap above
from fenris.monitoring_periods import ( # noqa: E402 -- sys.path bootstrap above
ensure_period_open,
close_period,
get_open_period,
)
from fenris.init_system import (
from fenris.init_system import ( # noqa: E402 -- sys.path bootstrap above
enable_timer,
disable_timer,
collect_now,
+2 -2
View File
@@ -24,9 +24,9 @@ Criteria: PR-1–PR-17, CI-4.
"""
import sqlite3
from dataclasses import dataclass, field
from datetime import datetime, timedelta, timezone
from datetime import datetime, timedelta
from enum import Enum
from typing import Any, Dict, List, Optional, Tuple
from typing import Any, Dict, List, Optional
from .monitoring_periods import interval_within_one_monitoring_period
+2 -2
View File
@@ -13,11 +13,11 @@ Contracts:
"""
import logging
import sqlite3
from dataclasses import dataclass, field
from dataclasses import dataclass
from datetime import datetime, timedelta, timezone
from typing import Optional, List, Tuple
from .derive import find_previous_sample, derive_hours_from_interval, _parse_ts
from .derive import derive_hours_from_interval, _parse_ts
logger = logging.getLogger(__name__)
-1
View File
@@ -17,7 +17,6 @@ import sqlite3
from datetime import datetime
from typing import Any, Dict, Optional, Tuple
from .collector import normalize_identity
def find_current_segment(conn: sqlite3.Connection) -> Optional[Dict[str, Any]]:
+2 -3
View File
@@ -15,15 +15,14 @@ Criteria: LC-9, CI-2, CI-4, FL-4, FL-5, FL-7.
"""
import sqlite3
from contextlib import contextmanager
import sys
from datetime import datetime, timedelta, timezone
from datetime import datetime, timezone
from pathlib import Path
from typing import Any, Dict, Iterator, List, Optional, Tuple, TYPE_CHECKING
if TYPE_CHECKING:
from .status_composition import StatusComposition
from .projection import compute_projection, ConfidenceState, DISCLOSURES
from .projection import compute_projection, DISCLOSURES
from .store import SCHEMA_VERSION
from .init_system import (
query_service_state as _init_query_service_state,
+4 -9
View File
@@ -11,25 +11,20 @@ Freshness grading uses shared constants from status.py.
import enum
import sqlite3
from dataclasses import dataclass, field
from datetime import datetime, timedelta, timezone
from datetime import datetime, timezone
from typing import Any, Dict, List, Optional
# Status poll interval (AC78-6): lightweight 5s systemctl show poll
STATUS_POLL_INTERVAL_S = 5
from .status import (
FRESH_THRESHOLD_S,
STALENESS_THRESHOLD_S,
grade_freshness,
freshness_age_human,
is_deliberately_paused,
monitoring_continuity,
deliberate_pause_lines,
open_store_readonly,
StoreFault,
NewerSchema,
)
# Status poll interval (AC78-6): lightweight 5s systemctl show poll
STATUS_POLL_INTERVAL_S = 5
# ---------------------------------------------------------------------------
# Status state enum with glyph and label
-1
View File
@@ -7,7 +7,6 @@ This module handles:
"""
import sqlite3
from pathlib import Path
from typing import Optional
# Schema version - increment on each migration
+9 -13
View File
@@ -12,7 +12,6 @@ Criteria: TUI-1, TUI-2, TUI-4, CI-1, CI-2, CI-4, IN-3, LC-6, LC-8.
from __future__ import annotations
import sqlite3
import sys
from datetime import date, datetime, timedelta, timezone
from pathlib import Path
from typing import Any, Callable, Dict, List, Optional
@@ -21,7 +20,7 @@ from zoneinfo import ZoneInfo
from rich.text import Text
from textual.app import App, ComposeResult
from textual.binding import Binding
from textual.containers import Container, Horizontal, VerticalScroll
from textual.containers import Container, VerticalScroll
from textual.screen import ModalScreen
from textual.message import Message
from textual.widget import Widget
@@ -38,16 +37,14 @@ from .activity_plot import VolumePoint, volume_plot
from .projection import (
ConfidenceState,
ProjectionResult,
ScenarioRange,
compute_projection,
)
from .status import (
CADENCE_DEFAULT_S,
FRESH_THRESHOLD_S,
STALENESS_THRESHOLD_S,
FRESH_THRESHOLD_S, # noqa: F401 -- re-exported; tests/test_acceptance_sweep.py asserts parity with status
STALENESS_THRESHOLD_S, # noqa: F401 -- re-exported (see above)
format_disclosures,
freshness_age_human,
grade_freshness,
grade_freshness, # noqa: F401 -- re-exported (see above)
deliberate_pause_lines,
read_status,
_journalctl_hint,
@@ -55,7 +52,6 @@ from .status import (
from .status_composition import (
StatusComposition,
render_status_tui,
STATUS_POLL_INTERVAL_S,
)
from .control import MONITOR_HELPER, MonitorError, run_monitor
from .derive import _parse_ts
@@ -1110,10 +1106,10 @@ def _query_local_day_graph_data(
(start_text, end_text, selected_date or ""),
).fetchall()
recorded_zones: Dict[str, list[str]] = {}
for local_date, timezone in rows:
for local_date, zone_name in rows:
recorded_zones.setdefault(local_date, [])
if timezone not in recorded_zones[local_date]:
recorded_zones[local_date].append(timezone)
if zone_name not in recorded_zones[local_date]:
recorded_zones[local_date].append(zone_name)
result: List[Dict[str, Any]] = []
for local_date in sorted(local_dates):
@@ -1138,9 +1134,9 @@ def _query_local_day_graph_data(
})
continue
for timezone in timezones:
for zone_name in timezones:
summary = query_local_day_summary(
conn, local_date, timezone, now,
conn, local_date, zone_name, now,
)
if summary is None:
continue
+1 -1
View File
@@ -5,7 +5,7 @@ computation used by local-day derivation. All functions are
stateless and safe to call from the collector and TUI reader.
"""
import os
from datetime import datetime, timezone
from datetime import datetime
from pathlib import Path