Spaces:
Running
Running
import os | |
import time | |
from pandas import HDFStore | |
# https://stackoverflow.com/questions/22522551/pandas-hdf5-as-a-database/29014295#29014295 | |
class SafeHDFStore(HDFStore): | |
def __init__(self, *args, **kwargs): | |
probe_interval = kwargs.pop("probe_interval", 1) | |
self._lock = "%s.lock" % args[0] | |
while True: | |
try: | |
self._flock = os.open(self._lock, os.O_CREAT | os.O_EXCL | os.O_WRONLY) | |
break | |
except FileExistsError: | |
time.sleep(probe_interval) | |
HDFStore.__init__(self, *args, **kwargs) | |
def __exit__(self, *args, **kwargs): | |
HDFStore.__exit__(self, *args, **kwargs) | |
os.close(self._flock) | |
os.remove(self._lock) | |