Skip to content

Commit 65cbc86

Browse files
committed
IMPR: decrease deeply nested flow in _category.py and _wikibase.py
Change-Id: Ifdd280016011bd8ce47c4d2fcfbb21b73af7b67b
1 parent c4d58af commit 65cbc86

File tree

2 files changed

+41
-34
lines changed

2 files changed

+41
-34
lines changed

pywikibot/page/_category.py

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
"""Object representing a MediaWiki category page."""
22
#
3-
# (C) Pywikibot team, 2008-2023
3+
# (C) Pywikibot team, 2008-2025
44
#
55
# Distributed under the terms of the MIT license.
66
#
@@ -249,18 +249,20 @@ def members(self, *,
249249
if total == 0:
250250
return
251251

252-
if recurse:
253-
if not isinstance(recurse, bool):
254-
recurse -= 1
255-
256-
for subcat in self.subcategories():
257-
for member in subcat.members(
258-
recurse=recurse, total=total, **kwargs):
259-
yield member
260-
if total is not None:
261-
total -= 1
262-
if total == 0:
263-
return
252+
if not recurse:
253+
return
254+
255+
if not isinstance(recurse, bool):
256+
recurse -= 1
257+
258+
for subcat in self.subcategories():
259+
for member in subcat.members(
260+
recurse=recurse, total=total, **kwargs):
261+
yield member
262+
if total is not None:
263+
total -= 1
264+
if total == 0:
265+
return
264266

265267
def isEmptyCategory(self) -> bool: # noqa: N802
266268
"""Return True if category has no members (including subcategories)."""

pywikibot/page/_wikibase.py

Lines changed: 26 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -327,27 +327,32 @@ def editEntity(
327327
if hasattr(self, '_content'):
328328
del self._content
329329
self.latest_revision_id = updates['entity'].get('lastrevid')
330-
if update_self and 'claims' in updates['entity']:
331-
updated_claims = updates['entity']['claims']
332-
for claim_prop_id, statements in updated_claims.items():
333-
for claim_index, statement in enumerate(statements):
334-
claim = self.claims[claim_prop_id][claim_index]
335-
claim.snak = statement['id']
336-
claim.on_item = self
337-
updated_qualifiers = statement.get('qualifiers', {})
338-
for qual_propid, qualifier in updated_qualifiers.items():
339-
for qual_index, qual_statement in enumerate(qualifier):
340-
target_qual_prop = claim.qualifiers[qual_propid]
341-
target_qual = target_qual_prop[qual_index]
342-
target_qual.hash = qual_statement['hash']
343-
updated_references = statement.get('references', [])
344-
for ref_grp_idx, ref_grp in enumerate(updated_references):
345-
for ref_propid, reference in ref_grp['snaks'].items():
346-
for ref_index, ref_stat in enumerate(reference):
347-
target_ref_grp = claim.sources[ref_grp_idx]
348-
target_ref_prop = target_ref_grp[ref_propid]
349-
target_ref = target_ref_prop[ref_index]
350-
target_ref.hash = ref_stat['hash']
330+
331+
if not update_self or 'claims' not in updates['entity']:
332+
return
333+
334+
updated_claims = updates['entity']['claims']
335+
for claim_prop_id, statements in updated_claims.items():
336+
for claim_index, statement in enumerate(statements):
337+
claim = self.claims[claim_prop_id][claim_index]
338+
claim.snak = statement['id']
339+
claim.on_item = self
340+
341+
updated_qualifiers = statement.get('qualifiers', {})
342+
for qual_propid, qualifier in updated_qualifiers.items():
343+
for qual_index, qual_statement in enumerate(qualifier):
344+
target_qual_prop = claim.qualifiers[qual_propid]
345+
target_qual = target_qual_prop[qual_index]
346+
target_qual.hash = qual_statement['hash']
347+
348+
updated_references = statement.get('references', [])
349+
for ref_grp_idx, ref_grp in enumerate(updated_references):
350+
for ref_propid, reference in ref_grp['snaks'].items():
351+
for ref_index, ref_stat in enumerate(reference):
352+
target_ref_grp = claim.sources[ref_grp_idx]
353+
target_ref_prop = target_ref_grp[ref_propid]
354+
target_ref = target_ref_prop[ref_index]
355+
target_ref.hash = ref_stat['hash']
351356

352357
def concept_uri(self) -> str:
353358
"""Return the full concept URI.

0 commit comments

Comments
 (0)