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