cloud-files 4.22.0__tar.gz → 4.23.0__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-4.22.0 → cloud-files-4.23.0}/ChangeLog +6 -0
- {cloud-files-4.22.0 → cloud-files-4.23.0}/PKG-INFO +1 -1
- {cloud-files-4.22.0 → cloud-files-4.23.0}/cloud_files.egg-info/PKG-INFO +1 -1
- cloud-files-4.23.0/cloud_files.egg-info/pbr.json +1 -0
- {cloud-files-4.22.0 → cloud-files-4.23.0}/cloudfiles/cloudfiles.py +42 -15
- cloud-files-4.22.0/cloud_files.egg-info/pbr.json +0 -1
- {cloud-files-4.22.0 → cloud-files-4.23.0}/.github/workflows/test-suite.yml +0 -0
- {cloud-files-4.22.0 → cloud-files-4.23.0}/AUTHORS +0 -0
- {cloud-files-4.22.0 → cloud-files-4.23.0}/LICENSE +0 -0
- {cloud-files-4.22.0 → cloud-files-4.23.0}/MANIFEST.in +0 -0
- {cloud-files-4.22.0 → cloud-files-4.23.0}/README.md +0 -0
- {cloud-files-4.22.0 → cloud-files-4.23.0}/automated_test.py +0 -0
- {cloud-files-4.22.0 → cloud-files-4.23.0}/cloud_files.egg-info/SOURCES.txt +0 -0
- {cloud-files-4.22.0 → cloud-files-4.23.0}/cloud_files.egg-info/dependency_links.txt +0 -0
- {cloud-files-4.22.0 → cloud-files-4.23.0}/cloud_files.egg-info/entry_points.txt +0 -0
- {cloud-files-4.22.0 → cloud-files-4.23.0}/cloud_files.egg-info/not-zip-safe +0 -0
- {cloud-files-4.22.0 → cloud-files-4.23.0}/cloud_files.egg-info/requires.txt +0 -0
- {cloud-files-4.22.0 → cloud-files-4.23.0}/cloud_files.egg-info/top_level.txt +0 -0
- {cloud-files-4.22.0 → cloud-files-4.23.0}/cloudfiles/__init__.py +0 -0
- {cloud-files-4.22.0 → cloud-files-4.23.0}/cloudfiles/compression.py +0 -0
- {cloud-files-4.22.0 → cloud-files-4.23.0}/cloudfiles/connectionpools.py +0 -0
- {cloud-files-4.22.0 → cloud-files-4.23.0}/cloudfiles/exceptions.py +0 -0
- {cloud-files-4.22.0 → cloud-files-4.23.0}/cloudfiles/gcs.py +0 -0
- {cloud-files-4.22.0 → cloud-files-4.23.0}/cloudfiles/interfaces.py +0 -0
- {cloud-files-4.22.0 → cloud-files-4.23.0}/cloudfiles/lib.py +0 -0
- {cloud-files-4.22.0 → cloud-files-4.23.0}/cloudfiles/paths.py +0 -0
- {cloud-files-4.22.0 → cloud-files-4.23.0}/cloudfiles/resumable_tools.py +0 -0
- {cloud-files-4.22.0 → cloud-files-4.23.0}/cloudfiles/scheduler.py +0 -0
- {cloud-files-4.22.0 → cloud-files-4.23.0}/cloudfiles/secrets.py +0 -0
- {cloud-files-4.22.0 → cloud-files-4.23.0}/cloudfiles/threaded_queue.py +0 -0
- {cloud-files-4.22.0 → cloud-files-4.23.0}/cloudfiles/typing.py +0 -0
- {cloud-files-4.22.0 → cloud-files-4.23.0}/cloudfiles_cli/LICENSE +0 -0
- {cloud-files-4.22.0 → cloud-files-4.23.0}/cloudfiles_cli/__init__.py +0 -0
- {cloud-files-4.22.0 → cloud-files-4.23.0}/cloudfiles_cli/cloudfiles_cli.py +0 -0
- {cloud-files-4.22.0 → cloud-files-4.23.0}/requirements.txt +0 -0
- {cloud-files-4.22.0 → cloud-files-4.23.0}/setup.cfg +0 -0
- {cloud-files-4.22.0 → cloud-files-4.23.0}/setup.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"git_version": "a123f94", "is_release": true}
|
|
@@ -83,8 +83,7 @@ def parallelize(desc=None, returns_list=False):
|
|
|
83
83
|
sig = inspect.signature(fn).bind(*args, **kwargs)
|
|
84
84
|
parallel = sig.arguments.get("parallel", None)
|
|
85
85
|
except TypeError:
|
|
86
|
-
parallel = kwargs.
|
|
87
|
-
del kwargs["parallel"]
|
|
86
|
+
parallel = kwargs.pop("parallel", None)
|
|
88
87
|
sig = inspect.signature(fn).bind_partial(*args, **kwargs)
|
|
89
88
|
|
|
90
89
|
params = sig.arguments
|
|
@@ -522,7 +521,7 @@ class CloudFiles:
|
|
|
522
521
|
def puts(
|
|
523
522
|
self, files:PutType,
|
|
524
523
|
content_type:Optional[str] = None, compress:CompressType = None,
|
|
525
|
-
compression_level:Optional[int]=None, cache_control:Optional[str] = None,
|
|
524
|
+
compression_level:Optional[int] = None, cache_control:Optional[str] = None,
|
|
526
525
|
total:Optional[int] = None, raw:bool = False, progress:Optional[bool] = None,
|
|
527
526
|
parallel:ParallelType = 1, storage_class:Optional[str] = None
|
|
528
527
|
) -> int:
|
|
@@ -946,8 +945,12 @@ class CloudFiles:
|
|
|
946
945
|
yield f
|
|
947
946
|
|
|
948
947
|
def transfer_to(
|
|
949
|
-
self,
|
|
950
|
-
|
|
948
|
+
self,
|
|
949
|
+
cf_dest:Any,
|
|
950
|
+
paths:Any = None, # recursive CloudFiles not supported as type
|
|
951
|
+
block_size:int = 64,
|
|
952
|
+
reencode:Optional[str] = None,
|
|
953
|
+
content_type:Optional[str] = None,
|
|
951
954
|
) -> None:
|
|
952
955
|
"""
|
|
953
956
|
Transfer all files from this CloudFiles storage
|
|
@@ -980,6 +983,8 @@ class CloudFiles:
|
|
|
980
983
|
block_size: number of files to transfer per a batch
|
|
981
984
|
reencode: if not None, reencode the compression type
|
|
982
985
|
as '' (None), 'gzip', 'br', 'zstd'
|
|
986
|
+
content_type: if provided, set the Content-Type header
|
|
987
|
+
on the upload. This is necessary for e.g. file->cloud
|
|
983
988
|
"""
|
|
984
989
|
if isinstance(cf_dest, str):
|
|
985
990
|
cf_dest = CloudFiles(
|
|
@@ -987,11 +992,15 @@ class CloudFiles:
|
|
|
987
992
|
green=self.green, num_threads=self.num_threads,
|
|
988
993
|
)
|
|
989
994
|
|
|
990
|
-
return cf_dest.transfer_from(self, paths, block_size, reencode)
|
|
995
|
+
return cf_dest.transfer_from(self, paths, block_size, reencode, content_type)
|
|
991
996
|
|
|
992
997
|
def transfer_from(
|
|
993
|
-
self,
|
|
994
|
-
|
|
998
|
+
self,
|
|
999
|
+
cf_src:Any,
|
|
1000
|
+
paths:Any = None, # recursive CloudFiles not supported as type
|
|
1001
|
+
block_size:int = 64,
|
|
1002
|
+
reencode:Optional[str] = None,
|
|
1003
|
+
content_type:Optional[str] = None,
|
|
995
1004
|
) -> None:
|
|
996
1005
|
"""
|
|
997
1006
|
Transfer all files from the source CloudFiles storage
|
|
@@ -1024,6 +1033,8 @@ class CloudFiles:
|
|
|
1024
1033
|
block_size: number of files to transfer per a batch
|
|
1025
1034
|
reencode: if not None, reencode the compression type
|
|
1026
1035
|
as '' (None), 'gzip', 'br', 'zstd'
|
|
1036
|
+
content_type: if provided, set the Content-Type header
|
|
1037
|
+
on the upload. This is necessary for e.g. file->cloud
|
|
1027
1038
|
"""
|
|
1028
1039
|
if isinstance(cf_src, str):
|
|
1029
1040
|
cf_src = CloudFiles(
|
|
@@ -1048,7 +1059,10 @@ class CloudFiles:
|
|
|
1048
1059
|
and self.protocol != "file"
|
|
1049
1060
|
and reencode is None
|
|
1050
1061
|
):
|
|
1051
|
-
self.__transfer_file_to_remote(
|
|
1062
|
+
self.__transfer_file_to_remote(
|
|
1063
|
+
cf_src, self, paths, total,
|
|
1064
|
+
pbar, block_size, content_type
|
|
1065
|
+
)
|
|
1052
1066
|
elif (
|
|
1053
1067
|
(
|
|
1054
1068
|
(cf_src.protocol == "gs" and self.protocol == "gs")
|
|
@@ -1060,14 +1074,21 @@ class CloudFiles:
|
|
|
1060
1074
|
)
|
|
1061
1075
|
and reencode is None
|
|
1062
1076
|
):
|
|
1063
|
-
self.__transfer_cloud_internal(
|
|
1077
|
+
self.__transfer_cloud_internal(
|
|
1078
|
+
cf_src, self, paths,
|
|
1079
|
+
total, pbar, block_size
|
|
1080
|
+
)
|
|
1064
1081
|
else:
|
|
1065
|
-
self.__transfer_general(
|
|
1082
|
+
self.__transfer_general(
|
|
1083
|
+
cf_src, self, paths, total,
|
|
1084
|
+
pbar, block_size,
|
|
1085
|
+
reencode, content_type
|
|
1086
|
+
)
|
|
1066
1087
|
|
|
1067
1088
|
def __transfer_general(
|
|
1068
1089
|
self, cf_src, cf_dest, paths,
|
|
1069
1090
|
total, pbar, block_size,
|
|
1070
|
-
reencode
|
|
1091
|
+
reencode, content_type
|
|
1071
1092
|
):
|
|
1072
1093
|
"""
|
|
1073
1094
|
Downloads the file into RAM, transforms
|
|
@@ -1094,7 +1115,13 @@ class CloudFiles:
|
|
|
1094
1115
|
item["path"] = item["tags"]["dest_path"]
|
|
1095
1116
|
del item["tags"]["dest_path"]
|
|
1096
1117
|
yield item
|
|
1097
|
-
self.puts(
|
|
1118
|
+
self.puts(
|
|
1119
|
+
renameiter(),
|
|
1120
|
+
raw=True,
|
|
1121
|
+
progress=False,
|
|
1122
|
+
compress=reencode,
|
|
1123
|
+
content_type=content_type,
|
|
1124
|
+
)
|
|
1098
1125
|
pbar.update(len(block_paths))
|
|
1099
1126
|
|
|
1100
1127
|
def __transfer_file_to_file(
|
|
@@ -1126,7 +1153,7 @@ class CloudFiles:
|
|
|
1126
1153
|
|
|
1127
1154
|
def __transfer_file_to_remote(
|
|
1128
1155
|
self, cf_src, cf_dest, paths,
|
|
1129
|
-
total, pbar, block_size
|
|
1156
|
+
total, pbar, block_size, content_type
|
|
1130
1157
|
):
|
|
1131
1158
|
"""
|
|
1132
1159
|
Provide file handles instead of slurped binaries
|
|
@@ -1152,7 +1179,7 @@ class CloudFiles:
|
|
|
1152
1179
|
"content": open(handle_path, "rb"),
|
|
1153
1180
|
"compress": encoding,
|
|
1154
1181
|
})
|
|
1155
|
-
cf_dest.puts(to_upload, raw=True, progress=False)
|
|
1182
|
+
cf_dest.puts(to_upload, raw=True, progress=False, content_type=content_type)
|
|
1156
1183
|
for item in to_upload:
|
|
1157
1184
|
item["content"].close()
|
|
1158
1185
|
pbar.update(len(block_paths))
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"git_version": "bf417ed", "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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|