From 4703c8506a7483650d0237a5def29ceed79f0c4a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maxime=20=E2=80=9Cpep=E2=80=9D=20Buquet?= Date: Sat, 26 Oct 2019 00:57:20 +0200 Subject: Bookmark: Change jid property to getter/setter to ensure it stays a JID MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It's not like static-type checking was a thing in Python nowadays.. (mypy I'm looking at you) Signed-off-by: Maxime “pep” Buquet --- poezio/bookmarks.py | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) (limited to 'poezio') diff --git a/poezio/bookmarks.py b/poezio/bookmarks.py index 074566cd..ccda2b93 100644 --- a/poezio/bookmarks.py +++ b/poezio/bookmarks.py @@ -49,18 +49,34 @@ class Bookmark: method='local') -> None: try: if isinstance(jid, JID): - self.jid = jid + self._jid = jid else: - self.jid = JID(jid) + self._jid = JID(jid) except InvalidJID: - log.debug('Invalid JID %r provided for bookmark %r', jid, name) + log.debug('Invalid JID %r provided for bookmark', jid) raise - self.name = name or str(jid) + self.name = name or str(self.jid) self.autojoin = autojoin self.nick = nick self.password = password self._method = method + @property + def jid(self) -> JID: + """Jid getter""" + return self._jid + + @jid.setter + def jid(self, jid: JID) -> None: + try: + if isinstance(jid, JID): + self._jid = jid + else: + self._jid = JID(jid) + except InvalidJID: + log.debug('Invalid JID %r provided for bookmark', jid) + raise + @property def method(self) -> str: return self._method -- cgit v1.2.3