Source code for torchpack.utils.fs

import os
import shutil
from urllib.parse import urlparse, urlunparse

__all__ = ['normpath', 'makedir', 'remove']


[docs]def normpath(path: str) -> str: if '://' in path: scheme, netloc, path, params, query, fragment = urlparse(path) return urlunparse( (scheme, netloc, os.path.normpath(path), params, query, fragment)) else: return os.path.normpath(path)
[docs]def makedir(dirpath: str) -> None: dirpath = normpath(dirpath) os.makedirs(dirpath, exist_ok=True) if not os.path.isdir(dirpath): raise OSError(f'"{dirpath}" cannot be created.')
[docs]def remove(path: str) -> None: path = normpath(path) if os.path.exists(path): if os.path.isdir(path): shutil.rmtree(path, ignore_errors=True) elif os.path.isfile(path): os.remove(path) if os.path.exists(path): raise OSError(f'"{path}" cannot be removed.')