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]