From 3bf6b29bb7d1cf3f5beecea8cdeb1cc7dc7ee9b3 Mon Sep 17 00:00:00 2001 From: fspreck <f.spreckelsen@indiscale.com> Date: Fri, 18 Feb 2022 09:54:36 +0100 Subject: [PATCH] ENH: Add treatment of other atomic properties --- src/caosadvancedtools/models/parser.py | 12 +++++++++++- unittests/test_json_schema_model_parser.py | 2 +- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/caosadvancedtools/models/parser.py b/src/caosadvancedtools/models/parser.py index da4cffa6..11ff991c 100644 --- a/src/caosadvancedtools/models/parser.py +++ b/src/caosadvancedtools/models/parser.py @@ -521,7 +521,17 @@ class JsonSchemaParser(Parser): if name in self.model: return ent if elt["type"] == "string": - ent = db.Property(name=name, datatype=db.TEXT) + if "format" in elt and elt["format"] == "date-time": + # Treat datetime strings separately + ent = db.Property(name=name, datatype=db.DATETIME) + else: + ent = db.Property(name=name, datatype=db.TEXT) + elif elt["type"] == "integer": + ent = db.Property(name=name, datatype=db.INTEGER) + elif elt["type"] == "number": + ent = db.Property(name=name, datatype=db.DOUBLE) + elif elt["type"] == "boolean": + ent = db.Property(name=name, datatype=db.BOOLEAN) elif elt["type"] == "object": ent = self._treat_record_type(elt, name) else: diff --git a/unittests/test_json_schema_model_parser.py b/unittests/test_json_schema_model_parser.py index 4cf4c234..5b7a2f28 100644 --- a/unittests/test_json_schema_model_parser.py +++ b/unittests/test_json_schema_model_parser.py @@ -70,7 +70,7 @@ def test_datamodel_with_atomic_properties(): rt1 = model["Dataset1"] assert isinstance(rt1, db.RecordType) - assert rt.name == "Dataset1" + assert rt1.name == "Dataset1" assert rt1.description == "Some description" assert len(rt1.get_properties()) == 3 -- GitLab