From 698bb0e4aae4bb3051c8e3941868b54c627672f9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Henrik=20tom=20W=C3=B6rden?= <h.tomwoerden@indiscale.com>
Date: Fri, 14 Apr 2023 13:17:02 +0200
Subject: [PATCH] FIX: remove the wrapped return value

---
 src/caosdb/common/models.py | 43 ++-----------------------------------
 unittests/test_message.py   | 10 ---------
 2 files changed, 2 insertions(+), 51 deletions(-)

diff --git a/src/caosdb/common/models.py b/src/caosdb/common/models.py
index dc20b2fe..c9699539 100644
--- a/src/caosdb/common/models.py
+++ b/src/caosdb/common/models.py
@@ -2403,11 +2403,8 @@ class _Messages(list):
     (to be continued...)
     """
 
-    _is_wrapped = False
-
     def clear_server_messages(self):
-        # TODO can we deprecate this and refer people to clear
-        """Removes all error, warning and info messages."""
+        """Removes all messages of type error, warning and info."""
         rem = []
 
         for m in self:
@@ -2417,8 +2414,6 @@ class _Messages(list):
         for m in rem:
             self.remove(m)
 
-        return _message_wrap_deprication(self)
-
     def __setitem__(self, key, value):  # @ReservedAssignment
         if not isinstance(value, Message):
             warn("__setitem__ will in future only accept Message objects as second argument. "
@@ -2519,7 +2514,6 @@ class _Messages(list):
 
     def extend(self, messages):
         super().extend(messages)
-        return _message_wrap_deprication(self)
 
     def append(self, msg):
         if isinstance(msg, _Messages) or isinstance(msg, list):
@@ -2527,19 +2521,15 @@ class _Messages(list):
                  " instead.", DeprecationWarning)
             for m in msg:
                 self.append(m)
-            return _message_wrap_deprication(self)
+            return
 
         super().append(msg)
 
-        return _message_wrap_deprication(self)
-
     def to_xml(self, add_to_element):
         for m in self:
             melem = m.to_xml()
             add_to_element.append(melem)
 
-        return _message_wrap_deprication(self)
-
     def __repr__(self):
         xml = etree.Element("Messages")
         self.to_xml(xml)
@@ -2569,35 +2559,6 @@ class _Messages(list):
                                       if self._code is not None else '')
 
 
-def donotuse(func):
-    """ used by _message_wrap_deprication to deprecate return values"""
-    def inner(*args, **kwargs):
-        warn(DeprecationWarning(
-                "This object was returned by a function that will in future return None."))
-        return func(*args, **kwargs)
-
-    return inner
-
-
-def _message_wrap_deprication(msg):
-    """ function to allow deprecation of _Messages return values """
-    if msg._is_wrapped:
-        return msg
-    msg._is_wrapped = True
-    msg.clear_server_messages = donotuse(msg.clear_server_messages)
-    msg.__setitem__ = donotuse(msg.__setitem__)
-    msg.__delitem__ = donotuse(msg.__delitem__)
-    msg.__getitem__ = donotuse(msg.__getitem__)
-    msg.remove = donotuse(msg.remove)
-    msg.get = donotuse(msg.get)
-    msg.extend = donotuse(msg.extend)
-    msg.append = donotuse(msg.append)
-    msg.__iter__ = donotuse(msg.__iter__)
-    msg.to_xml = donotuse(msg.to_xml)
-    msg.__repr__ = donotuse(msg.__repr__)
-    return msg
-
-
 def _basic_sync(e_local, e_remote):
     '''Copy all state from a one entity to another.
 
diff --git a/unittests/test_message.py b/unittests/test_message.py
index feffb31b..f7227755 100644
--- a/unittests/test_message.py
+++ b/unittests/test_message.py
@@ -115,13 +115,3 @@ def test_deepcopy_clear_server():
     copied_msgs.clear_server_messages()
     assert len(copied_msgs) == 1
     assert copied_msgs[0].code == msg.code
-
-
-def test_deprecated_append_return():
-    msgs = db.common.models._Messages()
-    dpmsgs = msgs.append(db.Message(type="bla", code=1234, description="desc", body="blabla"))
-
-    with pytest.warns(DeprecationWarning, match=r"This object was returned by a function"):
-        dpmsgs.clear_server_messages()
-    with pytest.warns(DeprecationWarning, match=r"This object was returned by a function"):
-        str(dpmsgs)
-- 
GitLab