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 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
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dcicutils
3
- Version: 8.8.4.1b7
3
+ Version: 8.8.4.1b9
4
4
  Summary: Utility package for interacting with the 4DN Data Portal and other 4DN resources
5
5
  Home-page: https://github.com/4dn-dcic/utils
6
6
  License: MIT
@@ -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=v8-cdOv6a-8CVbaKvUcEOFjWYVXPtrU8AZgBZ_T9ytU,3653
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.1b7.dist-info/LICENSE.txt,sha256=qnwSmfnEWMl5l78VPDEzAmEbLVrRqQvfUQiHT0ehrOo,1102
77
- dcicutils-8.8.4.1b7.dist-info/METADATA,sha256=P-vuNEwPUaQk7FNobMyvyXJ1IQCr6WwEhN8DjwMa7t8,3396
78
- dcicutils-8.8.4.1b7.dist-info/WHEEL,sha256=7Z8_27uaHI_UZAc4Uox4PpBhQ9Y5_modZXWMxtUi4NU,88
79
- dcicutils-8.8.4.1b7.dist-info/entry_points.txt,sha256=51Q4F_2V10L0282W7HFjP4jdzW4K8lnWDARJQVFy_hw,270
80
- dcicutils-8.8.4.1b7.dist-info/RECORD,,
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,,