Skip to content

Commit 4e283b0

Browse files
author
OutlyingWest
committed
dumping process animation for scorep mode
1 parent 6425875 commit 4e283b0

1 file changed

Lines changed: 25 additions & 1 deletion

File tree

src/jumper/userpersistence.py

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
1+
import logging
12
import os
23
import shutil
34
import ast
5+
import threading
6+
import time
7+
import sys
8+
49
import astunparse
510
from pathlib import Path
611
import uuid
@@ -105,14 +110,19 @@ def jupyter_dump(self):
105110
jupyter_dump_ = (
106111
"import sys\n"
107112
"import os\n"
113+
"import threading\n"
108114
f"import {self.marshaller}\n"
109-
"from jumper.userpersistence import dump_runtime,dump_variables\n"
115+
"from jumper.userpersistence import dump_runtime, dump_variables, spinner_task, stop_spinner_event\n"
116+
"spinner_thread = threading.Thread(target=spinner_task)\n"
117+
"spinner_thread.start()\n"
110118
"dump_runtime(os.environ, sys.path,"
111119
f"'{self.paths['jupyter']['os_environ']}',"
112120
f"'{self.paths['jupyter']['sys_path']}',{self.marshaller})\n"
113121
f"dump_variables({str(self.jupyter_variables)},globals(),"
114122
f"'{self.paths['jupyter']['var']}',"
115123
f"{self.marshaller})\n"
124+
"stop_spinner_event.set()\n"
125+
"spinner_thread.join()\n"
116126
)
117127

118128
return jupyter_dump_
@@ -368,3 +378,17 @@ def magics_cleanup(code):
368378
): # Line magic & executed cell, remove first word
369379
nomagic_code = code.split(" ", 1)[1]
370380
return scorep_env, nomagic_code
381+
382+
383+
stop_spinner_event = threading.Event()
384+
385+
386+
def spinner_task(message="Loading user input..."):
387+
spinner = ['|', '/', '-', '\\']
388+
i = 0
389+
while not stop_spinner_event.is_set():
390+
sys.stdout.write(f'\r{message} {spinner[i % len(spinner)]}')
391+
sys.stdout.flush()
392+
time.sleep(0.1)
393+
i += 1
394+
sys.stdout.write('\rUser input loaded! \n')

0 commit comments

Comments
 (0)