From 8f69000ab6f0a42b2da06ad38a0a8588f52afc8a Mon Sep 17 00:00:00 2001 From: Giorgos Verigakis Date: Tue, 22 Jan 2013 10:21:10 +0800 Subject: [PATCH] Add a SIGINT handling mixin Inspired by @glenbot's pull request --- progress/helpers.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/progress/helpers.py b/progress/helpers.py index 08f8b61..9285fe5 100644 --- a/progress/helpers.py +++ b/progress/helpers.py @@ -72,3 +72,19 @@ class WritelnMixin(object): print(file=self.file) if self.hide_cursor: print(SHOW_CURSOR, end='', file=self.file) + + +from signal import signal, SIGINT +from sys import exit + + +class SigIntMixin(object): + """Registers a signal handler that calls finish on SIGINT""" + + def __init__(self, *args, **kwargs): + super(SigIntMixin, self).__init__(*args, **kwargs) + signal(SIGINT, self._sigint_handler) + + def _sigint_handler(self, signum, frame): + self.finish() + exit(0)