jenkins-bot has submitted this change. ( 
https://gerrit.wikimedia.org/r/c/pywikibot/core/+/1152404?usp=email )

Change subject: IMPR: decrease deeply nested flow in _category.py and 
_wikibase.py
......................................................................

IMPR: decrease deeply nested flow in _category.py and _wikibase.py

Change-Id: Ifdd280016011bd8ce47c4d2fcfbb21b73af7b67b
---
M pywikibot/page/_category.py
M pywikibot/page/_wikibase.py
2 files changed, 40 insertions(+), 33 deletions(-)

Approvals:
  Xqt: Looks good to me, approved
  jenkins-bot: Verified




diff --git a/pywikibot/page/_category.py b/pywikibot/page/_category.py
index 95b0993..f352394 100644
--- a/pywikibot/page/_category.py
+++ b/pywikibot/page/_category.py
@@ -1,6 +1,6 @@
 """Object representing a MediaWiki category page."""
 #
-# (C) Pywikibot team, 2008-2023
+# (C) Pywikibot team, 2008-2025
 #
 # Distributed under the terms of the MIT license.
 #
@@ -249,18 +249,20 @@
                 if total == 0:
                     return

-        if recurse:
-            if not isinstance(recurse, bool):
-                recurse -= 1
+        if not recurse:
+            return

-            for subcat in self.subcategories():
-                for member in subcat.members(
-                        recurse=recurse, total=total, **kwargs):
-                    yield member
-                    if total is not None:
-                        total -= 1
-                        if total == 0:
-                            return
+        if not isinstance(recurse, bool):
+            recurse -= 1
+
+        for subcat in self.subcategories():
+            for member in subcat.members(
+                    recurse=recurse, total=total, **kwargs):
+                yield member
+                if total is not None:
+                    total -= 1
+                    if total == 0:
+                        return

     def isEmptyCategory(self) -> bool:  # noqa: N802
         """Return True if category has no members (including subcategories)."""
diff --git a/pywikibot/page/_wikibase.py b/pywikibot/page/_wikibase.py
index 560bbdb..4860083 100644
--- a/pywikibot/page/_wikibase.py
+++ b/pywikibot/page/_wikibase.py
@@ -327,27 +327,32 @@
         if hasattr(self, '_content'):
             del self._content
         self.latest_revision_id = updates['entity'].get('lastrevid')
-        if update_self and 'claims' in updates['entity']:
-            updated_claims = updates['entity']['claims']
-            for claim_prop_id, statements in updated_claims.items():
-                for claim_index, statement in enumerate(statements):
-                    claim = self.claims[claim_prop_id][claim_index]
-                    claim.snak = statement['id']
-                    claim.on_item = self
-                    updated_qualifiers = statement.get('qualifiers', {})
-                    for qual_propid, qualifier in updated_qualifiers.items():
-                        for qual_index, qual_statement in enumerate(qualifier):
-                            target_qual_prop = claim.qualifiers[qual_propid]
-                            target_qual = target_qual_prop[qual_index]
-                            target_qual.hash = qual_statement['hash']
-                    updated_references = statement.get('references', [])
-                    for ref_grp_idx, ref_grp in enumerate(updated_references):
-                        for ref_propid, reference in ref_grp['snaks'].items():
-                            for ref_index, ref_stat in enumerate(reference):
-                                target_ref_grp = claim.sources[ref_grp_idx]
-                                target_ref_prop = target_ref_grp[ref_propid]
-                                target_ref = target_ref_prop[ref_index]
-                                target_ref.hash = ref_stat['hash']
+
+        if not update_self or 'claims' not in updates['entity']:
+            return
+
+        updated_claims = updates['entity']['claims']
+        for claim_prop_id, statements in updated_claims.items():
+            for claim_index, statement in enumerate(statements):
+                claim = self.claims[claim_prop_id][claim_index]
+                claim.snak = statement['id']
+                claim.on_item = self
+
+                updated_qualifiers = statement.get('qualifiers', {})
+                for qual_propid, qualifier in updated_qualifiers.items():
+                    for qual_index, qual_statement in enumerate(qualifier):
+                        target_qual_prop = claim.qualifiers[qual_propid]
+                        target_qual = target_qual_prop[qual_index]
+                        target_qual.hash = qual_statement['hash']
+
+                updated_references = statement.get('references', [])
+                for ref_grp_idx, ref_grp in enumerate(updated_references):
+                    for ref_propid, reference in ref_grp['snaks'].items():
+                        for ref_index, ref_stat in enumerate(reference):
+                            target_ref_grp = claim.sources[ref_grp_idx]
+                            target_ref_prop = target_ref_grp[ref_propid]
+                            target_ref = target_ref_prop[ref_index]
+                            target_ref.hash = ref_stat['hash']

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

--
To view, visit 
https://gerrit.wikimedia.org/r/c/pywikibot/core/+/1152404?usp=email
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.wikimedia.org/r/settings?usp=email

Gerrit-MessageType: merged
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Change-Id: Ifdd280016011bd8ce47c4d2fcfbb21b73af7b67b
Gerrit-Change-Number: 1152404
Gerrit-PatchSet: 1
Gerrit-Owner: Xqt <[email protected]>
Gerrit-Reviewer: Xqt <[email protected]>
Gerrit-Reviewer: jenkins-bot
_______________________________________________
Pywikibot-commits mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to