asm
This commit is contained in:
37
asm/venv/lib/python3.11/site-packages/setuptools/_path.py
Normal file
37
asm/venv/lib/python3.11/site-packages/setuptools/_path.py
Normal file
@@ -0,0 +1,37 @@
|
||||
import os
|
||||
import sys
|
||||
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 normpath(p1) == normpath(p2)
|
||||
|
||||
|
||||
def normpath(filename: _Path) -> str:
|
||||
"""Normalize a file/dir name for comparison purposes."""
|
||||
# See pkg_resources.normalize_path for notes about cygwin
|
||||
file = os.path.abspath(filename) if sys.platform == 'cygwin' else filename
|
||||
return os.path.normcase(os.path.realpath(os.path.normpath(file)))
|
||||
Reference in New Issue
Block a user