cloud-files 5.0.3__tar.gz → 5.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.
- {cloud_files-5.0.3 → cloud_files-5.1.1}/ChangeLog +13 -0
- {cloud_files-5.0.3 → cloud_files-5.1.1}/PKG-INFO +1 -1
- {cloud_files-5.0.3 → cloud_files-5.1.1}/automated_test.py +7 -0
- {cloud_files-5.0.3 → cloud_files-5.1.1}/cloud_files.egg-info/PKG-INFO +1 -1
- cloud_files-5.1.1/cloud_files.egg-info/pbr.json +1 -0
- {cloud_files-5.0.3 → cloud_files-5.1.1}/cloudfiles/cloudfiles.py +1 -1
- {cloud_files-5.0.3 → cloud_files-5.1.1}/cloudfiles/interfaces.py +9 -0
- {cloud_files-5.0.3 → cloud_files-5.1.1}/cloudfiles/paths.py +6 -0
- cloud_files-5.0.3/cloud_files.egg-info/pbr.json +0 -1
- {cloud_files-5.0.3 → cloud_files-5.1.1}/.github/workflows/test-suite.yml +0 -0
- {cloud_files-5.0.3 → cloud_files-5.1.1}/AUTHORS +0 -0
- {cloud_files-5.0.3 → cloud_files-5.1.1}/LICENSE +0 -0
- {cloud_files-5.0.3 → cloud_files-5.1.1}/MANIFEST.in +0 -0
- {cloud_files-5.0.3 → cloud_files-5.1.1}/README.md +0 -0
- {cloud_files-5.0.3 → cloud_files-5.1.1}/cloud_files.egg-info/SOURCES.txt +0 -0
- {cloud_files-5.0.3 → cloud_files-5.1.1}/cloud_files.egg-info/dependency_links.txt +0 -0
- {cloud_files-5.0.3 → cloud_files-5.1.1}/cloud_files.egg-info/entry_points.txt +0 -0
- {cloud_files-5.0.3 → cloud_files-5.1.1}/cloud_files.egg-info/not-zip-safe +0 -0
- {cloud_files-5.0.3 → cloud_files-5.1.1}/cloud_files.egg-info/requires.txt +0 -0
- {cloud_files-5.0.3 → cloud_files-5.1.1}/cloud_files.egg-info/top_level.txt +0 -0
- {cloud_files-5.0.3 → cloud_files-5.1.1}/cloudfiles/__init__.py +0 -0
- {cloud_files-5.0.3 → cloud_files-5.1.1}/cloudfiles/compression.py +0 -0
- {cloud_files-5.0.3 → cloud_files-5.1.1}/cloudfiles/connectionpools.py +0 -0
- {cloud_files-5.0.3 → cloud_files-5.1.1}/cloudfiles/exceptions.py +0 -0
- {cloud_files-5.0.3 → cloud_files-5.1.1}/cloudfiles/gcs.py +0 -0
- {cloud_files-5.0.3 → cloud_files-5.1.1}/cloudfiles/lib.py +0 -0
- {cloud_files-5.0.3 → cloud_files-5.1.1}/cloudfiles/resumable_tools.py +0 -0
- {cloud_files-5.0.3 → cloud_files-5.1.1}/cloudfiles/scheduler.py +0 -0
- {cloud_files-5.0.3 → cloud_files-5.1.1}/cloudfiles/secrets.py +0 -0
- {cloud_files-5.0.3 → cloud_files-5.1.1}/cloudfiles/threaded_queue.py +0 -0
- {cloud_files-5.0.3 → cloud_files-5.1.1}/cloudfiles/typing.py +0 -0
- {cloud_files-5.0.3 → cloud_files-5.1.1}/cloudfiles_cli/LICENSE +0 -0
- {cloud_files-5.0.3 → cloud_files-5.1.1}/cloudfiles_cli/__init__.py +0 -0
- {cloud_files-5.0.3 → cloud_files-5.1.1}/cloudfiles_cli/cloudfiles_cli.py +0 -0
- {cloud_files-5.0.3 → cloud_files-5.1.1}/requirements.txt +0 -0
- {cloud_files-5.0.3 → cloud_files-5.1.1}/setup.cfg +0 -0
- {cloud_files-5.0.3 → cloud_files-5.1.1}/setup.py +0 -0
|
@@ -1,6 +1,19 @@
|
|
|
1
1
|
CHANGES
|
|
2
2
|
=======
|
|
3
3
|
|
|
4
|
+
5.1.1
|
|
5
|
+
-----
|
|
6
|
+
|
|
7
|
+
* fix: ensure directory exists for download\_to\_file
|
|
8
|
+
* docs: add why there is this extra bit of code
|
|
9
|
+
* fix(gs/list): show flat directories even if there are no regular entries
|
|
10
|
+
|
|
11
|
+
5.1.0
|
|
12
|
+
-----
|
|
13
|
+
|
|
14
|
+
* fix: remove precomputed suffix from cloudfiles during normalization
|
|
15
|
+
* feat: accept the new |neuroglancer-precomputed: suffix
|
|
16
|
+
|
|
4
17
|
5.0.3
|
|
5
18
|
-----
|
|
6
19
|
|
|
@@ -531,6 +531,13 @@ def test_path_extraction():
|
|
|
531
531
|
|
|
532
532
|
shoulderror('ou3bouqjsa fkj aojsf oaojf ojsaf')
|
|
533
533
|
|
|
534
|
+
assert (
|
|
535
|
+
paths.extract('gs://bucket/dataset/layer|neuroglancer-precomputed:')
|
|
536
|
+
== ExtractedPath(
|
|
537
|
+
'precomputed', 'gs', 'bucket',
|
|
538
|
+
'dataset/layer', None, None
|
|
539
|
+
))
|
|
540
|
+
|
|
534
541
|
okgoogle('gs://bucket/dataset/layer/')
|
|
535
542
|
# shoulderror('gs://bucket/dataset/layer/info')
|
|
536
543
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"git_version": "39ec622", "is_release": true}
|
|
@@ -707,6 +707,7 @@ class GoogleCloudStorageInterface(StorageInterface):
|
|
|
707
707
|
key = self.get_path_to_file(src)
|
|
708
708
|
blob = self._bucket.blob(key)
|
|
709
709
|
try:
|
|
710
|
+
mkdir(os.path.dirname(dest))
|
|
710
711
|
blob.download_to_filename(
|
|
711
712
|
filename=dest,
|
|
712
713
|
raw_download=True,
|
|
@@ -834,6 +835,14 @@ class GoogleCloudStorageInterface(StorageInterface):
|
|
|
834
835
|
elif flat and '/' not in blob.name.removeprefix(path):
|
|
835
836
|
yield filename
|
|
836
837
|
|
|
838
|
+
# When there are no regular items at this level
|
|
839
|
+
# we need to still print the directories.
|
|
840
|
+
if first and blobs.prefixes:
|
|
841
|
+
yield from (
|
|
842
|
+
item.removeprefix(path)
|
|
843
|
+
for item in blobs.prefixes
|
|
844
|
+
)
|
|
845
|
+
|
|
837
846
|
def release_connection(self):
|
|
838
847
|
global GC_POOL
|
|
839
848
|
with GCS_BUCKET_POOL_LOCK:
|
|
@@ -18,6 +18,8 @@ ExtractedPath = namedtuple('ExtractedPath',
|
|
|
18
18
|
('format', 'protocol', 'bucket', 'path', 'host', 'alias')
|
|
19
19
|
)
|
|
20
20
|
|
|
21
|
+
PRECOMPUTED_SUFFIX = '|neuroglancer-precomputed:'
|
|
22
|
+
|
|
21
23
|
ALIAS_FILE = os.path.join(CLOUD_FILES_DIR, "aliases.json")
|
|
22
24
|
OFFICIAL_ALIASES = {
|
|
23
25
|
"matrix": "s3://https://s3-hpcrc.rc.princeton.edu/",
|
|
@@ -161,6 +163,9 @@ for alias, host in OFFICIAL_ALIASES.items():
|
|
|
161
163
|
|
|
162
164
|
@lru_cache(maxsize=10, typed=False)
|
|
163
165
|
def normalize(path):
|
|
166
|
+
|
|
167
|
+
path = path.removesuffix(PRECOMPUTED_SUFFIX)
|
|
168
|
+
|
|
164
169
|
fmt, proto, endpoint, cloudpath, alias = extract_format_protocol(
|
|
165
170
|
path, allow_defaults=False
|
|
166
171
|
)
|
|
@@ -294,6 +299,7 @@ def extract_format_protocol(cloudpath:str, allow_defaults=True) -> tuple:
|
|
|
294
299
|
|
|
295
300
|
groups = m.groups()
|
|
296
301
|
cloudpath = re.sub(CLOUDPATH_REGEXP, '', cloudpath, count=1)
|
|
302
|
+
cloudpath = cloudpath.removesuffix(PRECOMPUTED_SUFFIX)
|
|
297
303
|
|
|
298
304
|
fmt = m.group('fmt')
|
|
299
305
|
if not fmt and allow_defaults:
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"git_version": "589559d", "is_release": true}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|