From d3ad87f8a0204387283ab2c8ee72393744eaf34a Mon Sep 17 00:00:00 2001 From: Emmanuel Levijarvi Date: Fri, 21 Nov 2025 11:18:12 -0800 Subject: [PATCH] Fix CLI output formatting --- src/nwp500/cli/commands.py | 15 +++++++++------ src/nwp500/cli/output_formatters.py | 3 +-- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/nwp500/cli/commands.py b/src/nwp500/cli/commands.py index 1bab777..c29f547 100644 --- a/src/nwp500/cli/commands.py +++ b/src/nwp500/cli/commands.py @@ -3,7 +3,6 @@ import asyncio import json import logging -from dataclasses import asdict from typing import Any, Optional from nwp500 import Device, DeviceFeature, DeviceStatus, NavienMqttClient @@ -54,7 +53,9 @@ def on_status(status: DeviceStatus) -> None: if not future.done(): print( json.dumps( - asdict(status), indent=2, default=_json_default_serializer + status.model_dump(), + indent=2, + default=_json_default_serializer, ) ) future.set_result(None) @@ -126,7 +127,9 @@ def on_device_info(info: Any) -> None: if not future.done(): print( json.dumps( - asdict(info), indent=2, default=_json_default_serializer + info.model_dump(), + indent=2, + default=_json_default_serializer, ) ) future.set_result(None) @@ -225,7 +228,7 @@ def on_status_response(status: DeviceStatus) -> None: status = responses[0] print( json.dumps( - asdict(status), + status.model_dump(), indent=2, default=_json_default_serializer, ) @@ -301,7 +304,7 @@ def on_status_response(status: DeviceStatus) -> None: status = responses[0] print( json.dumps( - asdict(status), + status.model_dump(), indent=2, default=_json_default_serializer, ) @@ -601,7 +604,7 @@ def on_status_response(status: DeviceStatus) -> None: status = responses[0] print( json.dumps( - asdict(status), + status.model_dump(), indent=2, default=_json_default_serializer, ) diff --git a/src/nwp500/cli/output_formatters.py b/src/nwp500/cli/output_formatters.py index 4e4c5cc..4939e07 100644 --- a/src/nwp500/cli/output_formatters.py +++ b/src/nwp500/cli/output_formatters.py @@ -3,7 +3,6 @@ import csv import json import logging -from dataclasses import asdict from datetime import datetime from enum import Enum from pathlib import Path @@ -43,7 +42,7 @@ def write_status_to_csv(file_path: str, status: DeviceStatus) -> None: """ try: # Convert the entire dataclass to a dictionary to capture all fields - status_dict = asdict(status) + status_dict = status.model_dump() # Add a timestamp to the beginning of the data status_dict["timestamp"] = datetime.now().isoformat()