From 217bbaf201e4a580cf8ddca5c1ff921e98b4278a Mon Sep 17 00:00:00 2001
From: Daniel <d.hornung@indiscale.com>
Date: Wed, 23 Mar 2022 15:23:36 +0100
Subject: [PATCH] DOC: Added docstring, fixed a few typos.

---
 src/caosadvancedtools/models/parser.py | 35 ++++++++++++++++++++------
 unittests/test_parser.py               |  2 +-
 2 files changed, 29 insertions(+), 8 deletions(-)

diff --git a/src/caosadvancedtools/models/parser.py b/src/caosadvancedtools/models/parser.py
index fe52616d..41dcc3cd 100644
--- a/src/caosadvancedtools/models/parser.py
+++ b/src/caosadvancedtools/models/parser.py
@@ -25,7 +25,8 @@ import yaml
 from .data_model import DataModel
 
 # Keywords which are allowed in data model descriptions.
-KEYWORDS = ["parent",  # TODO: can we remove that, see: #36
+KEYWORDS = ["parent",  # deprecated, use inherit_from_* instead:
+                       # https://gitlab.com/caosdb/caosdb-advanced-user-tools/-/issues/36
             "importance",
             "datatype",  # for example TEXT, INTEGER or REFERENCE
             "unit",
@@ -37,7 +38,8 @@ KEYWORDS = ["parent",  # TODO: can we remove that, see: #36
             "inherit_from_suggested",
             "inherit_from_obligatory",
             "role",
-            "value", ]
+            "value",
+            ]
 
 # TODO: check whether it's really ignored
 # These KEYWORDS are not forbidden as properties, but merely ignored.
@@ -112,9 +114,9 @@ def parse_model_from_string(string):
 
 class Parser(object):
     def __init__(self):
-        """
-        Initialize an empty parer object and initialize
-        the dictionary of entities and the list of treated elements.
+        """Initialize an empty parser object and initialize the dictionary of entities and the list of
+        treated elements.
+
         """
         self.model = {}
         self.treated = []
@@ -311,7 +313,25 @@ class Parser(object):
                     raise
 
     def _add_to_recordtype(self, ent_name, props, importance):
-        """Add properties to a RecordType."""
+        """Add properties to a RecordType.
+
+        Parameters
+        ----------
+        ent_name : str
+          The name of the entity to which the properties shall be added.
+
+        props : dict [str -> dict or :doc:`Entity`]
+          The properties, indexed by their names.  Properties may be given as :doc:`Entity` objects
+          or as dictionaries.
+
+        importance
+          The importance as used in :doc:`Entity.add_property`.
+
+        Returns
+        -------
+        None
+
+        """
 
         for n, e in props.items():
             if n in KEYWORDS:
@@ -326,9 +346,10 @@ class Parser(object):
 
             if isinstance(e, dict):
                 if "datatype" in e and _get_listdatatype(e["datatype"]) is not None:
+                    # Reuse the existing datatype for lists.
                     datatype = db.LIST(_get_listdatatype(e["datatype"]))
                 else:
-                    # ignore a possible e["datatype"] here if it's not a list
+                    # Ignore a possible e["datatype"] here if it's not a list
                     # since it has been treated in the definition of the
                     # property (entity) already
                     datatype = None
diff --git a/unittests/test_parser.py b/unittests/test_parser.py
index c3f09462..01730cdb 100644
--- a/unittests/test_parser.py
+++ b/unittests/test_parser.py
@@ -408,7 +408,7 @@ def test_issue_72():
     https://gitlab.indiscale.com/caosdb/src/caosdb-advanced-user-tools/-/issues/72
 
     In some cases, faulty values would be read in for properties without a
-    secified value.
+    specified value.
 
     """
     model = """
-- 
GitLab