jenkins-bot has submitted this change. ( https://gerrit.wikimedia.org/r/c/pywikibot/core/+/697138 )
Change subject: [bugfix] remove lru_cache from botMayEdit method ...................................................................... [bugfix] remove lru_cache from botMayEdit method - lru_cache keeps all page references and leads to exhausting memory usage if a lot of pages are loaded. See also https://bugs.python.org/issue19859 Replace lru_cache by the Page attribute "_bot_may_edit" - delete this cache attribute if a page is reloaded with Page.get(force) from life wiki because the content can have been changed Bug: T283957 Change-Id: Ia491a9e70203634e722caaa8e50a7388057376aa --- M pywikibot/page/__init__.py 1 file changed, 9 insertions(+), 2 deletions(-) Approvals: Zhuyifei1999: Looks good to me, but someone else must approve Rubin: Looks good to me, but someone else must approve Xqt: Looks good to me, approved jenkins-bot: Verified diff --git a/pywikibot/page/__init__.py b/pywikibot/page/__init__.py index dc4542d..c6048e8 100644 --- a/pywikibot/page/__init__.py +++ b/pywikibot/page/__init__.py @@ -30,7 +30,7 @@ import pywikibot from pywikibot import config, i18n, textlib -from pywikibot.backports import Dict, Iterable, List, Tuple, cache +from pywikibot.backports import Dict, Iterable, List, Tuple from pywikibot.comms import http from pywikibot.exceptions import ( APIError, @@ -440,6 +440,8 @@ """ if force: del self.latest_revision_id + if hasattr(self, '_bot_may_edit'): + del self._bot_may_edit try: self._getInternals() except IsRedirectPageError: @@ -1017,7 +1019,6 @@ """DEPRECATED. Determine whether the page may be edited.""" return self.has_permission() - @cache def botMayEdit(self) -> bool: """ Determine whether the active bot is allowed to edit the page. @@ -1033,6 +1034,12 @@ to override this by setting ignore_bot_templates=True in user-config.py, or using page.put(force=True). """ + if not hasattr(self, '_bot_may_edit'): + self._bot_may_edit = self._check_bot_may_edit() + return self._bot_may_edit + + def _check_bot_may_edit(self) -> bool: + """A botMayEdit helper method.""" if not hasattr(self, 'templatesWithParams'): return True -- To view, visit https://gerrit.wikimedia.org/r/c/pywikibot/core/+/697138 To unsubscribe, or for help writing mail filters, visit https://gerrit.wikimedia.org/r/settings Gerrit-Project: pywikibot/core Gerrit-Branch: master Gerrit-Change-Id: Ia491a9e70203634e722caaa8e50a7388057376aa Gerrit-Change-Number: 697138 Gerrit-PatchSet: 4 Gerrit-Owner: Xqt <[email protected]> Gerrit-Reviewer: Dvorapa <[email protected]> Gerrit-Reviewer: Rubin <[email protected]> Gerrit-Reviewer: Xqt <[email protected]> Gerrit-Reviewer: Zhuyifei1999 <[email protected]> Gerrit-Reviewer: jenkins-bot Gerrit-MessageType: merged
_______________________________________________ Pywikibot-commits mailing list -- [email protected] To unsubscribe send an email to [email protected]
