-
Notifications
You must be signed in to change notification settings - Fork 57
Research: Progress Indicators Appendix
Antoni Ivanov edited this page Sep 14, 2023
·
1 revision
class TqdmLoggingHandler(logging.Handler):
def __init__(self, level=logging.NOTSET):
super().__init__(level)
def emit(self, record):
try:
msg = self.format(record)
tqdm.write(msg)
self.flush()
except (KeyboardInterrupt, SystemExit):
raise
except:
self.handleError(record)
logging.basicConfig(level=logging.INFO, handlers=[TqdmLoggingHandler()])
logs = logging.getLogger("hi")
logs.info("Standard info")
# Initialize the parent progress bar
parent_progress = tqdm(total=11, desc="Job", position=0, leave=True, dynamic_ncols=False)
for i in range(5):
time.sleep(0.2)
parent_progress.update(1)
# Initialize the child progress bar
child_progress = tqdm(total=0, desc=f"Step {i+1}", position=1, leave=False, dynamic_ncols=False)
child_progress2 = tqdm(total=0, desc=f"Step Parallel {i+1}", position=2, leave=False, dynamic_ncols=False)
logs.info("Start progressing on each of the steps")
for j in range(9):
time.sleep(1.5)
logs.info(" progressing on each of the steps")
if j % 2 == 0 and j < 5:
child_progress.update(1)
if j == 4:
child_progress.close()
else:
child_progress2.update(1)
# Close and clear the child progress bar
child_progress2.close()
# print("\033[K", end='\r', flush=True)
# Close the parent progress bar
parent_progress.close()
SDK - Develop Data Jobs
SDK Key Concepts
Control Service - Deploy Data Jobs
Control Service Key Concepts
- Scheduling a Data Job for automatic execution
- Deployment
- Execution
- Production
- Properties and Secrets
Operations UI
Community
Contacts