dcicutils 8.8.4.1b32__py3-none-any.whl → 8.8.4.1b34__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
@@ -14,7 +14,7 @@ HOME_DIRECTORY = str(pathlib.Path().home())
14
14
 
15
15
 
16
16
  def search_for_file(file: str,
17
- location: Union[str, Optional[List[str]]] = None,
17
+ location: Union[str, pathlib.PosixPath, Optional[List[Union[str, pathlib.PosixPath]]]] = None,
18
18
  recursive: bool = False,
19
19
  single: bool = False,
20
20
  order: bool = True) -> Union[List[str], Optional[str]]:
@@ -35,7 +35,7 @@ def search_for_file(file: str,
35
35
  return None if single is True else []
36
36
  if os.path.isabs(file):
37
37
  if os.path.exists(file):
38
- return file if single is True else [file]
38
+ return str(file) if single is True else [str(file)]
39
39
  return None if single is True else []
40
40
  files_found = []
41
41
  if not location:
@@ -53,7 +53,7 @@ def search_for_file(file: str,
53
53
  if not (directory := directory.strip()):
54
54
  continue
55
55
  if os.path.isfile(directory := os.path.abspath(os.path.normpath(directory))):
56
- # Allow a file; assume its parent directory was intended.
56
+ # Actually, allow a file rather then a directory; assume its parent directory was intended.
57
57
  if not (directory := os.path.dirname(directory)):
58
58
  continue
59
59
  if directory not in location_pruned:
dcicutils/misc_utils.py CHANGED
@@ -2606,7 +2606,11 @@ def format_size(nbytes: Union[int, float], precision: int = 2, nospace: bool = F
2606
2606
  nbytes = int(nbytes)
2607
2607
  return f"{nbytes} byte{'s' if nbytes != 1 else ''}"
2608
2608
  unit = (UNITS_TERSE if terse else UNITS)[index]
2609
- return f"{nbytes:.{precision}f}{'' if nospace else ' '}{unit}"
2609
+ size = f"{nbytes:.{precision}f}"
2610
+ if size.endswith(f".{'0' * precision}"):
2611
+ # Tidy up extraneous zeros.
2612
+ size = size[:-(precision - 1)]
2613
+ return f"{size}{'' if nospace else ' '}{unit}"
2610
2614
 
2611
2615
 
2612
2616
  def format_duration(seconds: Union[int, float]) -> str:
@@ -2731,3 +2735,6 @@ def create_short_uuid(length: Optional[int] = None, upper: bool = False):
2731
2735
  if upper is True:
2732
2736
  value = value.upper()
2733
2737
  return value
2738
+
2739
+
2740
+ print(format_size(1024 * 1024))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dcicutils
3
- Version: 8.8.4.1b32
3
+ Version: 8.8.4.1b34
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=eJ3aErsNPoh9pTsuIiCphQdLB7UFBMr5lAr3s20zGpM,10827
31
+ dcicutils/file_utils.py,sha256=zyNdRl1Fu3SrQwjJWaIMvQpi4DRaodNZCX7oTkiPJ-A,10916
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
@@ -44,7 +44,7 @@ dcicutils/license_policies/park-lab-gpl-pipeline.jsonc,sha256=vLZkwm3Js-kjV44nug
44
44
  dcicutils/license_policies/park-lab-pipeline.jsonc,sha256=9qlY0ASy3iUMQlr3gorVcXrSfRHnVGbLhkS427UaRy4,283
45
45
  dcicutils/license_utils.py,sha256=d1cq6iwv5Ju-VjdoINi6q7CPNNL7Oz6rcJdLMY38RX0,46978
46
46
  dcicutils/log_utils.py,sha256=7pWMc6vyrorUZQf-V-M3YC6zrPgNhuV_fzm9xqTPph0,10883
47
- dcicutils/misc_utils.py,sha256=n4_aAc-skw8wY_WdfbCZG_wFo8VNMulA9madDvGQgZk,106611
47
+ dcicutils/misc_utils.py,sha256=6TWxOOWav47An4X2XCgohYtGEncjU7XdYqnoYSRfyG4,106786
48
48
  dcicutils/obfuscation_utils.py,sha256=fo2jOmDRC6xWpYX49u80bVNisqRRoPskFNX3ymFAmjw,5963
49
49
  dcicutils/opensearch_utils.py,sha256=V2exmFYW8Xl2_pGFixF4I2Cc549Opwe4PhFi5twC0M8,1017
50
50
  dcicutils/portal_object_utils.py,sha256=gDXRgPsRvqCFwbC8WatsuflAxNiigOnqr0Hi93k3AgE,15422
@@ -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.1b32.dist-info/LICENSE.txt,sha256=qnwSmfnEWMl5l78VPDEzAmEbLVrRqQvfUQiHT0ehrOo,1102
77
- dcicutils-8.8.4.1b32.dist-info/METADATA,sha256=zSLVym7yglbD0yYfT9BPLwLbGtGsEjtdZ9jrPEX1I34,3440
78
- dcicutils-8.8.4.1b32.dist-info/WHEEL,sha256=7Z8_27uaHI_UZAc4Uox4PpBhQ9Y5_modZXWMxtUi4NU,88
79
- dcicutils-8.8.4.1b32.dist-info/entry_points.txt,sha256=51Q4F_2V10L0282W7HFjP4jdzW4K8lnWDARJQVFy_hw,270
80
- dcicutils-8.8.4.1b32.dist-info/RECORD,,
76
+ dcicutils-8.8.4.1b34.dist-info/LICENSE.txt,sha256=qnwSmfnEWMl5l78VPDEzAmEbLVrRqQvfUQiHT0ehrOo,1102
77
+ dcicutils-8.8.4.1b34.dist-info/METADATA,sha256=hkWY8lqw4aHKXxtqn81dHbQpU2PeJ_3a-ZurdInqtB4,3440
78
+ dcicutils-8.8.4.1b34.dist-info/WHEEL,sha256=7Z8_27uaHI_UZAc4Uox4PpBhQ9Y5_modZXWMxtUi4NU,88
79
+ dcicutils-8.8.4.1b34.dist-info/entry_points.txt,sha256=51Q4F_2V10L0282W7HFjP4jdzW4K8lnWDARJQVFy_hw,270
80
+ dcicutils-8.8.4.1b34.dist-info/RECORD,,