dcicutils 8.8.4.1b27__py3-none-any.whl → 8.8.4.1b28__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- dcicutils/file_utils.py +13 -4
- {dcicutils-8.8.4.1b27.dist-info → dcicutils-8.8.4.1b28.dist-info}/METADATA +1 -1
- {dcicutils-8.8.4.1b27.dist-info → dcicutils-8.8.4.1b28.dist-info}/RECORD +6 -6
- {dcicutils-8.8.4.1b27.dist-info → dcicutils-8.8.4.1b28.dist-info}/LICENSE.txt +0 -0
- {dcicutils-8.8.4.1b27.dist-info → dcicutils-8.8.4.1b28.dist-info}/WHEEL +0 -0
- {dcicutils-8.8.4.1b27.dist-info → dcicutils-8.8.4.1b28.dist-info}/entry_points.txt +0 -0
dcicutils/file_utils.py
CHANGED
@@ -16,7 +16,8 @@ HOME_DIRECTORY = str(pathlib.Path().home())
|
|
16
16
|
def search_for_file(file: str,
|
17
17
|
location: Union[str, Optional[List[str]]] = None,
|
18
18
|
recursive: bool = False,
|
19
|
-
single: bool = False
|
19
|
+
single: bool = False,
|
20
|
+
order: bool = True) -> Union[List[str], Optional[str]]:
|
20
21
|
"""
|
21
22
|
Searches for the existence of the given file name, first directly in the given directory or list
|
22
23
|
of directories, if specified, and if not then just in the current (working) directory; if the
|
@@ -25,6 +26,11 @@ def search_for_file(file: str,
|
|
25
26
|
first file which is found is returns (as a string), or None if none; if the single flag
|
26
27
|
is False, then all matched files are returned in a list, or and empty list if none.
|
27
28
|
"""
|
29
|
+
def order_by_fewest_number_of_paths_and_then_alphabetically(paths: List[str]) -> List[str]:
|
30
|
+
def order_by(path: str):
|
31
|
+
return len(path.split(os.path.sep)), path
|
32
|
+
return sorted(paths, key=order_by)
|
33
|
+
|
28
34
|
if not (file and isinstance(file, (str, pathlib.PosixPath))):
|
29
35
|
return None if single is True else []
|
30
36
|
if os.path.isabs(file):
|
@@ -74,9 +80,12 @@ def search_for_file(file: str,
|
|
74
80
|
return file_found
|
75
81
|
if file_found not in files_found:
|
76
82
|
files_found.append(file_found)
|
77
|
-
if
|
78
|
-
return files_found[0] if
|
79
|
-
|
83
|
+
if single is True:
|
84
|
+
return files_found[0] if files_found else None
|
85
|
+
elif order is True:
|
86
|
+
return order_by_fewest_number_of_paths_and_then_alphabetically(files_found)
|
87
|
+
else:
|
88
|
+
return files_found
|
80
89
|
|
81
90
|
|
82
91
|
def normalize_path(value: Union[str, pathlib.Path], absolute: bool = False, expand_home: Optional[bool] = None) -> str:
|
@@ -28,7 +28,7 @@ dcicutils/es_utils.py,sha256=ZksLh5ei7kRUfiFltk8sd2ZSfh15twbstrMzBr8HNw4,7541
|
|
28
28
|
dcicutils/exceptions.py,sha256=4giQGtpak-omQv7BP6Ckeu91XK5fnDosC8gfdmN_ccA,9931
|
29
29
|
dcicutils/ff_mocks.py,sha256=6RKS4eUiu_Wl8yP_8V0CaV75w4ZdWxdCuL1CVlnMrek,36918
|
30
30
|
dcicutils/ff_utils.py,sha256=oIhuZPnGtfwj6bWyCc1u23JbMB_6InPp01ZqUOljd8M,73123
|
31
|
-
dcicutils/file_utils.py,sha256=
|
31
|
+
dcicutils/file_utils.py,sha256=eJ3aErsNPoh9pTsuIiCphQdLB7UFBMr5lAr3s20zGpM,10827
|
32
32
|
dcicutils/function_cache_decorator.py,sha256=XMyiEGODVr2WoAQ68vcoX_9_Xb9p8pZXdXl7keU8i2g,10026
|
33
33
|
dcicutils/glacier_utils.py,sha256=Q4CVXsZCbP-SoZIsZ5NMcawDfelOLzbQnIlQn-GdlTo,34149
|
34
34
|
dcicutils/http_utils.py,sha256=tNfH5JA-OwbQKEvD5HPJ3lcp2TSIZ4rnl__4d4JO8Gw,1583
|
@@ -73,8 +73,8 @@ dcicutils/trace_utils.py,sha256=g8kwV4ebEy5kXW6oOrEAUsurBcCROvwtZqz9fczsGRE,1769
|
|
73
73
|
dcicutils/validation_utils.py,sha256=cMZIU2cY98FYtzK52z5WUYck7urH6JcqOuz9jkXpqzg,14797
|
74
74
|
dcicutils/variant_utils.py,sha256=2H9azNx3xAj-MySg-uZ2SFqbWs4kZvf61JnK6b-h4Qw,4343
|
75
75
|
dcicutils/zip_utils.py,sha256=_Y9EmL3D2dUZhxucxHvrtmmlbZmK4FpSsHEb7rGSJLU,3265
|
76
|
-
dcicutils-8.8.4.
|
77
|
-
dcicutils-8.8.4.
|
78
|
-
dcicutils-8.8.4.
|
79
|
-
dcicutils-8.8.4.
|
80
|
-
dcicutils-8.8.4.
|
76
|
+
dcicutils-8.8.4.1b28.dist-info/LICENSE.txt,sha256=qnwSmfnEWMl5l78VPDEzAmEbLVrRqQvfUQiHT0ehrOo,1102
|
77
|
+
dcicutils-8.8.4.1b28.dist-info/METADATA,sha256=zSzr_ul8wG_uJihBWWF4byeivbtgiGZpFAibziXrstg,3440
|
78
|
+
dcicutils-8.8.4.1b28.dist-info/WHEEL,sha256=7Z8_27uaHI_UZAc4Uox4PpBhQ9Y5_modZXWMxtUi4NU,88
|
79
|
+
dcicutils-8.8.4.1b28.dist-info/entry_points.txt,sha256=51Q4F_2V10L0282W7HFjP4jdzW4K8lnWDARJQVFy_hw,270
|
80
|
+
dcicutils-8.8.4.1b28.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|