From 5895a0f516becf12aa277b3501c9901293be7d7b Mon Sep 17 00:00:00 2001 From: Joel Collins Date: Thu, 9 Jan 2020 22:37:41 +0000 Subject: [PATCH] Added notes on type conversion --- .../common/flask_labthings/fields.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/openflexure_microscope/common/flask_labthings/fields.py b/openflexure_microscope/common/flask_labthings/fields.py index 46e04e86..37b3533a 100644 --- a/openflexure_microscope/common/flask_labthings/fields.py +++ b/openflexure_microscope/common/flask_labthings/fields.py @@ -11,7 +11,13 @@ from decimal import Decimal from typing import Dict, List, Tuple, Union from uuid import UUID -# TODO: Use this to convert arbitrary dictionary into its own schema, for W3C TD +""" +TODO: Use this to convert arbitrary dictionary into its own schema, for W3C TD + +First: Convert Python non-builtins to builtins using DEFAULT_BUILTIN_CONVERSIONS +Then match types of each element to Field using DEFAULT_TYPE_MAPPING +Finally convert Fields to JSON using converter (preferred due to extra metadata), or DEFAULT_FIELD_MAPPING +""" # Python types to Marshmallow fields DEFAULT_TYPE_MAPPING = { bool: Boolean, @@ -48,7 +54,7 @@ def to_string(o): # Map of Python type conversions -DEFAULT_TYPE_CONVERSIONS = { +DEFAULT_BUILTIN_CONVERSIONS = { "numpy.ndarray": ndarray_to_list, "numpy.int": to_int, "fractions.Fraction": to_float,