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

Change subject: Code improvements
......................................................................

Code improvements

- avoid redefinition of local variables within for loops
- use HTTPStatus enum which is more readable
- use dict.items() if keys and values are used
- simplify comparison for multiple values

Change-Id: I43834038aabaa6ae921b0ae7d742e8c9478ef062
---
M pywikibot/bot.py
M pywikibot/cosmetic_changes.py
M pywikibot/data/superset.py
M pywikibot/page/_page.py
M pywikibot/page/_toolforge.py
M pywikibot/page/_wikibase.py
M pywikibot/site/_datasite.py
M pywikibot/site/_generators.py
M pywikibot/tools/__init__.py
M tests/site_tests.py
10 files changed, 29 insertions(+), 27 deletions(-)

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




diff --git a/pywikibot/bot.py b/pywikibot/bot.py
index 010005c..6e9efa8 100644
--- a/pywikibot/bot.py
+++ b/pywikibot/bot.py
@@ -2042,17 +2042,18 @@
     def get_property_by_name(self, property_name: str) -> str:
         """Find given property and return its ID.

-        Method first uses site.search() and if the property isn't found, then
-        asks user to provide the property ID.
+        Method first uses site.search() and if the property isn't found,
+        then asks user to provide the property ID.

         :param property_name: property to find
         """
         ns = self.repo.property_namespace
         for page in self.repo.search(property_name, total=1, namespaces=ns):
-            page = pywikibot.PropertyPage(self.repo, page.title())
+            prop = pywikibot.PropertyPage(self.repo, page.title())
             pywikibot.info(
-                f'Assuming that {property_name} property is {page.id}.')
-            return page.id
+                f'Assuming that {property_name} property is {prop.id}.')
+            return prop.id
+
         return pywikibot.input(
             f'Property {property_name} was not found. Please enter the '
             f'property ID (e.g. P123) of it:').upper()
diff --git a/pywikibot/cosmetic_changes.py b/pywikibot/cosmetic_changes.py
index cf3df33..76fdeef 100644
--- a/pywikibot/cosmetic_changes.py
+++ b/pywikibot/cosmetic_changes.py
@@ -462,9 +462,8 @@
                               else 'User talk']
             # lowerspaced and underscored namespaces
             for i, item in enumerate(namespaces):
-                item = item.replace(' ', '[ _]')
-                item = f'[{item[0]}{item[0].lower()}]' + item[1:]
-                namespaces[i] = item
+                ns = item.replace(' ', '[ _]')
+                namespaces[i] = f'[{ns[0]}{ns[0].lower()}]{ns[1:]}'
             namespaces.append(first_lower(final_ns))
             if final_ns and namespaces:
                 if (self.site.sitename == 'wikipedia:pt'
diff --git a/pywikibot/data/superset.py b/pywikibot/data/superset.py
index 101b96d..7fd0e14 100644
--- a/pywikibot/data/superset.py
+++ b/pywikibot/data/superset.py
@@ -9,6 +9,7 @@
 #
 from __future__ import annotations

+from http import HTTPStatus
 from textwrap import fill
 from typing import TYPE_CHECKING, Any

@@ -91,9 +92,9 @@
         self.last_response = http.fetch(url)

         # Handle error cases
-        if self.last_response.status_code == 200:
+        if self.last_response.status_code == HTTPStatus.OK:
             self.connected = True
-        elif self.last_response.status_code == 401:
+        elif self.last_response.status_code == HTTPStatus.UNAUTHORIZED:
             self.connected = False
             raise NoUsernameError(fill(
                 'User not logged in. You need to log in to '
@@ -124,7 +125,7 @@
         url = f'{self.superset_url}/api/v1/security/csrf_token/'
         self.last_response = http.fetch(url)

-        if self.last_response.status_code == 200:
+        if self.last_response.status_code == HTTPStatus.OK:
             return self.last_response.json()['result']

         status_code = self.last_response.status_code
@@ -147,12 +148,12 @@
             url += f'/api/v1/database/{database_id}/schemas/?q=(force:!f)'
             self.last_response = http.fetch(url)

-            if self.last_response.status_code == 200:
+            if self.last_response.status_code == HTTPStatus.OK:
                 schemas = self.last_response.json()['result']
                 if schema_name in schemas:
                     return database_id

-            elif self.last_response.status_code == 404:
+            elif self.last_response.status_code == HTTPStatus.NOT_FOUND:
                 break
             else:
                 status_code = self.last_response.status_code
diff --git a/pywikibot/page/_page.py b/pywikibot/page/_page.py
index 48c74c8..199d4d6 100644
--- a/pywikibot/page/_page.py
+++ b/pywikibot/page/_page.py
@@ -112,9 +112,9 @@
                     positional.append(intkeys[i])
                     continue

-                for k in intkeys:
+                for k, v in intkeys.items():
                     if k < 1 or k >= i:
-                        named[str(k)] = intkeys[k]
+                        named[str(k)] = v
                 break

             for item in named.items():
diff --git a/pywikibot/page/_toolforge.py b/pywikibot/page/_toolforge.py
index 1d7aa8a..19a2782 100644
--- a/pywikibot/page/_toolforge.py
+++ b/pywikibot/page/_toolforge.py
@@ -11,6 +11,7 @@

 import collections
 import re
+from http import HTTPStatus
 from typing import TYPE_CHECKING

 import pywikibot
@@ -183,7 +184,7 @@
         url = baseurl.format(url=url)

         r = pywikibot.comms.http.fetch(url)
-        if r.status_code != 200:
+        if r.status_code != HTTPStatus.OK:
             r.raise_for_status()

         result: list[list[str]] = []
diff --git a/pywikibot/page/_wikibase.py b/pywikibot/page/_wikibase.py
index 34e3f58..4324705 100644
--- a/pywikibot/page/_wikibase.py
+++ b/pywikibot/page/_wikibase.py
@@ -1616,8 +1616,8 @@
                 qualifier.on_item = item
         for source in self.sources:
             for values in source.values():
-                for source in values:
-                    source.on_item = item
+                for val in values:
+                    val.on_item = item

     def _assert_attached(self) -> None:
         if self.on_item is None:
diff --git a/pywikibot/site/_datasite.py b/pywikibot/site/_datasite.py
index d4a645b..8568485 100644
--- a/pywikibot/site/_datasite.py
+++ b/pywikibot/site/_datasite.py
@@ -345,9 +345,9 @@

         params['token'] = self.tokens['csrf']

-        for arg in kwargs:
+        for arg, param in kwargs.items():
             if arg in ['clear', 'summary', 'tags']:
-                params[arg] = kwargs[arg]
+                params[arg] = param
             elif arg != 'baserevid':
                 warn(f'Unknown wbeditentity parameter {arg} ignored',
                      UserWarning, 2)
@@ -1002,9 +1002,9 @@
              })
         params.update(prepare_data(action, action_data))

-        for arg in kwargs:
+        for arg, param in kwargs.items():
             if arg in ['summary', 'tags']:
-                params[arg] = kwargs[arg]
+                params[arg] = param
             else:
                 warn(f'Unknown parameter {arg} for action {action}, ignored',
                      UserWarning, 2)
diff --git a/pywikibot/site/_generators.py b/pywikibot/site/_generators.py
index d77d675..8f5c7f7 100644
--- a/pywikibot/site/_generators.py
+++ b/pywikibot/site/_generators.py
@@ -209,9 +209,9 @@
                         # This checks to see if there is a normalized title in
                         # the response that corresponds to the canonical form
                         # used in the query.
-                        for key in cache:
+                        for key, value in cache.items():
                             if self.sametitle(key, pagedata['title']):
-                                cache[pagedata['title']] = cache[key]
+                                cache[pagedata['title']] = value
                                 break
                         else:
                             pywikibot.warning(
diff --git a/pywikibot/tools/__init__.py b/pywikibot/tools/__init__.py
index e23a89c..298f095 100644
--- a/pywikibot/tools/__init__.py
+++ b/pywikibot/tools/__init__.py
@@ -581,9 +581,9 @@
         with open(filename, 'rb') as f:
             magic_number = f.read(8)

-        for pattern in extension_map:
+        for pattern, ext in extension_map.items():
             if magic_number.startswith(pattern):
-                extension = extension_map[pattern]
+                extension = ext
                 break
         else:
             extension = ''
diff --git a/tests/site_tests.py b/tests/site_tests.py
index 7a0505b..b10ef12 100755
--- a/tests/site_tests.py
+++ b/tests/site_tests.py
@@ -196,7 +196,7 @@
             self.assertLength(mysite.mediawiki_messages(months, lang1), 12)
             self.assertLength(mysite.mediawiki_messages(months, lang2), 12)
             familyname = mysite.family.name
-            if lang1 != lang2 and lang1 != familyname and lang2 != familyname:
+            if lang1 not in (lang2, familyname) and lang2 != familyname:
                 self.assertNotEqual(mysite.mediawiki_messages(months, lang1),
                                     mysite.mediawiki_messages(months, lang2))


--
To view, visit 
https://gerrit.wikimedia.org/r/c/pywikibot/core/+/1096307?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: I43834038aabaa6ae921b0ae7d742e8c9478ef062
Gerrit-Change-Number: 1096307
Gerrit-PatchSet: 1
Gerrit-Owner: Xqt <i...@gno.de>
Gerrit-Reviewer: Xqt <i...@gno.de>
Gerrit-Reviewer: jenkins-bot
_______________________________________________
Pywikibot-commits mailing list -- pywikibot-commits@lists.wikimedia.org
To unsubscribe send an email to pywikibot-commits-le...@lists.wikimedia.org

Reply via email to