wait_other_writers

Documentation for eth_defi.utils.wait_other_writers function.

wait_other_writers(path, timeout=120)

Wait other potential writers writing the same file.

  • Work around issues when parallel unit tests and such try to write the same file

Example:

import urllib
import tempfile

import pytest
import pandas as pd


@pytest.fixture()
def my_cached_test_data_frame() -> pd.DataFrame:
    # Al tests use a cached dataset stored in the /tmp directory
    path = os.path.join(tempfile.gettempdir(), "my_shared_data.parquet")

    with wait_other_writers(path):
        # Read result from the previous writer
        if not path.exists(path):
            # Download and write to cache
            urllib.request.urlretrieve("https://example.com", path)

        return pd.read_parquet(path)
Parameters
  • path (pathlib.Path | str) – File that is being written

  • timeout (int) –

    How many seconds wait to acquire the lock file.

    Default 2 minutes.

Raises

filelock.Timeout – If the file writer is stuck with the lock.