From 466fe1493c473e7bade549acb8dd823f1651db59 Mon Sep 17 00:00:00 2001 From: William Bruno Date: Fri, 12 Jun 2026 07:23:43 -0400 Subject: [PATCH] readd location_item attrs --- geocache.db | Bin 643072 -> 700416 bytes .../simulation_service.py | 31 ++++++++++++++---- 2 files changed, 24 insertions(+), 7 deletions(-) diff --git a/geocache.db b/geocache.db index cddc8d24cee30f0dd8290c33bb28c6d778e545b6..0c407880ae8b99d5b51bb239f21a9baaa341b091 100644 GIT binary patch delta 17866 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 float: boot_time_timestamp = psutil.boot_time() - boot_time = datetime.datetime.fromtimestamp(boot_time_timestamp) - uptime = datetime.datetime.now() - boot_time + boot_time = datetime.fromtimestamp(boot_time_timestamp) + uptime = datetime.now() - boot_time return uptime def get_status(self) -> dict: