jenkins-bot has submitted this change. ( https://gerrit.wikimedia.org/r/c/pywikibot/core/+/668469 )
Change subject: [IMPR] avois deeply nested flow control statements in ClaimCollection.toJSON()
......................................................................
[IMPR] avois deeply nested flow control statements in ClaimCollection.toJSON()
Change-Id: I7132e01141377a65842bcb55c6c83e4e114c5a56
---
M pywikibot/page/_collections.py
1 file changed, 34 insertions(+), 33 deletions(-)
Approvals:
Xqt: Looks good to me, approved
jenkins-bot: Verified
diff --git a/pywikibot/page/_collections.py b/pywikibot/page/_collections.py
index 68fbc4a..fbc9a60 100644
--- a/pywikibot/page/_collections.py
+++ b/pywikibot/page/_collections.py
@@ -247,46 +247,47 @@
"""
claims = {}
for prop in self:
- if len(self[prop]) > 0:
+ if self[prop]:
claims[prop] = [claim.toJSON() for claim in self[prop]]
- if diffto:
- temp = defaultdict(list)
- props_add = set(claims.keys())
- props_orig = set(diffto.keys())
- for prop in (props_orig | props_add):
- if prop not in props_orig:
- temp[prop].extend(claims[prop])
- continue
- if prop not in props_add:
- temp[prop].extend(
- {'id': claim['id'], 'remove': ''}
- for claim in diffto[prop] if 'id' in claim)
+ if not diffto:
+ return claims
+
+ temp = defaultdict(list)
+ props_add = set(claims.keys())
+ props_orig = set(diffto.keys())
+ for prop in (props_orig | props_add):
+ if prop not in props_orig:
+ temp[prop].extend(claims[prop])
+ continue
+
+ if prop not in props_add:
+ temp[prop].extend({'id': claim['id'], 'remove': ''}
+ for claim in diffto[prop] if 'id' in claim)
+ continue
+
+ claim_ids = set()
+ claim_map = {json['id']: json for json in diffto[prop]
+ if 'id' in json}
+
+ for claim, json in zip(self[prop], claims[prop]):
+ if 'id' not in json:
continue
- claim_ids = set()
- claim_map = {
- json['id']: json for json in diffto[prop]
- if 'id' in json}
-
- for claim, json in zip(self[prop], claims[prop]):
- if 'id' not in json:
+ claim_ids.add(json['id'])
+ if json['id'] in claim_map:
+ other = pywikibot.page.Claim.fromJSON(
+ self.repo, claim_map[json['id']])
+ if claim.same_as(other, ignore_rank=False,
+ ignore_refs=False):
continue
- claim_ids.add(json['id'])
- if json['id'] in claim_map:
- other = pywikibot.page.Claim.fromJSON(
- self.repo, claim_map[json['id']])
- if claim.same_as(other, ignore_rank=False,
- ignore_refs=False):
- continue
- temp[prop].append(json)
+ temp[prop].append(json)
- for claim in diffto[prop]:
- if 'id' in claim and claim['id'] not in claim_ids:
- temp[prop].append({'id': claim['id'], 'remove': ''})
+ for claim in diffto[prop]:
+ if 'id' in claim and claim['id'] not in claim_ids:
+ temp[prop].append({'id': claim['id'], 'remove': ''})
- claims = temp
-
+ claims = temp
return claims
def set_on_item(self, item):
--
To view, visit https://gerrit.wikimedia.org/r/c/pywikibot/core/+/668469
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: I7132e01141377a65842bcb55c6c83e4e114c5a56
Gerrit-Change-Number: 668469
Gerrit-PatchSet: 1
Gerrit-Owner: Xqt <info(a)gno.de>
Gerrit-Reviewer: Xqt <info(a)gno.de>
Gerrit-Reviewer: jenkins-bot
Gerrit-MessageType: merged
jenkins-bot has submitted this change. ( https://gerrit.wikimedia.org/r/c/pywikibot/core/+/237113 )
Change subject: api.py: buffer 'pageprops' in QueryGenerator
......................................................................
api.py: buffer 'pageprops' in QueryGenerator
Currently, 'pageprops' is only cached if found in the response.
The API only returns this property if it's not empty, causing
repetitive queries if accessed multiple times.
This change caches 'pageprops' if it's requested, creating an
empty dictionary to use if it's not present in the response.
Change-Id: I30973b7479822ebc043f1d4db77522143e8c5652
---
M pywikibot/data/api.py
1 file changed, 2 insertions(+), 0 deletions(-)
Approvals:
Xqt: Looks good to me, approved
jenkins-bot: Verified
diff --git a/pywikibot/data/api.py b/pywikibot/data/api.py
index ff90b25..4c34108 100644
--- a/pywikibot/data/api.py
+++ b/pywikibot/data/api.py
@@ -3173,6 +3173,8 @@
if 'pageprops' in pagedict:
page._pageprops = pagedict['pageprops']
+ elif 'pageprops' in props:
+ page._pageprops = {}
if 'preload' in pagedict:
page._preloadedtext = pagedict['preload']
--
To view, visit https://gerrit.wikimedia.org/r/c/pywikibot/core/+/237113
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: I30973b7479822ebc043f1d4db77522143e8c5652
Gerrit-Change-Number: 237113
Gerrit-PatchSet: 7
Gerrit-Owner: Malafaya <malafaya(a)clix.pt>
Gerrit-Reviewer: John Vandenberg <jayvdb(a)gmail.com>
Gerrit-Reviewer: Malafaya <malafaya(a)clix.pt>
Gerrit-Reviewer: Merlijn van Deen <valhallasw(a)arctus.nl>
Gerrit-Reviewer: XZise <CommodoreFabianus(a)gmx.de>
Gerrit-Reviewer: Xqt <info(a)gno.de>
Gerrit-Reviewer: jenkins-bot
Gerrit-MessageType: merged
jenkins-bot has submitted this change. ( https://gerrit.wikimedia.org/r/c/pywikibot/core/+/666878 )
Change subject: [cleanup] Remove deprecated Page.getMovedTarget() method
......................................................................
[cleanup] Remove deprecated Page.getMovedTarget() method
Change-Id: I90f3d87f348e8465d27427ad2f2b6120b426a469
---
M pywikibot/page/__init__.py
M tests/logentries_tests.py
2 files changed, 0 insertions(+), 52 deletions(-)
Approvals:
Xqt: Looks good to me, approved
jenkins-bot: Verified
diff --git a/pywikibot/page/__init__.py b/pywikibot/page/__init__.py
index 925952e..46d6f9f 100644
--- a/pywikibot/page/__init__.py
+++ b/pywikibot/page/__init__.py
@@ -1557,24 +1557,6 @@
"""
return self.site.getredirtarget(self)
- @deprecated('moved_target()', since='20150524', future_warning=True)
- def getMovedTarget(self): # pragma: no cover
- """
- Return a Page object for the target this Page was moved to.
-
- DEPRECATED: Use Page.moved_target().
-
- If this page was not moved, it will raise a NoPage exception.
- This method also works if the source was already deleted.
-
- @rtype: pywikibot.page.Page
- @raises pywikibot.exceptions.NoPage: this page was not moved
- """
- try:
- return self.moved_target()
- except pywikibot.NoMoveTarget:
- raise pywikibot.NoPage(self)
-
def moved_target(self):
"""
Return a Page object for the target this Page was moved to.
diff --git a/tests/logentries_tests.py b/tests/logentries_tests.py
index 5336497..e265212 100644
--- a/tests/logentries_tests.py
+++ b/tests/logentries_tests.py
@@ -318,40 +318,6 @@
self.assertDeprecation() # T271044
self._reset_messages() # T271044
- def test_get_moved_target(self, key):
- """Test getMovedTarget method."""
- # main page was moved around
- if self.sites[key]['target'] is None:
- self.skipTest('No moved target')
- mainpage = self.get_mainpage(self.site)
- target = mainpage.getMovedTarget()
- self.assertIsInstance(target, pywikibot.Page)
- self.assertEqual(target.title(),
- self.sites[key]['target'])
- # main page was moved back again, we test it.
- self.assertEqual(mainpage, target.getMovedTarget())
-
- self.assertOneDeprecationParts(
- 'pywikibot.page.BasePage.getMovedTarget', 'moved_target()', 2)
-
- def test_moved_target_fail_old(self):
- """Test getMovedTarget method failing on older wiki."""
- site = self.get_site('old')
- with self.assertRaises(pywikibot.NoPage):
- self.get_mainpage(site).getMovedTarget()
-
- self.assertOneDeprecationParts(
- 'pywikibot.page.BasePage.getMovedTarget', 'moved_target()')
-
- def test_moved_target_fail_de(self):
- """Test getMovedTarget method failing on de-wiki."""
- page = pywikibot.Page(self.get_site('dewp'), 'Main Page')
- with self.assertRaises(pywikibot.NoPage):
- page.getMovedTarget()
-
- self.assertOneDeprecationParts(
- 'pywikibot.page.BasePage.getMovedTarget', 'moved_target()')
-
if __name__ == '__main__': # pragma: no cover
with suppress(SystemExit):
--
To view, visit https://gerrit.wikimedia.org/r/c/pywikibot/core/+/666878
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: I90f3d87f348e8465d27427ad2f2b6120b426a469
Gerrit-Change-Number: 666878
Gerrit-PatchSet: 2
Gerrit-Owner: Xqt <info(a)gno.de>
Gerrit-Reviewer: Xqt <info(a)gno.de>
Gerrit-Reviewer: jenkins-bot
Gerrit-MessageType: merged
jenkins-bot has submitted this change. ( https://gerrit.wikimedia.org/r/c/pywikibot/core/+/668368 )
Change subject: [doc] LoginManager.getCookie() was renamed to login_to_site()
......................................................................
[doc] LoginManager.getCookie() was renamed to login_to_site()
Change-Id: Iea6b1d5c94653abdd8a0f891ccda620d9b8728c3
---
M ROADMAP.rst
1 file changed, 0 insertions(+), 1 deletion(-)
Approvals:
Xqt: Looks good to me, approved
jenkins-bot: Verified
diff --git a/ROADMAP.rst b/ROADMAP.rst
index b7f6c4d..c2a0752 100644
--- a/ROADMAP.rst
+++ b/ROADMAP.rst
@@ -47,7 +47,6 @@
* 5.6.0: pagenenerators.handleArg() method will be removed in favour of handle_arg() (T271437)
* 5.5.0: Site.getuserinfo() method will be dropped in favour of userinfo property
* 5.5.0: Site.getglobaluserinfo() method will be dropped in favour of globaluserinfo property
-* 5.4.0: LoginManager.getCookie() is deprecated and will be removed
* 5.4.0: tools.PY2 will be removed (T213287)
* 5.0.0: OptionHandler.options dict will be removed in favour of OptionHandler.opt
* 5.0.0: Methods deprecated for 5 years or longer will be removed
--
To view, visit https://gerrit.wikimedia.org/r/c/pywikibot/core/+/668368
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: Iea6b1d5c94653abdd8a0f891ccda620d9b8728c3
Gerrit-Change-Number: 668368
Gerrit-PatchSet: 1
Gerrit-Owner: Xqt <info(a)gno.de>
Gerrit-Reviewer: Xqt <info(a)gno.de>
Gerrit-Reviewer: jenkins-bot
Gerrit-MessageType: merged