From e45ffea15124819e3c9d426f15590b7459e2f603 Mon Sep 17 00:00:00 2001 From: Charles Beauville Date: Mon, 8 Jul 2024 16:16:24 +0200 Subject: [PATCH] Use JSON for sqlite state --- src/py/flwr/server/superlink/state/sqlite_state.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/py/flwr/server/superlink/state/sqlite_state.py b/src/py/flwr/server/superlink/state/sqlite_state.py index 1b07b26f75ca..ea6f349b9f9a 100644 --- a/src/py/flwr/server/superlink/state/sqlite_state.py +++ b/src/py/flwr/server/superlink/state/sqlite_state.py @@ -15,10 +15,10 @@ """SQLite based implemenation of server state.""" +import json import re import sqlite3 import time -from ast import literal_eval from logging import DEBUG, ERROR from typing import Any, Dict, List, Optional, Sequence, Set, Tuple, Union, cast from uuid import UUID, uuid4 @@ -633,7 +633,9 @@ def create_run( "INSERT INTO run (run_id, fab_id, fab_version, override_config)" "VALUES (?, ?, ?, ?);" ) - self.query(query, (run_id, fab_id, fab_version, str(override_config))) + self.query( + query, (run_id, fab_id, fab_version, json.dumps(override_config)) + ) return run_id log(ERROR, "Unexpected run creation failure.") return 0 @@ -700,7 +702,7 @@ def get_run(self, run_id: int) -> Optional[Run]: run_id=run_id, fab_id=row["fab_id"], fab_version=row["fab_version"], - override_config=literal_eval(row["override_config"]), + override_config=json.loads(row["override_config"]), ) except sqlite3.IntegrityError: log(ERROR, "`run_id` does not exist.")