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 <[email protected]>
Gerrit-Reviewer: John Vandenberg <[email protected]>
Gerrit-Reviewer: Ladsgroup <[email protected]>
Gerrit-Reviewer: Xqt <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to