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

Change subject: [IMPR] Code improvements
......................................................................

[IMPR] Code improvements

- decrease nested statements
- simplify imports
- use maximum() function to determine maximum
- remove emtry comments

Change-Id: I7f95850f83ab822e0448f0766e40c9ecab4995bb
---
M pywikibot/bot.py
M pywikibot/bot_choice.py
M pywikibot/diff.py
M pywikibot/pagegenerators/_filters.py
M pywikibot/site/_datasite.py
M pywikibot/site/_upload.py
M pywikibot/site_detect.py
M pywikibot/specialbots/_upload.py
M scripts/category.py
M scripts/checkimages.py
M scripts/interwikidata.py
M scripts/maintenance/cache.py
M scripts/pagefromfile.py
M scripts/patrol.py
M scripts/solve_disambiguation.py
M scripts/template.py
M scripts/transwikiimport.py
M scripts/welcome.py
M tests/cache_tests.py
M tests/sparql_tests.py
20 files changed, 120 insertions(+), 138 deletions(-)

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




diff --git a/pywikibot/bot.py b/pywikibot/bot.py
index 15d425e..010005c 100644
--- a/pywikibot/bot.py
+++ b/pywikibot/bot.py
@@ -2284,32 +2284,31 @@
                 item = pywikibot.ItemPage.fromPage(page)
             except NoPageError:
                 item = None
+        elif isinstance(page, pywikibot.ItemPage):
+            item = page
+            page = None
         else:
-            if isinstance(page, pywikibot.ItemPage):
-                item = page
+            # FIXME: Hack because 'is_data_repository' doesn't work if
+            #        site is the APISite. See T85483
+            assert page is not None
+            data_site = page.site.data_repository()
+            if (data_site.family == page.site.family
+                    and data_site.code == page.site.code):
+                is_item = page.namespace() == data_site.item_namespace.id
+            else:
+                is_item = False
+            if is_item:
+                item = pywikibot.ItemPage(data_site, page.title())
                 page = None
             else:
-                # FIXME: Hack because 'is_data_repository' doesn't work if
-                #        site is the APISite. See T85483
-                assert page is not None
-                data_site = page.site.data_repository()
-                if (data_site.family == page.site.family
-                        and data_site.code == page.site.code):
-                    is_item = page.namespace() == data_site.item_namespace.id
-                else:
-                    is_item = False
-                if is_item:
-                    item = pywikibot.ItemPage(data_site, page.title())
-                    page = None
-                else:
-                    try:
-                        item = pywikibot.ItemPage.fromPage(page)
-                    except NoPageError:
-                        item = None
-                    if self.use_from_page is False:
-                        _error(f'{page} is not in the item namespace but must'
-                               ' be an item.')
-                        return
+                try:
+                    item = pywikibot.ItemPage.fromPage(page)
+                except NoPageError:
+                    item = None
+                if self.use_from_page is False:
+                    _error(f'{page} is not in the item namespace but must'
+                           ' be an item.')
+                    return

         assert not (page is None and item is None)

diff --git a/pywikibot/bot_choice.py b/pywikibot/bot_choice.py
index eacc8ae..9ddc71d 100644
--- a/pywikibot/bot_choice.py
+++ b/pywikibot/bot_choice.py
@@ -350,14 +350,13 @@
                     kwargs['label'] += '#' + self.replacer._new.section
             else:
                 kwargs['label'] = self.replacer._new.anchor
+        elif self.replacer.current_link.anchor is None:
+            kwargs['label'] = self.replacer.current_groups['title']
+            if self.replacer.current_groups['section']:
+                kwargs['label'] += '#' \
+                    + self.replacer.current_groups['section']
         else:
-            if self.replacer.current_link.anchor is None:
-                kwargs['label'] = self.replacer.current_groups['title']
-                if self.replacer.current_groups['section']:
-                    kwargs['label'] += '#' \
-                        + self.replacer.current_groups['section']
-            else:
-                kwargs['label'] = self.replacer.current_link.anchor
+            kwargs['label'] = self.replacer.current_link.anchor
         return pywikibot.Link.create_separated(
             self.replacer._new.canonical_title(), self.replacer._new.site,
             **kwargs)
diff --git a/pywikibot/diff.py b/pywikibot/diff.py
index d1df913..005da21 100644
--- a/pywikibot/diff.py
+++ b/pywikibot/diff.py
@@ -189,10 +189,9 @@
                         apply_color = 'default;' + self.bg_colors[color]
                     char_tagged = f'<<{apply_color}>>{char}'
                     color_closed = False
-            else:
-                if char_ref == ' ':
-                    char_tagged = f'<<default>>{char}'
-                    color_closed = True
+            elif char_ref == ' ':
+                char_tagged = f'<<default>>{char}'
+                color_closed = True
             colored_line += char_tagged

         if not color_closed:
diff --git a/pywikibot/pagegenerators/_filters.py 
b/pywikibot/pagegenerators/_filters.py
index 381f598..660ec16 100644
--- a/pywikibot/pagegenerators/_filters.py
+++ b/pywikibot/pagegenerators/_filters.py
@@ -222,10 +222,9 @@
     for page in generator:
         if page.depth <= max_depth:
             yield page
-        else:
-            if show_filtered:
-                pywikibot.info(
-                    f'Page {page} is a subpage that is too deep. Skipping.')
+        elif show_filtered:
+            pywikibot.info(
+                f'Page {page} is a subpage that is too deep. Skipping.')


 class RegexFilter:
diff --git a/pywikibot/site/_datasite.py b/pywikibot/site/_datasite.py
index c822153..d4a645b 100644
--- a/pywikibot/site/_datasite.py
+++ b/pywikibot/site/_datasite.py
@@ -221,15 +221,14 @@
                     ident = p._defined_by()
                     for key in ident:
                         req[key].append(ident[key])
+                elif (p.site == self
+                      and p.namespace() in self._entity_namespaces.values()):
+                    req['ids'].append(p.title(with_ns=False))
                 else:
-                    if p.site == self and p.namespace() in (
-                            self._entity_namespaces.values()):
-                        req['ids'].append(p.title(with_ns=False))
-                    else:
-                        assert p.site.has_data_repository, \
-                            'Site must have a data repository'
-                        req['sites'].append(p.site.dbName())
-                        req['titles'].append(p._link._text)
+                    assert p.site.has_data_repository, \
+                        'Site must have a data repository'
+                    req['sites'].append(p.site.dbName())
+                    req['titles'].append(p._link._text)

             req = self.simple_request(action='wbgetentities', **req)
             data = req.submit()
diff --git a/pywikibot/site/_upload.py b/pywikibot/site/_upload.py
index d5320eb..0386764 100644
--- a/pywikibot/site/_upload.py
+++ b/pywikibot/site/_upload.py
@@ -413,17 +413,16 @@
                             raise Error('Unrecognized result: {result}'
                                         .format_map(data))

-                else:  # not chunked upload
-                    if file_key:
-                        final_request['filekey'] = file_key
-                    else:
-                        file_contents = f.read()
-                        filetype = (mimetypes.guess_type(self.filename)[0]
-                                    or 'application/octet-stream')
-                        final_request.mime = {
-                            'file': (file_contents, filetype.split('/'),
-                                     {'filename': mime_filename})
-                        }
+                elif file_key:
+                    final_request['filekey'] = file_key
+                else:
+                    file_contents = f.read()
+                    filetype = (mimetypes.guess_type(self.filename)[0]
+                                or 'application/octet-stream')
+                    final_request.mime = {
+                        'file': (file_contents, filetype.split('/'),
+                                 {'filename': mime_filename})
+                    }
         else:
             # upload by URL
             if not self.site.has_right('upload_by_url'):
diff --git a/pywikibot/site_detect.py b/pywikibot/site_detect.py
index 940139e..728f9e2 100644
--- a/pywikibot/site_detect.py
+++ b/pywikibot/site_detect.py
@@ -243,20 +243,19 @@
                 f'{new_parsed_url.netloc or self.url.netloc}'
                 f'{new_parsed_url.path}'
             )
-        else:
-            if self._parsed_url:
-                # allow upgrades to https, but not downgrades
-                if self._parsed_url.scheme == 'https' \
-                   and new_parsed_url.scheme != self._parsed_url.scheme:
-                    return
+        elif self._parsed_url:
+            # allow upgrades to https, but not downgrades
+            if self._parsed_url.scheme == 'https' \
+               and new_parsed_url.scheme != self._parsed_url.scheme:
+                return

-                # allow http://www.brickwiki.info/ vs http://brickwiki.info/
-                if (new_parsed_url.netloc in self._parsed_url.netloc
-                        or self._parsed_url.netloc in new_parsed_url.netloc):
-                    return
+            # allow http://www.brickwiki.info/ vs http://brickwiki.info/
+            if (new_parsed_url.netloc in self._parsed_url.netloc
+                    or self._parsed_url.netloc in new_parsed_url.netloc):
+                return

-                assert new_parsed_url == self._parsed_url, \
-                       f'{self._parsed_url} != {new_parsed_url}'
+            assert new_parsed_url == self._parsed_url, \
+                   f'{self._parsed_url} != {new_parsed_url}'

         self._parsed_url = new_parsed_url
         self.server = f'{self._parsed_url.scheme}://{self._parsed_url.netloc}'
diff --git a/pywikibot/specialbots/_upload.py b/pywikibot/specialbots/_upload.py
index 3654d39..69abe2a 100644
--- a/pywikibot/specialbots/_upload.py
+++ b/pywikibot/specialbots/_upload.py
@@ -19,10 +19,10 @@
 import requests

 import pywikibot
-import pywikibot.comms.http as http
 from pywikibot import config
 from pywikibot.backports import Callable
 from pywikibot.bot import BaseBot, QuitKeyboardInterrupt
+from pywikibot.comms import http
 from pywikibot.exceptions import APIError, FatalServerError, NoPageError


diff --git a/scripts/category.py b/scripts/category.py
index 9798d27..8d601e6 100755
--- a/scripts/category.py
+++ b/scripts/category.py
@@ -700,17 +700,16 @@
         elif deletion_comment == self.DELETION_COMMENT_SAME_AS_EDIT_COMMENT:
             # Use the edit comment as the deletion comment.
             self.deletion_comment = self.comment
+        # Deletion comment is set to internationalized default.
+        elif self.newcat:
+            # Category is moved.
+            self.deletion_comment = i18n.twtranslate(self.site,
+                                                     'category-was-moved',
+                                                     template_vars)
         else:
-            # Deletion comment is set to internationalized default.
-            if self.newcat:
-                # Category is moved.
-                self.deletion_comment = i18n.twtranslate(self.site,
-                                                         'category-was-moved',
-                                                         template_vars)
-            else:
-                # Category is deleted.
-                self.deletion_comment = i18n.twtranslate(
-                    self.site, 'category-was-disbanded')
+            # Category is deleted.
+            self.deletion_comment = i18n.twtranslate(
+                self.site, 'category-was-disbanded')
         self.move_comment = move_comment if move_comment else self.comment

     def run(self) -> None:
diff --git a/scripts/checkimages.py b/scripts/checkimages.py
index 60abaf6..9f4741c 100755
--- a/scripts/checkimages.py
+++ b/scripts/checkimages.py
@@ -1262,22 +1262,21 @@
                 else:
                     pywikibot.info('Skipping the file...')
                 self.some_problem = False
-        else:
-            if not self.seems_ok and self.license_found:
-                rep_text_license_fake = ((self.list_entry
-                                          + "seems to have a ''fake license'',"
-                                          ' license detected:'
-                                          ' <nowiki>%s</nowiki>') %
-                                         (self.image_name, self.license_found))
-                print_with_time_zone(
-                    f'{self.image_name} seems to have a fake license: '
-                    f'{self.license_found}, reporting...')
-                self.report_image(self.image_name,
-                                  rep_text=rep_text_license_fake,
-                                  addings=False)
-            elif self.license_found:
-                pywikibot.info(f'[[{self.image_name}]] seems ok, license '
-                               f'found: {{{{{self.license_found}}}}}...')
+        elif not self.seems_ok and self.license_found:
+            rep_text_license_fake = ((self.list_entry
+                                      + "seems to have a ''fake license'',"
+                                      ' license detected:'
+                                      ' <nowiki>%s</nowiki>') %
+                                     (self.image_name, self.license_found))
+            print_with_time_zone(
+                f'{self.image_name} seems to have a fake license: '
+                f'{self.license_found}, reporting...')
+            self.report_image(self.image_name,
+                              rep_text=rep_text_license_fake,
+                              addings=False)
+        elif self.license_found:
+            pywikibot.info(f'[[{self.image_name}]] seems ok, license '
+                           f'found: {{{{{self.license_found}}}}}...')
         return (self.license_found, self.white_templates_found)

     @staticmethod
diff --git a/scripts/interwikidata.py b/scripts/interwikidata.py
index 5187f42..23767dd 100755
--- a/scripts/interwikidata.py
+++ b/scripts/interwikidata.py
@@ -106,9 +106,8 @@
             item = self.try_to_add()
             if self.opt.create and item is None:
                 item = self.create_item()
-        else:
-            if self.opt.merge:
-                item = self.try_to_merge(item)
+        elif self.opt.merge:
+            item = self.try_to_merge(item)

         if item and self.opt.clean:
             self.current_item = item
diff --git a/scripts/maintenance/cache.py b/scripts/maintenance/cache.py
index 929d5d8..45674ff 100755
--- a/scripts/maintenance/cache.py
+++ b/scripts/maintenance/cache.py
@@ -444,11 +444,10 @@
             if output:
                 sys.exit('Only one output may be defined.')
             output = ''
+        elif not cache_paths:
+            cache_paths = [arg]
         else:
-            if not cache_paths:
-                cache_paths = [arg]
-            else:
-                cache_paths.append(arg)
+            cache_paths.append(arg)

     if not cache_paths:
         folders = ('apicache', 'apicache-py2', 'apicache-py3')
diff --git a/scripts/pagefromfile.py b/scripts/pagefromfile.py
index 2e0e09d..1217bbf 100755
--- a/scripts/pagefromfile.py
+++ b/scripts/pagefromfile.py
@@ -169,9 +169,8 @@
             else:
                 pywikibot.info(f'Page {title} already exists, not adding!')
                 return
-        else:
-            if self.opt.autosummary:
-                comment = config.default_edit_summary = ''
+        elif self.opt.autosummary:
+            comment = config.default_edit_summary = ''

         self.put_current(contents, summary=comment,
                          minor=self.opt.minor,
diff --git a/scripts/patrol.py b/scripts/patrol.py
index dd9d40f..410c1ea 100755
--- a/scripts/patrol.py
+++ b/scripts/patrol.py
@@ -323,8 +323,7 @@
         else:
             verbose_output('Skipped')

-        if rcid > self.highest_rcid:
-            self.highest_rcid = rcid
+        self.highest_rcid = max(rcid, self.highest_rcid)
         self.last_rcid = rcid


diff --git a/scripts/solve_disambiguation.py b/scripts/solve_disambiguation.py
index 2b57752..367086e 100755
--- a/scripts/solve_disambiguation.py
+++ b/scripts/solve_disambiguation.py
@@ -1163,22 +1163,21 @@
                     {'from': page.title(),
                      'to': targets,
                      'count': len(new_targets)})
+        elif unlink_counter and not new_targets:
+            self.summary = i18n.twtranslate(
+                self.site, 'solve_disambiguation-links-removed',
+                {'from': page.title(),
+                 'count': unlink_counter})
+        elif dn and not new_targets:
+            self.summary = i18n.twtranslate(
+                self.site, 'solve_disambiguation-adding-dn-template',
+                {'from': page.title()})
         else:
-            if unlink_counter and not new_targets:
-                self.summary = i18n.twtranslate(
-                    self.site, 'solve_disambiguation-links-removed',
-                    {'from': page.title(),
-                     'count': unlink_counter})
-            elif dn and not new_targets:
-                self.summary = i18n.twtranslate(
-                    self.site, 'solve_disambiguation-adding-dn-template',
-                    {'from': page.title()})
-            else:
-                self.summary = i18n.twtranslate(
-                    self.site, 'solve_disambiguation-links-resolved',
-                    {'from': page.title(),
-                     'to': targets,
-                     'count': len(new_targets)})
+            self.summary = i18n.twtranslate(
+                self.site, 'solve_disambiguation-links-resolved',
+                {'from': page.title(),
+                 'to': targets,
+                 'count': len(new_targets)})

     def teardown(self) -> None:
         """Write ignoring pages to a file."""
diff --git a/scripts/template.py b/scripts/template.py
index 770fc42..cc91a6a 100755
--- a/scripts/template.py
+++ b/scripts/template.py
@@ -255,10 +255,9 @@
             skip = True
         elif arg.startswith('-timestamp:'):
             timestamp = arg[len('-timestamp:'):]
-        else:
-            if not gen_factory.handle_arg(arg):
-                template_name = pywikibot.Page(site, arg, ns=10)
-                template_names.append(template_name.title(with_ns=False))
+        elif not gen_factory.handle_arg(arg):
+            template_name = pywikibot.Page(site, arg, ns=10)
+            template_names.append(template_name.title(with_ns=False))

     if not template_names:
         pywikibot.bot.suggest_help(missing_parameters=['templates'])
diff --git a/scripts/transwikiimport.py b/scripts/transwikiimport.py
index 7a8a18e..67bcfb5 100755
--- a/scripts/transwikiimport.py
+++ b/scripts/transwikiimport.py
@@ -289,13 +289,12 @@
                         ' exists)'
                     )
                     continue
-            else:
-                if not targetpage.botMayEdit():
-                    pywikibot.warning(
-                        f'Target page {targetpage.title(as_link=True)} is not'
-                        ' editable by bots'
-                    )
-                    continue
+            elif not targetpage.botMayEdit():
+                pywikibot.warning(
+                    f'Target page {targetpage.title(as_link=True)} is not'
+                    ' editable by bots'
+                )
+                continue

             params['interwikipage'] = fromtitle
             api_query(tosite, params)
diff --git a/scripts/welcome.py b/scripts/welcome.py
index 18a4be1..430da3a 100755
--- a/scripts/welcome.py
+++ b/scripts/welcome.py
@@ -429,8 +429,6 @@
     'zh': '<small>(via ~~~)</small>',
 }

-#
-#
 LOGPAGE_HEADER = {
     '_default': '{|border="2" cellpadding="4" cellspacing="0" style="margin: '
                 '0.5em 0.5em 0.5em 1em; padding: 0.5em; background: #bfcda5; '
diff --git a/tests/cache_tests.py b/tests/cache_tests.py
index 837c51e..b02bf40 100755
--- a/tests/cache_tests.py
+++ b/tests/cache_tests.py
@@ -9,9 +9,9 @@

 import unittest

-import scripts.maintenance.cache as cache
 from pywikibot.login import LoginStatus
 from pywikibot.site import BaseSite
+from scripts.maintenance import cache
 from tests import join_cache_path
 from tests.aspects import TestCase

diff --git a/tests/sparql_tests.py b/tests/sparql_tests.py
index 5ea7346..243ad7b 100755
--- a/tests/sparql_tests.py
+++ b/tests/sparql_tests.py
@@ -13,7 +13,7 @@
 from unittest.mock import patch

 import pywikibot
-import pywikibot.data.sparql as sparql
+from pywikibot.data import sparql
 from pywikibot.exceptions import NoUsernameError
 from tests.aspects import TestCase, WikidataTestCase
 from tests.utils import skipping

--
To view, visit 
https://gerrit.wikimedia.org/r/c/pywikibot/core/+/1086021?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: I7f95850f83ab822e0448f0766e40c9ecab4995bb
Gerrit-Change-Number: 1086021
Gerrit-PatchSet: 3
Gerrit-Owner: Xqt <[email protected]>
Gerrit-Reviewer: D3r1ck01 <[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