From b78d8273fa52364c8d42e4be7052f388079db574 Mon Sep 17 00:00:00 2001 From: Sven Augustin Date: Fri, 26 Feb 2021 15:30:14 +0100 Subject: [PATCH] moved params validation into broker client; numpy arrays are now allowed in params --- slic/core/acquisition/broker_client.py | 14 ++++++++++++++ slic/core/scanner/scanner.py | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/slic/core/acquisition/broker_client.py b/slic/core/acquisition/broker_client.py index 03f23633..2cf2b9a0 100644 --- a/slic/core/acquisition/broker_client.py +++ b/slic/core/acquisition/broker_client.py @@ -1,6 +1,7 @@ import requests from time import sleep from tqdm import tqdm +import numpy as np from .broker_tools import get_current_pulseid @@ -76,10 +77,23 @@ def retrieve(address, *args, **kwargs): def post_request(requrl, params, timeout=10): + params = validate_params(params) response = requests.post(requrl, json=params, timeout=timeout).json() return validate_response(response) +def validate_params(params): + res = {} + for k, v in params.items(): + if isinstance(v, dict): + v = validate_params(v) + elif isinstance(v, np.ndarray): + v = v.tolist() + print(f"converted {k} = {v} from numpy array to list") + res[k] = v + return res + + def validate_response(resp): if resp.get("status") == "ok": return resp.get("message") diff --git a/slic/core/scanner/scanner.py b/slic/core/scanner/scanner.py index 76daf69f..38f8ee42 100644 --- a/slic/core/scanner/scanner.py +++ b/slic/core/scanner/scanner.py @@ -221,7 +221,7 @@ def make_2D_pairs(x, y): x_flat = x_grid.T.ravel() y_flat = y_grid.T.ravel() pairs = np.vstack((x_flat, y_flat)).T - return pairs.tolist() + return pairs