cloud-files 6.0.0__tar.gz → 6.1.1__tar.gz

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.
Files changed (39) hide show
  1. {cloud_files-6.0.0 → cloud_files-6.1.1}/ChangeLog +12 -0
  2. {cloud_files-6.0.0 → cloud_files-6.1.1}/PKG-INFO +1 -1
  3. {cloud_files-6.0.0 → cloud_files-6.1.1}/automated_test.py +18 -0
  4. {cloud_files-6.0.0 → cloud_files-6.1.1}/cloud_files.egg-info/PKG-INFO +1 -1
  5. cloud_files-6.1.1/cloud_files.egg-info/pbr.json +1 -0
  6. {cloud_files-6.0.0 → cloud_files-6.1.1}/cloudfiles/interfaces.py +8 -8
  7. {cloud_files-6.0.0 → cloud_files-6.1.1}/cloudfiles/scheduler.py +3 -2
  8. cloud_files-6.0.0/cloud_files.egg-info/pbr.json +0 -1
  9. {cloud_files-6.0.0 → cloud_files-6.1.1}/.github/workflows/test-suite.yml +0 -0
  10. {cloud_files-6.0.0 → cloud_files-6.1.1}/AUTHORS +0 -0
  11. {cloud_files-6.0.0 → cloud_files-6.1.1}/LICENSE +0 -0
  12. {cloud_files-6.0.0 → cloud_files-6.1.1}/MANIFEST.in +0 -0
  13. {cloud_files-6.0.0 → cloud_files-6.1.1}/README.md +0 -0
  14. {cloud_files-6.0.0 → cloud_files-6.1.1}/cloud_files.egg-info/SOURCES.txt +0 -0
  15. {cloud_files-6.0.0 → cloud_files-6.1.1}/cloud_files.egg-info/dependency_links.txt +0 -0
  16. {cloud_files-6.0.0 → cloud_files-6.1.1}/cloud_files.egg-info/entry_points.txt +0 -0
  17. {cloud_files-6.0.0 → cloud_files-6.1.1}/cloud_files.egg-info/not-zip-safe +0 -0
  18. {cloud_files-6.0.0 → cloud_files-6.1.1}/cloud_files.egg-info/requires.txt +0 -0
  19. {cloud_files-6.0.0 → cloud_files-6.1.1}/cloud_files.egg-info/top_level.txt +0 -0
  20. {cloud_files-6.0.0 → cloud_files-6.1.1}/cloudfiles/__init__.py +0 -0
  21. {cloud_files-6.0.0 → cloud_files-6.1.1}/cloudfiles/cloudfiles.py +0 -0
  22. {cloud_files-6.0.0 → cloud_files-6.1.1}/cloudfiles/compression.py +0 -0
  23. {cloud_files-6.0.0 → cloud_files-6.1.1}/cloudfiles/connectionpools.py +0 -0
  24. {cloud_files-6.0.0 → cloud_files-6.1.1}/cloudfiles/exceptions.py +0 -0
  25. {cloud_files-6.0.0 → cloud_files-6.1.1}/cloudfiles/gcs.py +0 -0
  26. {cloud_files-6.0.0 → cloud_files-6.1.1}/cloudfiles/lib.py +0 -0
  27. {cloud_files-6.0.0 → cloud_files-6.1.1}/cloudfiles/monitoring.py +0 -0
  28. {cloud_files-6.0.0 → cloud_files-6.1.1}/cloudfiles/paths.py +0 -0
  29. {cloud_files-6.0.0 → cloud_files-6.1.1}/cloudfiles/resumable_tools.py +0 -0
  30. {cloud_files-6.0.0 → cloud_files-6.1.1}/cloudfiles/secrets.py +0 -0
  31. {cloud_files-6.0.0 → cloud_files-6.1.1}/cloudfiles/test.py +0 -0
  32. {cloud_files-6.0.0 → cloud_files-6.1.1}/cloudfiles/threaded_queue.py +0 -0
  33. {cloud_files-6.0.0 → cloud_files-6.1.1}/cloudfiles/typing.py +0 -0
  34. {cloud_files-6.0.0 → cloud_files-6.1.1}/cloudfiles_cli/LICENSE +0 -0
  35. {cloud_files-6.0.0 → cloud_files-6.1.1}/cloudfiles_cli/__init__.py +0 -0
  36. {cloud_files-6.0.0 → cloud_files-6.1.1}/cloudfiles_cli/cloudfiles_cli.py +0 -0
  37. {cloud_files-6.0.0 → cloud_files-6.1.1}/requirements.txt +0 -0
  38. {cloud_files-6.0.0 → cloud_files-6.1.1}/setup.cfg +0 -0
  39. {cloud_files-6.0.0 → cloud_files-6.1.1}/setup.py +0 -0
@@ -1,6 +1,18 @@
1
1
  CHANGES
2
2
  =======
3
3
 
4
+ 6.1.1
5
+ -----
6
+
7
+ * fix(gcs): prefixes added back into listing files
8
+ * fix: don't print a progress bar when uploading zero elements
9
+
10
+ 6.1.0
11
+ -----
12
+
13
+ * test: check that raw objects work for mem
14
+ * feat: allow for storing python objects in mem to avoid serialization cost
15
+
4
16
  6.0.0
5
17
  -----
6
18
 
@@ -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
@@ -128,6 +128,24 @@ def test_read_write(s3, protocol, num_threads, green):
128
128
  if protocol == 'file':
129
129
  rmtree(url)
130
130
 
131
+ def test_read_write_py_objects_mem():
132
+ from cloudfiles import CloudFiles, CloudFile, exceptions
133
+ url = compute_url("mem", "rw")
134
+
135
+ cf = CloudFiles(url)
136
+
137
+ content = set([1,2,3])
138
+ cf.put('my_set', content, compress=None, raw=True, cache_control='no-cache')
139
+ cf['my_set2'] = content
140
+
141
+ f = CloudFile(cf.join(url, "my_set"))
142
+ assert cf.get('my_set') == content
143
+ assert cf['my_set2'] == content
144
+ assert f.get() == content
145
+ assert cf.get('nonexistentfile') is None
146
+
147
+ cf.delete(["my_set", "my_set2"])
148
+
131
149
  @pytest.mark.parametrize("protocol", ('mem', 'file', 's3'))#'gs'))
132
150
  def test_get_json_order(s3, protocol):
133
151
  from cloudfiles import CloudFiles
@@ -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
@@ -0,0 +1 @@
1
+ {"git_version": "50dc4ad", "is_release": true}
@@ -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("")
@@ -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}
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes