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)))
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
__pycache__ | Folder | 0755 |
|
|
_distutils | Folder | 0755 |
|
|
_vendor | Folder | 0755 |
|
|
command | Folder | 0755 |
|
|
config | Folder | 0755 |
|
|
extern | Folder | 0755 |
|
|
__init__.py | File | 9 KB | 0644 |
|
_core_metadata.py | File | 8.71 KB | 0644 |
|
_entry_points.py | File | 2.18 KB | 0644 |
|
_imp.py | File | 2.38 KB | 0644 |
|
_importlib.py | File | 1.43 KB | 0644 |
|
_itertools.py | File | 675 B | 0644 |
|
_normalization.py | File | 4.12 KB | 0644 |
|
_path.py | File | 1.03 KB | 0644 |
|
_reqs.py | File | 1.09 KB | 0644 |
|
archive_util.py | File | 7.16 KB | 0644 |
|
build_meta.py | File | 18.23 KB | 0644 |
|
cli-32.exe | File | 11.5 KB | 0644 |
|
cli-64.exe | File | 14 KB | 0644 |
|
cli-arm64.exe | File | 13.5 KB | 0644 |
|
cli.exe | File | 11.5 KB | 0644 |
|
dep_util.py | File | 659 B | 0644 |
|
depends.py | File | 5.45 KB | 0644 |
|
discovery.py | File | 20.65 KB | 0644 |
|
dist.py | File | 36.33 KB | 0644 |
|
errors.py | File | 2.61 KB | 0644 |
|
extension.py | File | 5.46 KB | 0644 |
|
glob.py | File | 4.75 KB | 0644 |
|
gui-32.exe | File | 11.5 KB | 0644 |
|
gui-64.exe | File | 14 KB | 0644 |
|
gui-arm64.exe | File | 13.5 KB | 0644 |
|
gui.exe | File | 11.5 KB | 0644 |
|
installer.py | File | 4.87 KB | 0644 |
|
launch.py | File | 812 B | 0644 |
|
logging.py | File | 1.21 KB | 0644 |
|
modified.py | File | 190 B | 0644 |
|
monkey.py | File | 4.67 KB | 0644 |
|
msvc.py | File | 46.31 KB | 0644 |
|
namespaces.py | File | 3 KB | 0644 |
|
package_index.py | File | 37.45 KB | 0644 |
|
py312compat.py | File | 330 B | 0644 |
|
sandbox.py | File | 14.01 KB | 0644 |
|
script (dev).tmpl | File | 218 B | 0644 |
|
script.tmpl | File | 138 B | 0644 |
|
unicode_utils.py | File | 941 B | 0644 |
|
version.py | File | 161 B | 0644 |
|
warnings.py | File | 3.61 KB | 0644 |
|
wheel.py | File | 8.43 KB | 0644 |
|
windows_support.py | File | 720 B | 0644 |
|