From 330808faf2c05386ab5999ef5a05a75910359f66 Mon Sep 17 00:00:00 2001
From: Timm Fitschen <t.fitschen@indiscale.com>
Date: Thu, 25 May 2023 10:24:33 +0000
Subject: [PATCH] AUDIT: Apply suggestions from review

---
 CHANGELOG.md                           |  3 ++-
 src/caosadvancedtools/models/parser.py | 16 +++++++++-------
 src/doc/json_schema_interface.rst      |  2 +-
 3 files changed, 12 insertions(+), 9 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index d92c8a40..fe7f449a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,7 +9,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 ### Added ###
 
 - TableImporter now accepts a `existing_columns` argument which demands that certain columns exist
-- The `JsonSchemaParser` class now supports `patternProperties` and json-schema references
+- The `JsonSchemaParser` class supports `patternProperties`
+- The `JsonSchemaParser` calss supports json-schema references (`$ref`)
 
 ### Changed ###
 
diff --git a/src/caosadvancedtools/models/parser.py b/src/caosadvancedtools/models/parser.py
index 4df1c0a2..c15f3d1b 100644
--- a/src/caosadvancedtools/models/parser.py
+++ b/src/caosadvancedtools/models/parser.py
@@ -192,7 +192,7 @@ def parse_model_from_json_schema(
     """
     # @author Florian Spreckelsen
     # @date 2022-02-17
-    # @review Daniel Hornung 2022-02-18
+    # @review Timm Fitschen 2023-05-25
     parser = JsonSchemaParser(types_for_missing_array_items, ignore_unspecified_array_items)
 
     return parser.parse_model_from_json_schema(filename, top_level_recordtype)
@@ -639,7 +639,7 @@ class JsonSchemaParser(Parser):
     """
     # @author Florian Spreckelsen
     # @date 2022-02-17
-    # @review Timm Fitschen 2022-02-30
+    # @review Timm Fitschen 2023-05-25
 
     def __init__(self, types_for_missing_array_items={}, ignore_unspecified_array_items=False):
         super().__init__()
@@ -665,7 +665,7 @@ class JsonSchemaParser(Parser):
         """
         # @author Florian Spreckelsen
         # @date 2022-02-17
-        # @review Timm Fitschen 2022-02-30
+        # @review Timm Fitschen 2023-05-25
         with open(filename, 'r') as schema_file:
             model_dict = jsonref.load(schema_file)
 
@@ -711,7 +711,7 @@ class JsonSchemaParser(Parser):
                 # Check if this is a valid Json Schema
                 name = self._stringify(elt["title"], context=elt)
                 self._treat_element(elt, name)
-            elif "properties" in elt or "patternProperties":
+            elif "properties" in elt or "patternProperties" in elt:
                 # No top-level type but there are entities
                 if "properties" in elt:
                     for key, prop in elt["properties"].items():
@@ -732,7 +732,7 @@ class JsonSchemaParser(Parser):
         return DataModel(self.model.values())
 
     def _get_name_from_property(self, key: str, prop: dict):
-
+        # @review Timm Fitschen 2023-05-25
         if "title" in prop:
             name = self._stringify(prop["title"])
         else:
@@ -741,7 +741,7 @@ class JsonSchemaParser(Parser):
         return name
 
     def _get_atomic_datatype(self, elt):
-        # @review Timm Fitschen 2022-02-30
+        # @review Timm Fitschen 2023-05-25
         if elt["type"] == "string":
             if "format" in elt and elt["format"] in ["date", "date-time"]:
                 return db.DATETIME
@@ -859,7 +859,7 @@ class JsonSchemaParser(Parser):
         return rt
 
     def _treat_list(self, elt: dict, name: str):
-        # @review Timm Fitschen 2022-02-30
+        # @review Timm Fitschen 2023-05-25
 
         if "items" not in elt and name not in self.types_for_missing_array_items:
             if self.ignore_unspecified_array_items:
@@ -890,6 +890,7 @@ class JsonSchemaParser(Parser):
             return db.Property(name=name, datatype=datatype), False
 
     def _get_pattern_prop(self):
+        # @review Timm Fitschen 2023-05-25
         if "__pattern_property_pattern_property" in self.model:
             return self.model["__pattern_property_pattern_property"]
         pp = db.Property(name="__matched_pattern", datatype=db.TEXT)
@@ -910,6 +911,7 @@ class JsonSchemaParser(Parser):
             array.
 
         """
+        # @review Timm Fitschen 2023-05-25
         num_patterns = len(pattern_elements)
         pattern_prop = self._get_pattern_prop()
         returns = []
diff --git a/src/doc/json_schema_interface.rst b/src/doc/json_schema_interface.rst
index 09fe10fa..0e8aebd3 100644
--- a/src/doc/json_schema_interface.rst
+++ b/src/doc/json_schema_interface.rst
@@ -16,7 +16,7 @@ RecordTypes are created from their parent element's name by appending the string
 ``"Entry"`` and possibly a number if there are more than one pattern properties
 for one parent.
 
-All the RecordTypes created for pattern properties have at least an boligatory
+All the RecordTypes created for pattern properties have at least an obligatory
 ``__matched_pattern`` property which will -- as the name suggests -- store the
 matched pattern of an actual data entry.
 
-- 
GitLab