From f63fec2dc9b89a3a18fe3e667e22905f59ed9844 Mon Sep 17 00:00:00 2001 From: Richard Christie Date: Fri, 17 Jan 2020 11:11:29 +1300 Subject: [PATCH] Add missing file --- src/scaffoldfitter/fitterjson.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 src/scaffoldfitter/fitterjson.py diff --git a/src/scaffoldfitter/fitterjson.py b/src/scaffoldfitter/fitterjson.py new file mode 100644 index 0000000..74b64cc --- /dev/null +++ b/src/scaffoldfitter/fitterjson.py @@ -0,0 +1,23 @@ +""" +Factory function for constructing FitterStep types from JSON Dict. +""" +from scaffoldfitter.fitter import Fitter +from scaffoldfitter.fitterstepalign import FitterStepAlign +from scaffoldfitter.fitterstepfit import FitterStepFit + + +def decodeJSONFitterSteps(fitter : Fitter, dct): + """ + Function for passing as decoder to Fitter.decodeSettingsJSON(). + Constructs scaffold objects from their JSON object encoding. + Used as object_hook argument to json.loads as a lambda function + to pass fitter: + lambda dct: decodeJSONFitterSteps(fitter, dct) + :param fitter: Owning Fitter object for new FitterSteps. + """ + for FitterStepType in [ FitterStepAlign, FitterStepFit ]: + if FitterStepType.getJsonTypeId() in dct: + fitterStep = FitterStepType(fitter) + fitterStep.decodeSettingsJSONDict(dct) + return fitterStep + return dct