summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Aarsen <Cubiegamedev@gmail.com>2022-09-15 10:57:49 +0200
committerTom Aarsen <Cubiegamedev@gmail.com>2022-09-15 10:57:49 +0200
commita58cc5a13c99251956b073a50e03aec41a3a2e3f (patch)
treefbf3643d6b6b2a7db5fc2a0a2e2d352a61bc3ada
parent9b5f2eda8fbd3f042c4af7ed1b870525d4668f2a (diff)
Prevent OSError when env variables contain long value
-rw-r--r--bitsandbytes/cuda_setup/paths.py16
1 files changed, 11 insertions, 5 deletions
diff --git a/bitsandbytes/cuda_setup/paths.py b/bitsandbytes/cuda_setup/paths.py
index 6f6425f..231b053 100644
--- a/bitsandbytes/cuda_setup/paths.py
+++ b/bitsandbytes/cuda_setup/paths.py
@@ -1,3 +1,4 @@
+import errno
from pathlib import Path
from typing import Set, Union
from warnings import warn
@@ -12,17 +13,22 @@ def extract_candidate_paths(paths_list_candidate: str) -> Set[Path]:
def remove_non_existent_dirs(candidate_paths: Set[Path]) -> Set[Path]:
- non_existent_directories: Set[Path] = {
- path for path in candidate_paths if not path.exists()
- }
-
+ existent_directories: Set[Path] = set()
+ for path in candidate_paths:
+ try:
+ if path.exists():
+ existent_directories.add(path)
+ except errno.ENAMETOOLONG:
+ pass
+
+ non_existent_directories: Set[Path] = candidate_paths - existent_directories
if non_existent_directories:
warn(
"WARNING: The following directories listed in your path were found to "
f"be non-existent: {non_existent_directories}"
)
- return candidate_paths - non_existent_directories
+ return existent_directories
def get_cuda_runtime_lib_paths(candidate_paths: Set[Path]) -> Set[Path]: