cloud-files 6.0.0__py3-none-any.whl → 6.1.1__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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cloud-files
3
- Version: 6.0.0
3
+ Version: 6.1.1
4
4
  Summary: Fast access to cloud storage and local FS.
5
5
  Home-page: https://github.com/seung-lab/cloud-files/
6
6
  Author: William Silversmith
@@ -4,12 +4,12 @@ cloudfiles/compression.py,sha256=WXJHnoNLJ_NWyoY9ygZmFA2qMou35_9xS5dzF7-2H-M,626
4
4
  cloudfiles/connectionpools.py,sha256=aL8RiSjRepECfgAFmJcz80aJFKbou7hsbuEgugDKwB8,4814
5
5
  cloudfiles/exceptions.py,sha256=N0oGQNG-St6RvnT8e5p_yC_E61q2kgAe2scwAL0F49c,843
6
6
  cloudfiles/gcs.py,sha256=unqu5KxGKaPq6N4QeHSpCDdtnK1BzPOAerTZ8FLt2_4,3820
7
- cloudfiles/interfaces.py,sha256=Kg5t2-tWD0EoJ0qK-wid7zdxLgs7q0mDduPxAzyUUL0,47499
7
+ cloudfiles/interfaces.py,sha256=gOmVq-R2zQ0PLnQbfT4DIZVJ2SzV3FPA9eNAtKNZalY,47564
8
8
  cloudfiles/lib.py,sha256=HHjCvjmOjA0nZWSvHGoSeYpxqd6FAG8xk8LM212LAUA,5382
9
9
  cloudfiles/monitoring.py,sha256=N5Xq0PYZK1OxoYtwBFsnnfaq7dElTgY8Rn2Ez_I3aoo,20897
10
10
  cloudfiles/paths.py,sha256=FLdShqkOg1XlkHurU9eiKzLadx2JFYG1EmleCpOFsYQ,12229
11
11
  cloudfiles/resumable_tools.py,sha256=NyuSoGh1SaP5akrHCpd9kgy2-JruEWrHW9lvJxV7jpE,6711
12
- cloudfiles/scheduler.py,sha256=ioqBT5bMPCVHEHlnL-SW_wHulxGgjeThiKHlnaDOydo,3831
12
+ cloudfiles/scheduler.py,sha256=r_yEjUkvUk-mHa8giRnPjcQ-_LiiXaPQNkMYQtVcmgI,3851
13
13
  cloudfiles/secrets.py,sha256=IuYKHmmvFmQTyG2Zcmbx7e8U2LIv-woG5d8qyOlyCD8,5431
14
14
  cloudfiles/test.py,sha256=jktBhzKLU448QPs5H7QVnTvpYMo4lBBWG1aE7-uzVGQ,678
15
15
  cloudfiles/threaded_queue.py,sha256=Nl4vfXhQ6nDLF8PZpSSBpww0M2zWtcd4DLs3W3BArBw,7082
@@ -17,11 +17,11 @@ cloudfiles/typing.py,sha256=f3ZYkNfN9poxhGu5j-P0KCxjCCqSn9HAg5KiIPkjnCg,416
17
17
  cloudfiles_cli/LICENSE,sha256=Jna4xYE8CCQmaxjr5Fs-wmUBnIQJ1DGcNn9MMjbkprk,1538
18
18
  cloudfiles_cli/__init__.py,sha256=Wftt3R3F21QsHtWqx49ODuqT9zcSr0em7wk48kcH0WM,29
19
19
  cloudfiles_cli/cloudfiles_cli.py,sha256=jHbQasZb5DB_g8nGxS3Y0ekAdIPcSVrHN5mvEedUl0k,38908
20
- cloud_files-6.0.0.dist-info/AUTHORS,sha256=BFVmobgAhaVFI5fqbuqAY5XmBQxe09ZZAsAOTy87hKQ,318
21
- cloud_files-6.0.0.dist-info/LICENSE,sha256=Jna4xYE8CCQmaxjr5Fs-wmUBnIQJ1DGcNn9MMjbkprk,1538
22
- cloud_files-6.0.0.dist-info/METADATA,sha256=SJw22OqzxSN3BvyacUjQgJ1trdAWs4mJv9hC0LYKQZk,30530
23
- cloud_files-6.0.0.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
24
- cloud_files-6.0.0.dist-info/entry_points.txt,sha256=xlirb1FVhn1mbcv4IoyMEGumDqKOA4VMVd3drsRQxIg,51
25
- cloud_files-6.0.0.dist-info/pbr.json,sha256=P1Yg68JWbSeMCxsbPR-QhAUj2p8rzNNuqgMHtcFAveo,46
26
- cloud_files-6.0.0.dist-info/top_level.txt,sha256=xPyrST3okJbsmdCF5IC2gYAVxg_aD5AYVTnNo8UuoZU,26
27
- cloud_files-6.0.0.dist-info/RECORD,,
20
+ cloud_files-6.1.1.dist-info/AUTHORS,sha256=BFVmobgAhaVFI5fqbuqAY5XmBQxe09ZZAsAOTy87hKQ,318
21
+ cloud_files-6.1.1.dist-info/LICENSE,sha256=Jna4xYE8CCQmaxjr5Fs-wmUBnIQJ1DGcNn9MMjbkprk,1538
22
+ cloud_files-6.1.1.dist-info/METADATA,sha256=LrydFpwwF2A2OSPj9tcxxLQXBmybrekBQ4K8GqBoeQg,30530
23
+ cloud_files-6.1.1.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
24
+ cloud_files-6.1.1.dist-info/entry_points.txt,sha256=xlirb1FVhn1mbcv4IoyMEGumDqKOA4VMVd3drsRQxIg,51
25
+ cloud_files-6.1.1.dist-info/pbr.json,sha256=q_xW5z-50iFm9A4TKknrHMHoAEvWIwnEa-7NI2HMutQ,46
26
+ cloud_files-6.1.1.dist-info/top_level.txt,sha256=xPyrST3okJbsmdCF5IC2gYAVxg_aD5AYVTnNo8UuoZU,26
27
+ cloud_files-6.1.1.dist-info/RECORD,,
@@ -0,0 +1 @@
1
+ {"git_version": "50dc4ad", "is_release": true}
cloudfiles/interfaces.py CHANGED
@@ -446,11 +446,12 @@ class MemoryInterface(StorageInterface):
446
446
  elif compress:
447
447
  raise ValueError("Compression type {} not supported.".format(compress))
448
448
 
449
- if content \
450
- and content_type \
451
- and re.search('json|te?xt', content_type) \
452
- and type(content) is str:
453
-
449
+ if (
450
+ isinstance(content, str)
451
+ and len(content) > 0
452
+ and content_type
453
+ and re.search('json|te?xt', content_type)
454
+ ):
454
455
  content = content.encode('utf-8')
455
456
 
456
457
  if hasattr(content, "read") and hasattr(content, "seek"):
@@ -480,7 +481,7 @@ class MemoryInterface(StorageInterface):
480
481
  encoding = None
481
482
 
482
483
  result = self._data.get(path, None)
483
- if result:
484
+ if isinstance(result, (bytes, bytearray, str)):
484
485
  result = result[slice(start, end)]
485
486
  return (result, encoding, None, None)
486
487
 
@@ -850,7 +851,7 @@ class GoogleCloudStorageInterface(StorageInterface):
850
851
  prefix=path,
851
852
  delimiter=delimiter,
852
853
  page_size=2500,
853
- fields="items(name),nextPageToken",
854
+ fields="items(name),nextPageToken,prefixes",
854
855
  )
855
856
 
856
857
  for page in blobs.pages:
@@ -869,7 +870,6 @@ class GoogleCloudStorageInterface(StorageInterface):
869
870
  elif flat and '/' not in blob.name.removeprefix(path):
870
871
  yield filename
871
872
 
872
-
873
873
  @retry
874
874
  def subtree_size(self, prefix:str = "") -> tuple[int,int]:
875
875
  layer_path = self.get_path_to_file("")
cloudfiles/scheduler.py CHANGED
@@ -98,9 +98,10 @@ def schedule_single_threaded_jobs(
98
98
  if isinstance(progress, tqdm):
99
99
  pbar = progress
100
100
  else:
101
+ N = totalfn(fns, total)
101
102
  pbar = tqdm(
102
- total=totalfn(fns, total),
103
- disable=(not progress),
103
+ total=N,
104
+ disable=(not progress or N == 0),
104
105
  desc=(progress if isinstance(progress, str) else None)
105
106
  )
106
107
 
@@ -1 +0,0 @@
1
- {"git_version": "38a2b59", "is_release": true}