dcicutils 8.8.4.1b7__py3-none-any.whl → 8.8.4.1b9__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 +36 -0
- {dcicutils-8.8.4.1b7.dist-info → dcicutils-8.8.4.1b9.dist-info}/METADATA +1 -1
- {dcicutils-8.8.4.1b7.dist-info → dcicutils-8.8.4.1b9.dist-info}/RECORD +6 -6
- {dcicutils-8.8.4.1b7.dist-info → dcicutils-8.8.4.1b9.dist-info}/LICENSE.txt +0 -0
- {dcicutils-8.8.4.1b7.dist-info → dcicutils-8.8.4.1b9.dist-info}/WHEEL +0 -0
- {dcicutils-8.8.4.1b7.dist-info → dcicutils-8.8.4.1b9.dist-info}/entry_points.txt +0 -0
dcicutils/file_utils.py
CHANGED
@@ -1,7 +1,10 @@
|
|
1
1
|
import glob
|
2
2
|
import os
|
3
3
|
import pathlib
|
4
|
+
import random
|
5
|
+
import string
|
4
6
|
from typing import List, Optional, Union
|
7
|
+
from dcicutils.tmpfile_utils import create_temporary_file_name
|
5
8
|
|
6
9
|
|
7
10
|
def search_for_file(file: str,
|
@@ -76,3 +79,36 @@ def normalize_file_path(path: str, home_directory: bool = True) -> str:
|
|
76
79
|
if path.startswith(home_directory) and path != home_directory:
|
77
80
|
path = "~/" + pathlib.Path(path).relative_to(home_directory).as_posix()
|
78
81
|
return path
|
82
|
+
|
83
|
+
|
84
|
+
def are_files_equal(filea: str, fileb: str) -> bool:
|
85
|
+
"""
|
86
|
+
Returns True iff the contents of the two given files are exactly the same.
|
87
|
+
"""
|
88
|
+
try:
|
89
|
+
with open(filea, "rb") as fa:
|
90
|
+
with open(fileb, "rb") as fb:
|
91
|
+
chunk_size = 4096
|
92
|
+
while True:
|
93
|
+
chunka = fa.read(chunk_size)
|
94
|
+
chunkb = fb.read(chunk_size)
|
95
|
+
if chunka != chunkb:
|
96
|
+
return False
|
97
|
+
if not chunka:
|
98
|
+
break
|
99
|
+
return True
|
100
|
+
except Exception:
|
101
|
+
return False
|
102
|
+
|
103
|
+
|
104
|
+
def create_random_file(file: Optional[str] = None,
|
105
|
+
prefix: Optional[str] = None, suffix: Optional[str] = None,
|
106
|
+
nbytes: int = 1024, binary: bool = False) -> str:
|
107
|
+
if not file:
|
108
|
+
file = create_temporary_file_name(prefix=prefix, suffix=suffix)
|
109
|
+
with open(file, "wb" if binary is True else "w") as f:
|
110
|
+
if binary is True:
|
111
|
+
f.write(os.urandom(nbytes))
|
112
|
+
else:
|
113
|
+
f.write(''.join(random.choices(string.ascii_letters + string.digits, k=nbytes)))
|
114
|
+
return file
|
@@ -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=dV2Iz180-JADOBad2UWxr-DgQLRZXIzASMgeCllFODU,4896
|
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=RB0x9hRMZM9Xd1x00c5J0iUzUdYzIQR0XKFiQ94HWO0,807
|
@@ -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.1b9.dist-info/LICENSE.txt,sha256=qnwSmfnEWMl5l78VPDEzAmEbLVrRqQvfUQiHT0ehrOo,1102
|
77
|
+
dcicutils-8.8.4.1b9.dist-info/METADATA,sha256=yo_JoulN0vXbXDxvUWgAR8YXS2EuErrd5ITyEFcrEmM,3396
|
78
|
+
dcicutils-8.8.4.1b9.dist-info/WHEEL,sha256=7Z8_27uaHI_UZAc4Uox4PpBhQ9Y5_modZXWMxtUi4NU,88
|
79
|
+
dcicutils-8.8.4.1b9.dist-info/entry_points.txt,sha256=51Q4F_2V10L0282W7HFjP4jdzW4K8lnWDARJQVFy_hw,270
|
80
|
+
dcicutils-8.8.4.1b9.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|