On Wed, 22 Feb 2017 22:33:31 +0530, Ganesh Pal wrote: [snip] > I need suggestion on the if statement in the below code , all that I was > trying to do was to add a check i.e if any one of the functions return > True then break the loop. > > end_time = time.time() + 300 > umount_completed = False > while time.time() < end_time: > if attempt_umount() is True or df_output_lines() is True: > logging.info("umount completed sucessfully") > umount_completed = True > break > time.sleep(15) > assert umount_completed, "ERROR: The umount failed Exiting"
The if statement is healthy and reasonable. If you have a guarantee that attempt_umount and df_output_lines return only True or False, then this would be equivalent: if attempt_umount() or df_output_lines(): However, at the bottom, checking for completion with "assert" is (as I understand it) weak because assertions may be ignored in optimized situations. I'd raise RuntimeError. Also, an consider this alternative loop structure: while not (attempt_umount() or df_output_lines()): if end_time < time.time(): raise RuntimeError("The umount failed. Exiting.") time.sleep(15) logging.info("umount completed successfully") -- To email me, substitute nowhere->runbox, invalid->com. -- https://mail.python.org/mailman/listinfo/python-list