in pytorch_alternatives/custom_pytorch_nlp/util/preprocessing.py [0:0]
def wait_for_file_stable(path: str, stable_secs: int=60, poll_secs: Optional[int]=None) -> bool:
"""Wait for a file to become stable (not recently modified) & return existence
Returns False if file does not exist. Raises FileNotFoundError if file deleted during polling.
When running through the two notebooks at the same time in parallel, this helps to minimize any
errors caused by initiating multiple downloads/extractions/etc on the same file in parallel.
"""
if not poll_secs:
poll_secs = stable_secs / 4
try:
init_stat = os.stat(path)
except FileNotFoundError:
return False
if (time.time() - init_stat.st_mtime) < stable_secs:
print(f"Waiting for file to stabilize... {path}")
while (time.time() - os.stat(path).st_mtime) < stable_secs:
time.sleep(poll_secs)
print("File ready")
return True