parq_tools.utils.file_utils.atomic_output_dir

parq_tools.utils.file_utils.atomic_output_dir(final_dir, suffix='.tmp')[source]

Context manager for atomic directory writes using a temporary directory.

All writes are directed to a temporary directory in the same parent directory. On successful exit, the temp directory is atomically renamed to the final directory. On error, the temp directory is deleted.

Example

with atomic_output_dir(final_dir) as tmp_dir:
    # Write files to tmp_dir
    (tmp_dir / "file.txt").write_text("Hello, World!")
Parameters:
  • final_dir (Path) – The intended final output directory path.

  • suffix (str) – Suffix for the temporary directory (default: “.tmp”).

Return type:

ContextManager[Path]