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.
Files changed (37) hide show
  1. {cloud-files-4.22.0 → cloud-files-4.23.0}/ChangeLog +6 -0
  2. {cloud-files-4.22.0 → cloud-files-4.23.0}/PKG-INFO +1 -1
  3. {cloud-files-4.22.0 → cloud-files-4.23.0}/cloud_files.egg-info/PKG-INFO +1 -1
  4. cloud-files-4.23.0/cloud_files.egg-info/pbr.json +1 -0
  5. {cloud-files-4.22.0 → cloud-files-4.23.0}/cloudfiles/cloudfiles.py +42 -15
  6. cloud-files-4.22.0/cloud_files.egg-info/pbr.json +0 -1
  7. {cloud-files-4.22.0 → cloud-files-4.23.0}/.github/workflows/test-suite.yml +0 -0
  8. {cloud-files-4.22.0 → cloud-files-4.23.0}/AUTHORS +0 -0
  9. {cloud-files-4.22.0 → cloud-files-4.23.0}/LICENSE +0 -0
  10. {cloud-files-4.22.0 → cloud-files-4.23.0}/MANIFEST.in +0 -0
  11. {cloud-files-4.22.0 → cloud-files-4.23.0}/README.md +0 -0
  12. {cloud-files-4.22.0 → cloud-files-4.23.0}/automated_test.py +0 -0
  13. {cloud-files-4.22.0 → cloud-files-4.23.0}/cloud_files.egg-info/SOURCES.txt +0 -0
  14. {cloud-files-4.22.0 → cloud-files-4.23.0}/cloud_files.egg-info/dependency_links.txt +0 -0
  15. {cloud-files-4.22.0 → cloud-files-4.23.0}/cloud_files.egg-info/entry_points.txt +0 -0
  16. {cloud-files-4.22.0 → cloud-files-4.23.0}/cloud_files.egg-info/not-zip-safe +0 -0
  17. {cloud-files-4.22.0 → cloud-files-4.23.0}/cloud_files.egg-info/requires.txt +0 -0
  18. {cloud-files-4.22.0 → cloud-files-4.23.0}/cloud_files.egg-info/top_level.txt +0 -0
  19. {cloud-files-4.22.0 → cloud-files-4.23.0}/cloudfiles/__init__.py +0 -0
  20. {cloud-files-4.22.0 → cloud-files-4.23.0}/cloudfiles/compression.py +0 -0
  21. {cloud-files-4.22.0 → cloud-files-4.23.0}/cloudfiles/connectionpools.py +0 -0
  22. {cloud-files-4.22.0 → cloud-files-4.23.0}/cloudfiles/exceptions.py +0 -0
  23. {cloud-files-4.22.0 → cloud-files-4.23.0}/cloudfiles/gcs.py +0 -0
  24. {cloud-files-4.22.0 → cloud-files-4.23.0}/cloudfiles/interfaces.py +0 -0
  25. {cloud-files-4.22.0 → cloud-files-4.23.0}/cloudfiles/lib.py +0 -0
  26. {cloud-files-4.22.0 → cloud-files-4.23.0}/cloudfiles/paths.py +0 -0
  27. {cloud-files-4.22.0 → cloud-files-4.23.0}/cloudfiles/resumable_tools.py +0 -0
  28. {cloud-files-4.22.0 → cloud-files-4.23.0}/cloudfiles/scheduler.py +0 -0
  29. {cloud-files-4.22.0 → cloud-files-4.23.0}/cloudfiles/secrets.py +0 -0
  30. {cloud-files-4.22.0 → cloud-files-4.23.0}/cloudfiles/threaded_queue.py +0 -0
  31. {cloud-files-4.22.0 → cloud-files-4.23.0}/cloudfiles/typing.py +0 -0
  32. {cloud-files-4.22.0 → cloud-files-4.23.0}/cloudfiles_cli/LICENSE +0 -0
  33. {cloud-files-4.22.0 → cloud-files-4.23.0}/cloudfiles_cli/__init__.py +0 -0
  34. {cloud-files-4.22.0 → cloud-files-4.23.0}/cloudfiles_cli/cloudfiles_cli.py +0 -0
  35. {cloud-files-4.22.0 → cloud-files-4.23.0}/requirements.txt +0 -0
  36. {cloud-files-4.22.0 → cloud-files-4.23.0}/setup.cfg +0 -0
  37. {cloud-files-4.22.0 → cloud-files-4.23.0}/setup.py +0 -0
@@ -1,6 +1,12 @@
1
1
  CHANGES
2
2
  =======
3
3
 
4
+ 4.23.0
5
+ ------
6
+
7
+ * feat: add content type to transfer\_to/from
8
+ * fix: avoid an error when deleting "parallel" from kwargs
9
+
4
10
  4.22.0
5
11
  ------
6
12
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cloud-files
3
- Version: 4.22.0
3
+ Version: 4.23.0
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
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cloud-files
3
- Version: 4.22.0
3
+ Version: 4.23.0
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": "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.get("parallel", None)
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, cf_dest:Any, paths:Any = None, # recursive CloudFiles not supported as type
950
- block_size:int = 64, reencode:Optional[str] = None
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, cf_src:Any, paths:Any = None, # recursive CloudFiles not supported as type
994
- block_size:int = 64, reencode:Optional[str] = None
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(cf_src, self, paths, total, pbar, block_size)
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(cf_src, self, paths, total, pbar, block_size)
1077
+ self.__transfer_cloud_internal(
1078
+ cf_src, self, paths,
1079
+ total, pbar, block_size
1080
+ )
1064
1081
  else:
1065
- self.__transfer_general(cf_src, self, paths, total, pbar, block_size, reencode)
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(renameiter(), raw=True, progress=False, compress=reencode)
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