From a6605b0f6851ffbd00d4cbc7ded34f067e1b9834 Mon Sep 17 00:00:00 2001
From: "A. Janz" <arkadiusz.janz@pwr.edu.pl>
Date: Fri, 23 Jul 2021 16:17:45 +0200
Subject: [PATCH] fixing minor bugs found in XML reader, we solved #7, #8, #9
 and #10 issues; still - the code needs more testing

---
 plwn/enums.py           |  1 +
 plwn/readers/wnxml.py   | 13 ++++++++++++-
 plwn/storages/sqlite.py |  4 ++--
 3 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/plwn/enums.py b/plwn/enums.py
index ebca1d5..246fc3c 100644
--- a/plwn/enums.py
+++ b/plwn/enums.py
@@ -330,6 +330,7 @@ class Domain(Enum):
     dtk = u'czasowniki oznacz. kontakt fizyczny ' \
         u'(dotykanie, uderzenie, rycie itp.)'
     cwytw = u'czasowniki oznacz. wytwarzanie czegoÅ›'
+    cwyt = u'czasowniki oznacz. wytwarzanie czegoÅ›'
     cczuj = u'czasowniki wyrażające uczucia'
     ruch = u'czasowniki ruchu'
     pst = u'czasowniki postrzegania (percepcji)'
diff --git a/plwn/readers/wnxml.py b/plwn/readers/wnxml.py
index 51f637d..ff366ce 100644
--- a/plwn/readers/wnxml.py
+++ b/plwn/readers/wnxml.py
@@ -40,6 +40,7 @@ _POSES = {
 _RELKINDS = {
     u'relacja pomiędzy synsetami': en.RelationKind.synset,
     u'relacja leksykalna': en.RelationKind.lexical,
+    u'relacja synonimii': en.RelationKind.lexical
 }
 _BOOLVALUES = {u'true': True, u'false': False}
 
@@ -118,7 +119,17 @@ class WNXMLReader(object):
         id_ = int(elem.get('id'))
         var = int(elem.get('variant'))
         pos = _POSES[elem.get('pos')]
-        dom = en.Domain(elem.get('domain'))
+        dom = elem.get('domain')
+        try:
+            dom = en.Domain(dom)
+        except ValueError:
+            try:
+                dom = getattr(en.Domain, dom)
+            except AttributeError:
+                raise ValueError(
+                    "The domains found in the dump are incompatible with "
+                    "current library version."
+                )
 
         self._schema.take_lexical_unit(
             id_,
diff --git a/plwn/storages/sqlite.py b/plwn/storages/sqlite.py
index 49235d3..3983068 100644
--- a/plwn/storages/sqlite.py
+++ b/plwn/storages/sqlite.py
@@ -1454,8 +1454,8 @@ class _DBBuilder(object):
                             lu_node.id,
                         )
                         # Drop relations for this unit, if any
-                        self._lexrels.pop(lu_node.id, None)
-                        return
+                        self._adhoc_lexrels.pop(lu_node.id, None)
+                        continue
 
                     cur.executemany(
                         u"""
-- 
GitLab