jenkins-bot has submitted this change and it was merged.
Change subject: Safer ctrl-c handling.
......................................................................
Safer ctrl-c handling.
This prevents half-finished changes to be written to Wikidata.
Instead, this finished the current change and then exits.
Change-Id: Iac27f7f7ddc7578368fa149e4be136bb0f9b12ef
---
M scripts/harvest_template.py
1 file changed, 17 insertions(+), 0 deletions(-)
Approvals:
Xqt: Looks good to me, approved
jenkins-bot: Verified
diff --git a/scripts/harvest_template.py b/scripts/harvest_template.py
index 8c60ba6..ec5fc3b 100755
--- a/scripts/harvest_template.py
+++ b/scripts/harvest_template.py
@@ -35,6 +35,21 @@
#
import re
+import signal
+
+willstop = False
+
+
+def _signal_handler(signal, frame):
+ global willstop
+ if not willstop:
+ willstop = True
+ print("Received ctrl-c. Finishing current item; press ctrl-c again to abort.")
+ else:
+ raise KeyboardInterrupt
+
+signal.signal(signal.SIGINT, _signal_handler)
+
import pywikibot
from pywikibot import pagegenerators as pg, textlib, WikidataBot
@@ -111,6 +126,8 @@
def treat(self, page, item):
"""Process a single page/item."""
+ if willstop:
+ raise KeyboardInterrupt
self.current_page = page
item.get()
if set(self.fields.values()) <= set(item.claims.keys()):
--
To view, visit https://gerrit.wikimedia.org/r/173650
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: Iac27f7f7ddc7578368fa149e4be136bb0f9b12ef
Gerrit-PatchSet: 6
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Owner: Merlijn van Deen <valhallasw(a)arctus.nl>
Gerrit-Reviewer: John Vandenberg <jayvdb(a)gmail.com>
Gerrit-Reviewer: Ladsgroup <ladsgroup(a)gmail.com>
Gerrit-Reviewer: Xqt <info(a)gno.de>
Gerrit-Reviewer: jenkins-bot <>
jenkins-bot has submitted this change and it was merged.
Change subject: [PEP8] Reduce lines beneath 100 characters
......................................................................
[PEP8] Reduce lines beneath 100 characters
Change-Id: Ibe63d770b9e9b8d0ff46f11a1a54e84a88ce194d
---
M tests/api_tests.py
M tests/site_detect_tests.py
2 files changed, 9 insertions(+), 5 deletions(-)
Approvals:
XZise: Looks good to me, approved
jenkins-bot: Verified
diff --git a/tests/api_tests.py b/tests/api_tests.py
index 2a76405..822f70a 100644
--- a/tests/api_tests.py
+++ b/tests/api_tests.py
@@ -58,9 +58,13 @@
# Extract parameter data from the body, it's ugly but allows us
# to verify that we actually test the right request
parameters = [p.split(b'=', 1) for p in parameters.split(b'&')]
- parameters = dict(
- (param.decode('ascii'), set(unquote_to_bytes(value).decode(kwargs['site'].encoding()).replace('+', ' ').split('|')))
- for param, value in parameters)
+ keys = [p[0].decode('ascii') for p in parameters]
+ values = [unquote_to_bytes(p[1]) for p in parameters]
+ values = [v.decode(kwargs['site'].encoding()) for v in values]
+ values = [v.replace('+', ' ') for v in values]
+ values = [set(v.split('|')) for v in values]
+ parameters = dict(zip(keys, values))
+
if 'fake' not in parameters:
return False # do an actual request
if self.assert_parameters:
diff --git a/tests/site_detect_tests.py b/tests/site_detect_tests.py
index bb3334d..f88c128 100644
--- a/tests/site_detect_tests.py
+++ b/tests/site_detect_tests.py
@@ -54,8 +54,8 @@
super(TestWikiSiteDetection, self).tearDown()
print('Out of %d sites, %d tests passed, %d tests failed '
'and %d tests raised an error'
- % (len(self.all), len(self.passes), len(self.failures), len(self.errors)
- )
+ % (len(self.all), len(self.passes), len(self.failures),
+ len(self.errors))
)
PREFIXES = ['PASS', 'ERR ', 'FAIL', 'MISS']
--
To view, visit https://gerrit.wikimedia.org/r/231601
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: Ibe63d770b9e9b8d0ff46f11a1a54e84a88ce194d
Gerrit-PatchSet: 6
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Owner: Xqt <info(a)gno.de>
Gerrit-Reviewer: John Vandenberg <jayvdb(a)gmail.com>
Gerrit-Reviewer: Ladsgroup <ladsgroup(a)gmail.com>
Gerrit-Reviewer: Merlijn van Deen <valhallasw(a)arctus.nl>
Gerrit-Reviewer: XZise <CommodoreFabianus(a)gmx.de>
Gerrit-Reviewer: Xqt <info(a)gno.de>
Gerrit-Reviewer: jenkins-bot <>
jenkins-bot has submitted this change and it was merged.
Change subject: [IMPR] Drop a script from the throttle log while waiting.
......................................................................
[IMPR] Drop a script from the throttle log while waiting.
checkimages.py and welcome.py may run in a loop and start over and over again
after a delay time. Drop these script from throttle control as long as they
are waiting to allow other scripts decreasing throttle write delay.
Change-Id: Ic3f141fe01e7b837d7f34037e7eb8a4ab865984d
---
M scripts/checkimages.py
M scripts/welcome.py
2 files changed, 2 insertions(+), 0 deletions(-)
Approvals:
Merlijn van Deen: Looks good to me, approved
jenkins-bot: Verified
diff --git a/scripts/checkimages.py b/scripts/checkimages.py
index 4afe309..8588e11 100755
--- a/scripts/checkimages.py
+++ b/scripts/checkimages.py
@@ -1832,6 +1832,7 @@
if repeat:
pywikibot.output(u"Waiting for %s seconds," % time_sleep)
+ pywikibot.stopme()
time.sleep(time_sleep)
else:
break
diff --git a/scripts/welcome.py b/scripts/welcome.py
index 2176767..bc3ae1f 100755
--- a/scripts/welcome.py
+++ b/scripts/welcome.py
@@ -854,6 +854,7 @@
u"%d %b %Y %H:%M:%S (UTC)", time.gmtime())
pywikibot.output(u'Sleeping %d seconds before rerun. %s'
% (globalvar.timeRecur, strfstr))
+ pywikibot.stopme()
time.sleep(globalvar.timeRecur)
else:
raise KeyboardInterrupt
--
To view, visit https://gerrit.wikimedia.org/r/227741
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: Ic3f141fe01e7b837d7f34037e7eb8a4ab865984d
Gerrit-PatchSet: 1
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Owner: Xqt <info(a)gno.de>
Gerrit-Reviewer: John Vandenberg <jayvdb(a)gmail.com>
Gerrit-Reviewer: Ladsgroup <ladsgroup(a)gmail.com>
Gerrit-Reviewer: Merlijn van Deen <valhallasw(a)arctus.nl>
Gerrit-Reviewer: XZise <CommodoreFabianus(a)gmx.de>
Gerrit-Reviewer: Xqt <info(a)gno.de>
Gerrit-Reviewer: jenkins-bot <>
jenkins-bot has submitted this change and it was merged.
Change subject: redirect.py: Give a more precise user message
......................................................................
redirect.py: Give a more precise user message
When redirect broken is running without -delete option a "Won't delete anything"
sounds odd. Print a different message if this switch is off.
Change-Id: Ibdb431665cf5c0d66b5d414d5aa16da8fd01c37c
---
M scripts/redirect.py
1 file changed, 9 insertions(+), 5 deletions(-)
Approvals:
Merlijn van Deen: Looks good to me, approved
jenkins-bot: Verified
diff --git a/scripts/redirect.py b/scripts/redirect.py
index 93f2b55..efdf972 100755
--- a/scripts/redirect.py
+++ b/scripts/redirect.py
@@ -496,15 +496,19 @@
else:
pywikibot.output(u'Cannot fix or delete the broken redirect')
except pywikibot.IsRedirectPage:
- pywikibot.output(u"Redirect target %s is also a redirect! "
- u"Won't delete anything."
- % targetPage.title(asLink=True))
+ pywikibot.output(
+ "Redirect target {{0}} is also a redirect! {{1}}".format(
+ targetPage.title(asLink=True),
+ "Won't delete anything."
+ if self.getOption('delete') else "Skipping."))
else:
# we successfully get the target page, meaning that
# it exists and is not a redirect: no reason to touch it.
pywikibot.output(
- u'Redirect target %s does exist! Won\'t delete anything.'
- % targetPage.title(asLink=True))
+ "Redirect target {{0}} does exist! {{1}}".format(
+ targetPage.title(asLink=True),
+ "Won't delete anything."
+ if self.getOption('delete') else "Skipping."))
def fix_double_redirects(self):
for redir_name in self.generator.retrieve_double_redirects():
--
To view, visit https://gerrit.wikimedia.org/r/228446
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: Ibdb431665cf5c0d66b5d414d5aa16da8fd01c37c
Gerrit-PatchSet: 4
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Owner: Xqt <info(a)gno.de>
Gerrit-Reviewer: John Vandenberg <jayvdb(a)gmail.com>
Gerrit-Reviewer: Ladsgroup <ladsgroup(a)gmail.com>
Gerrit-Reviewer: Merlijn van Deen <valhallasw(a)arctus.nl>
Gerrit-Reviewer: Russell Blau <russblau(a)imapmail.org>
Gerrit-Reviewer: XZise <CommodoreFabianus(a)gmx.de>
Gerrit-Reviewer: Xqt <info(a)gno.de>
Gerrit-Reviewer: jenkins-bot <>
jenkins-bot has submitted this change and it was merged.
Change subject: [FIX] Do not create a redirect loop while solving a broken redirects
......................................................................
[FIX] Do not create a redirect loop while solving a broken redirects
- use redir_page to compare with movedTarget
- deletion request if redirect target could not be recovered
- new logic for final statement
Bug: T107695
Change-Id: I69f0da50ed2f9a6bf27337ab797a6b99e1ada50f
---
M scripts/redirect.py
1 file changed, 8 insertions(+), 4 deletions(-)
Approvals:
Merlijn van Deen: Looks good to me, approved
jenkins-bot: Verified
diff --git a/scripts/redirect.py b/scripts/redirect.py
index 81ad431..c955f2b 100755
--- a/scripts/redirect.py
+++ b/scripts/redirect.py
@@ -403,6 +403,7 @@
redir_page = redir_name
# Show the title of the page we're working on.
# Highlight the title in purple.
+ done = not self.getOption('delete')
pywikibot.output(u"\n\n>>> \03{lightpurple}%s\03{default} <<<"
% redir_page.title())
try:
@@ -433,8 +434,9 @@
# FIXME: Test to another move
pywikibot.output(u'Target page %s does not exist'
% (movedTarget))
- elif redir_name == movedTarget.title():
- pywikibot.output(u'Target page forms a redirect loop')
+ elif redir_page == movedTarget:
+ pywikibot.output(
+ 'Redirect to target page forms a redirect loop')
else:
pywikibot.output(u'%s has been moved to %s'
% (redir_page, movedTarget))
@@ -462,7 +464,9 @@
% redir_page.title())
except pywikibot.OtherPageSaveError:
pywikibot.exception()
- elif self.getOption('delete') and self.user_confirm(
+ else:
+ done = True
+ if not done and self.user_confirm(
u'Redirect target %s does not exist.\n'
u'Do you want to delete %s?'
% (targetPage.title(asLink=True),
@@ -493,7 +497,7 @@
else:
pywikibot.output(
u'No speedy deletion template available')
- else:
+ elif not (self.getOption('delete') or movedTarget):
pywikibot.output(u'Cannot fix or delete the broken redirect')
except pywikibot.IsRedirectPage:
pywikibot.output(u"Redirect target %s is also a redirect! "
--
To view, visit https://gerrit.wikimedia.org/r/228653
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I69f0da50ed2f9a6bf27337ab797a6b99e1ada50f
Gerrit-PatchSet: 2
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Owner: Xqt <info(a)gno.de>
Gerrit-Reviewer: John Vandenberg <jayvdb(a)gmail.com>
Gerrit-Reviewer: Ladsgroup <ladsgroup(a)gmail.com>
Gerrit-Reviewer: Merlijn van Deen <valhallasw(a)arctus.nl>
Gerrit-Reviewer: Russell Blau <russblau(a)imapmail.org>
Gerrit-Reviewer: XZise <CommodoreFabianus(a)gmx.de>
Gerrit-Reviewer: jenkins-bot <>