do not suppress KeyboardInterrupts in CLI loader
This commit is contained in:
parent
18e0a8ecea
commit
332162775f
@ -24,6 +24,7 @@ class LoadingAnimation:
|
||||
self.ending_text = ending_text
|
||||
self.timeout = timeout
|
||||
self.done: bool = False
|
||||
self.keyboard_interrupt: bool = False
|
||||
|
||||
self._isatty = sys.stdout.isatty()
|
||||
self._do_animation = bool(sys.stdout.isatty())
|
||||
@ -53,16 +54,15 @@ class LoadingAnimation:
|
||||
exc_type: type[Exception],
|
||||
exc_value,
|
||||
tb,
|
||||
) -> bool:
|
||||
) -> None:
|
||||
if exc_type is not None:
|
||||
self.stop(interrupt=True)
|
||||
if exc_type is KeyboardInterrupt:
|
||||
self.keyboard_interrupt = True
|
||||
print("Operation cancelled by user. (KeyboardInterrupt)", flush=True)
|
||||
return True
|
||||
return False
|
||||
return
|
||||
|
||||
self.stop()
|
||||
return False
|
||||
|
||||
def _animation(self) -> None:
|
||||
for frame in cycle(self.frames):
|
||||
@ -100,6 +100,6 @@ def default_loading(func: Callable[P, T]) -> Callable[P, T]:
|
||||
with LoadingAnimation(loading_txt, ending_text):
|
||||
res = func(*args, **kwargs)
|
||||
|
||||
return res # type: ignore
|
||||
return res
|
||||
|
||||
return wrapper
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user