1234567891011121314151617181920212223242526272829 |
- import os
- from typing import Union
- _Path = Union[str, os.PathLike]
- def ensure_directory(path):
- """Ensure that the parent directory of `path` exists"""
- dirname = os.path.dirname(path)
- os.makedirs(dirname, exist_ok=True)
- def same_path(p1: _Path, p2: _Path) -> bool:
- """Differs from os.path.samefile because it does not require paths to exist.
- Purely string based (no comparison between i-nodes).
- >>> same_path("a/b", "./a/b")
- True
- >>> same_path("a/b", "a/./b")
- True
- >>> same_path("a/b", "././a/b")
- True
- >>> same_path("a/b", "./a/b/c/..")
- True
- >>> same_path("a/b", "../a/b/c")
- False
- >>> same_path("a", "a/b")
- False
- """
- return os.path.normpath(p1) == os.path.normpath(p2)
|