Source code for torchoutil.pyoutil.io

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import os
from pathlib import Path
from typing import Any, Callable, Dict, Optional, TypeVar, Union

T = TypeVar("T", covariant=True)


[docs]def open_close_wrap( fn: Callable[..., T], fpath: Union[str, Path], open_kwds: Optional[Dict[str, Any]] = None, *args, **kwargs, ) -> T: if open_kwds is None: open_kwds = {} with open(fpath, **open_kwds) as file: return fn(file, *args, **kwargs) # type: ignore
def _setup_path( fpath: Union[str, Path, os.PathLike, None], overwrite: bool, make_parents: bool, ) -> Optional[Path]: if not isinstance(fpath, (str, Path, os.PathLike)): return fpath fpath = Path(fpath).resolve().expanduser() if not overwrite and fpath.exists(): raise FileExistsError(f"File {fpath} already exists.") elif make_parents: fpath.parent.mkdir(parents=True, exist_ok=True) return fpath