Viewing file: common.py (1.23 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
from collections.abc import Generator from contextlib import contextmanager import pathlib import tempfile
import pytest
from pandas.io.pytables import HDFStore
tables = pytest.importorskip("tables") # set these parameters so we don't have file sharing tables.parameters.MAX_NUMEXPR_THREADS = 1 tables.parameters.MAX_BLOSC_THREADS = 1 tables.parameters.MAX_THREADS = 1
def safe_close(store): try: if store is not None: store.close() except OSError: pass
# contextmanager to ensure the file cleanup @contextmanager def ensure_clean_store( path, mode="a", complevel=None, complib=None, fletcher32=False ) -> Generator[HDFStore, None, None]: with tempfile.TemporaryDirectory() as tmpdirname: tmp_path = pathlib.Path(tmpdirname, path) with HDFStore( tmp_path, mode=mode, complevel=complevel, complib=complib, fletcher32=fletcher32, ) as store: yield store
def _maybe_remove(store, key): """ For tests using tables, try removing the table to be sure there is no content from previous tests using the same table name. """ try: store.remove(key) except (ValueError, KeyError): pass
|