azure-storage-blob 12.25.0b1__py3-none-any.whl → 12.26.0__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.
Files changed (64) hide show
  1. azure/storage/blob/__init__.py +3 -2
  2. azure/storage/blob/_blob_client.py +94 -41
  3. azure/storage/blob/_blob_client_helpers.py +19 -4
  4. azure/storage/blob/_blob_service_client.py +16 -13
  5. azure/storage/blob/_container_client.py +25 -22
  6. azure/storage/blob/_deserialize.py +1 -1
  7. azure/storage/blob/_download.py +7 -7
  8. azure/storage/blob/_encryption.py +177 -184
  9. azure/storage/blob/_generated/_azure_blob_storage.py +1 -1
  10. azure/storage/blob/_generated/_configuration.py +2 -2
  11. azure/storage/blob/_generated/_serialization.py +3 -3
  12. azure/storage/blob/_generated/aio/_azure_blob_storage.py +1 -1
  13. azure/storage/blob/_generated/aio/_configuration.py +2 -2
  14. azure/storage/blob/_generated/aio/operations/_append_blob_operations.py +5 -4
  15. azure/storage/blob/_generated/aio/operations/_blob_operations.py +5 -25
  16. azure/storage/blob/_generated/aio/operations/_block_blob_operations.py +9 -7
  17. azure/storage/blob/_generated/aio/operations/_container_operations.py +1 -19
  18. azure/storage/blob/_generated/aio/operations/_page_blob_operations.py +5 -10
  19. azure/storage/blob/_generated/aio/operations/_service_operations.py +1 -8
  20. azure/storage/blob/_generated/models/__init__.py +2 -0
  21. azure/storage/blob/_generated/models/_azure_blob_storage_enums.py +6 -0
  22. azure/storage/blob/_generated/operations/_append_blob_operations.py +12 -9
  23. azure/storage/blob/_generated/operations/_blob_operations.py +32 -49
  24. azure/storage/blob/_generated/operations/_block_blob_operations.py +21 -13
  25. azure/storage/blob/_generated/operations/_container_operations.py +19 -37
  26. azure/storage/blob/_generated/operations/_page_blob_operations.py +17 -19
  27. azure/storage/blob/_generated/operations/_service_operations.py +9 -17
  28. azure/storage/blob/_lease.py +1 -0
  29. azure/storage/blob/_quick_query_helper.py +20 -24
  30. azure/storage/blob/_serialize.py +1 -0
  31. azure/storage/blob/_shared/__init__.py +7 -7
  32. azure/storage/blob/_shared/authentication.py +49 -32
  33. azure/storage/blob/_shared/avro/avro_io.py +45 -43
  34. azure/storage/blob/_shared/avro/avro_io_async.py +42 -41
  35. azure/storage/blob/_shared/avro/datafile.py +24 -21
  36. azure/storage/blob/_shared/avro/datafile_async.py +15 -15
  37. azure/storage/blob/_shared/avro/schema.py +196 -217
  38. azure/storage/blob/_shared/base_client.py +87 -61
  39. azure/storage/blob/_shared/base_client_async.py +58 -51
  40. azure/storage/blob/_shared/constants.py +1 -1
  41. azure/storage/blob/_shared/models.py +93 -92
  42. azure/storage/blob/_shared/parser.py +3 -3
  43. azure/storage/blob/_shared/policies.py +176 -145
  44. azure/storage/blob/_shared/policies_async.py +59 -70
  45. azure/storage/blob/_shared/request_handlers.py +51 -47
  46. azure/storage/blob/_shared/response_handlers.py +49 -45
  47. azure/storage/blob/_shared/shared_access_signature.py +67 -71
  48. azure/storage/blob/_shared/uploads.py +56 -49
  49. azure/storage/blob/_shared/uploads_async.py +72 -61
  50. azure/storage/blob/_shared_access_signature.py +3 -1
  51. azure/storage/blob/_version.py +1 -1
  52. azure/storage/blob/aio/__init__.py +3 -2
  53. azure/storage/blob/aio/_blob_client_async.py +241 -44
  54. azure/storage/blob/aio/_blob_service_client_async.py +13 -11
  55. azure/storage/blob/aio/_container_client_async.py +28 -25
  56. azure/storage/blob/aio/_download_async.py +16 -12
  57. azure/storage/blob/aio/_lease_async.py +1 -0
  58. azure/storage/blob/aio/_quick_query_helper_async.py +194 -0
  59. {azure_storage_blob-12.25.0b1.dist-info → azure_storage_blob-12.26.0.dist-info}/METADATA +7 -7
  60. azure_storage_blob-12.26.0.dist-info/RECORD +85 -0
  61. {azure_storage_blob-12.25.0b1.dist-info → azure_storage_blob-12.26.0.dist-info}/WHEEL +1 -1
  62. azure_storage_blob-12.25.0b1.dist-info/RECORD +0 -84
  63. {azure_storage_blob-12.25.0b1.dist-info → azure_storage_blob-12.26.0.dist-info}/LICENSE +0 -0
  64. {azure_storage_blob-12.25.0b1.dist-info → azure_storage_blob-12.26.0.dist-info}/top_level.txt +0 -0
@@ -1,4 +1,4 @@
1
- # pylint: disable=too-many-lines
1
+ # pylint: disable=line-too-long,useless-suppression,too-many-lines
2
2
  # coding=utf-8
3
3
  # --------------------------------------------------------------------------
4
4
  # Copyright (c) Microsoft Corporation. All rights reserved.
@@ -87,7 +87,6 @@ class PageBlobOperations:
87
87
  modified_access_conditions: Optional[_models.ModifiedAccessConditions] = None,
88
88
  **kwargs: Any
89
89
  ) -> None:
90
- # pylint: disable=line-too-long
91
90
  """The Create operation creates a new page blob.
92
91
 
93
92
  :param content_length: The length of the request. Required.
@@ -287,7 +286,6 @@ class PageBlobOperations:
287
286
  modified_access_conditions: Optional[_models.ModifiedAccessConditions] = None,
288
287
  **kwargs: Any
289
288
  ) -> None:
290
- # pylint: disable=line-too-long
291
289
  """The Upload Pages operation writes a range of pages to a page blob.
292
290
 
293
291
  :param content_length: The length of the request. Required.
@@ -475,7 +473,6 @@ class PageBlobOperations:
475
473
  modified_access_conditions: Optional[_models.ModifiedAccessConditions] = None,
476
474
  **kwargs: Any
477
475
  ) -> None:
478
- # pylint: disable=line-too-long
479
476
  """The Clear Pages operation clears a set of pages from a page blob.
480
477
 
481
478
  :param content_length: The length of the request. Required.
@@ -626,6 +623,7 @@ class PageBlobOperations:
626
623
  timeout: Optional[int] = None,
627
624
  request_id_parameter: Optional[str] = None,
628
625
  copy_source_authorization: Optional[str] = None,
626
+ file_request_intent: Optional[Union[str, _models.FileShareTokenIntent]] = None,
629
627
  cpk_info: Optional[_models.CpkInfo] = None,
630
628
  cpk_scope_info: Optional[_models.CpkScopeInfo] = None,
631
629
  lease_access_conditions: Optional[_models.LeaseAccessConditions] = None,
@@ -634,7 +632,6 @@ class PageBlobOperations:
634
632
  source_modified_access_conditions: Optional[_models.SourceModifiedAccessConditions] = None,
635
633
  **kwargs: Any
636
634
  ) -> None:
637
- # pylint: disable=line-too-long
638
635
  """The Upload Pages operation writes a range of pages to a page blob where the contents are read
639
636
  from a URL.
640
637
 
@@ -666,6 +663,8 @@ class PageBlobOperations:
666
663
  :param copy_source_authorization: Only Bearer type is supported. Credentials should be a valid
667
664
  OAuth access token to copy source. Default value is None.
668
665
  :type copy_source_authorization: str
666
+ :param file_request_intent: Valid value is backup. "backup" Default value is None.
667
+ :type file_request_intent: str or ~azure.storage.blob.models.FileShareTokenIntent
669
668
  :param cpk_info: Parameter group. Default value is None.
670
669
  :type cpk_info: ~azure.storage.blob.models.CpkInfo
671
670
  :param cpk_scope_info: Parameter group. Default value is None.
@@ -770,6 +769,7 @@ class PageBlobOperations:
770
769
  source_if_none_match=_source_if_none_match,
771
770
  request_id_parameter=request_id_parameter,
772
771
  copy_source_authorization=copy_source_authorization,
772
+ file_request_intent=file_request_intent,
773
773
  comp=comp,
774
774
  page_write=page_write,
775
775
  version=self._config.version,
@@ -829,7 +829,6 @@ class PageBlobOperations:
829
829
  modified_access_conditions: Optional[_models.ModifiedAccessConditions] = None,
830
830
  **kwargs: Any
831
831
  ) -> _models.PageList:
832
- # pylint: disable=line-too-long
833
832
  """The Get Page Ranges operation returns the list of valid page ranges for a page blob or snapshot
834
833
  of a page blob.
835
834
 
@@ -969,7 +968,6 @@ class PageBlobOperations:
969
968
  modified_access_conditions: Optional[_models.ModifiedAccessConditions] = None,
970
969
  **kwargs: Any
971
970
  ) -> _models.PageList:
972
- # pylint: disable=line-too-long
973
971
  """The Get Page Ranges Diff operation returns the list of valid page ranges for a page blob that
974
972
  were changed between target blob and previous snapshot.
975
973
 
@@ -1120,7 +1118,6 @@ class PageBlobOperations:
1120
1118
  modified_access_conditions: Optional[_models.ModifiedAccessConditions] = None,
1121
1119
  **kwargs: Any
1122
1120
  ) -> None:
1123
- # pylint: disable=line-too-long
1124
1121
  """Resize the Blob.
1125
1122
 
1126
1123
  :param blob_content_length: This header specifies the maximum size for the page blob, up to 1
@@ -1247,7 +1244,6 @@ class PageBlobOperations:
1247
1244
  modified_access_conditions: Optional[_models.ModifiedAccessConditions] = None,
1248
1245
  **kwargs: Any
1249
1246
  ) -> None:
1250
- # pylint: disable=line-too-long
1251
1247
  """Update the sequence number of the blob.
1252
1248
 
1253
1249
  :param sequence_number_action: Required if the x-ms-blob-sequence-number header is set for the
@@ -1361,7 +1357,6 @@ class PageBlobOperations:
1361
1357
  modified_access_conditions: Optional[_models.ModifiedAccessConditions] = None,
1362
1358
  **kwargs: Any
1363
1359
  ) -> None:
1364
- # pylint: disable=line-too-long
1365
1360
  """The Copy Incremental operation copies a snapshot of the source page blob to a destination page
1366
1361
  blob. The snapshot is copied such that only the differential changes between the previously
1367
1362
  copied snapshot are transferred to the destination. The copied snapshots are complete copies of
@@ -1,3 +1,4 @@
1
+ # pylint: disable=line-too-long,useless-suppression
1
2
  # coding=utf-8
2
3
  # --------------------------------------------------------------------------
3
4
  # Copyright (c) Microsoft Corporation. All rights reserved.
@@ -73,7 +74,6 @@ class ServiceOperations:
73
74
  request_id_parameter: Optional[str] = None,
74
75
  **kwargs: Any
75
76
  ) -> None:
76
- # pylint: disable=line-too-long
77
77
  """Sets properties for a storage account's Blob service endpoint, including properties for Storage
78
78
  Analytics and CORS (Cross-Origin Resource Sharing) rules.
79
79
 
@@ -150,7 +150,6 @@ class ServiceOperations:
150
150
  async def get_properties(
151
151
  self, timeout: Optional[int] = None, request_id_parameter: Optional[str] = None, **kwargs: Any
152
152
  ) -> _models.StorageServiceProperties:
153
- # pylint: disable=line-too-long
154
153
  """gets the properties of a storage account's Blob service, including properties for Storage
155
154
  Analytics and CORS (Cross-Origin Resource Sharing) rules.
156
155
 
@@ -224,7 +223,6 @@ class ServiceOperations:
224
223
  async def get_statistics(
225
224
  self, timeout: Optional[int] = None, request_id_parameter: Optional[str] = None, **kwargs: Any
226
225
  ) -> _models.StorageServiceStats:
227
- # pylint: disable=line-too-long
228
226
  """Retrieves statistics related to replication for the Blob service. It is only available on the
229
227
  secondary location endpoint when read-access geo-redundant replication is enabled for the
230
228
  storage account.
@@ -307,7 +305,6 @@ class ServiceOperations:
307
305
  request_id_parameter: Optional[str] = None,
308
306
  **kwargs: Any
309
307
  ) -> _models.ListContainersSegmentResponse:
310
- # pylint: disable=line-too-long
311
308
  """The List Containers Segment operation returns a list of the containers under the specified
312
309
  account.
313
310
 
@@ -407,7 +404,6 @@ class ServiceOperations:
407
404
  request_id_parameter: Optional[str] = None,
408
405
  **kwargs: Any
409
406
  ) -> _models.UserDelegationKey:
410
- # pylint: disable=line-too-long
411
407
  """Retrieves a user delegation key for the Blob service. This is only a valid operation when using
412
408
  bearer token authentication.
413
409
 
@@ -489,7 +485,6 @@ class ServiceOperations:
489
485
  async def get_account_info(
490
486
  self, timeout: Optional[int] = None, request_id_parameter: Optional[str] = None, **kwargs: Any
491
487
  ) -> None:
492
- # pylint: disable=line-too-long
493
488
  """Returns the sku name and account kind.
494
489
 
495
490
  :param timeout: The timeout parameter is expressed in seconds. For more information, see
@@ -567,7 +562,6 @@ class ServiceOperations:
567
562
  request_id_parameter: Optional[str] = None,
568
563
  **kwargs: Any
569
564
  ) -> AsyncIterator[bytes]:
570
- # pylint: disable=line-too-long
571
565
  """The Batch operation allows multiple API calls to be embedded into a single HTTP request.
572
566
 
573
567
  :param content_length: The length of the request. Required.
@@ -660,7 +654,6 @@ class ServiceOperations:
660
654
  include: Optional[List[Union[str, _models.FilterBlobsIncludeItem]]] = None,
661
655
  **kwargs: Any
662
656
  ) -> _models.FilterBlobSegment:
663
- # pylint: disable=line-too-long
664
657
  """The Filter Blobs operation enables callers to list blobs across all containers whose tags match
665
658
  a given search expression. Filter blobs searches across all containers within a storage
666
659
  account but can be scoped within the expression to a single container.
@@ -81,6 +81,7 @@ from ._azure_blob_storage_enums import ( # type: ignore
81
81
  CopyStatusType,
82
82
  DeleteSnapshotsOptionType,
83
83
  EncryptionAlgorithmType,
84
+ FileShareTokenIntent,
84
85
  FilterBlobsIncludeItem,
85
86
  GeoReplicationStatusType,
86
87
  LeaseDurationType,
@@ -165,6 +166,7 @@ __all__ = [
165
166
  "CopyStatusType",
166
167
  "DeleteSnapshotsOptionType",
167
168
  "EncryptionAlgorithmType",
169
+ "FileShareTokenIntent",
168
170
  "FilterBlobsIncludeItem",
169
171
  "GeoReplicationStatusType",
170
172
  "LeaseDurationType",
@@ -152,6 +152,12 @@ class EncryptionAlgorithmType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
152
152
  AES256 = "AES256"
153
153
 
154
154
 
155
+ class FileShareTokenIntent(str, Enum, metaclass=CaseInsensitiveEnumMeta):
156
+ """FileShareTokenIntent."""
157
+
158
+ BACKUP = "backup"
159
+
160
+
155
161
  class FilterBlobsIncludeItem(str, Enum, metaclass=CaseInsensitiveEnumMeta):
156
162
  """FilterBlobsIncludeItem."""
157
163
 
@@ -1,4 +1,4 @@
1
- # pylint: disable=too-many-lines
1
+ # pylint: disable=line-too-long,useless-suppression,too-many-lines
2
2
  # coding=utf-8
3
3
  # --------------------------------------------------------------------------
4
4
  # Copyright (c) Microsoft Corporation. All rights reserved.
@@ -72,7 +72,7 @@ def build_create_request(
72
72
  _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
73
73
 
74
74
  blob_type: Literal["AppendBlob"] = kwargs.pop("blob_type", _headers.pop("x-ms-blob-type", "AppendBlob"))
75
- version: Literal["2025-01-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-01-05"))
75
+ version: Literal["2025-07-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-07-05"))
76
76
  accept = _headers.pop("Accept", "application/xml")
77
77
 
78
78
  # Construct URL
@@ -182,7 +182,7 @@ def build_append_block_request(
182
182
 
183
183
  comp: Literal["appendblock"] = kwargs.pop("comp", _params.pop("comp", "appendblock"))
184
184
  content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
185
- version: Literal["2025-01-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-01-05"))
185
+ version: Literal["2025-07-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-07-05"))
186
186
  accept = _headers.pop("Accept", "application/xml")
187
187
 
188
188
  # Construct URL
@@ -278,13 +278,14 @@ def build_append_block_from_url_request(
278
278
  source_if_none_match: Optional[str] = None,
279
279
  request_id_parameter: Optional[str] = None,
280
280
  copy_source_authorization: Optional[str] = None,
281
+ file_request_intent: Optional[Union[str, _models.FileShareTokenIntent]] = None,
281
282
  **kwargs: Any
282
283
  ) -> HttpRequest:
283
284
  _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
284
285
  _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
285
286
 
286
287
  comp: Literal["appendblock"] = kwargs.pop("comp", _params.pop("comp", "appendblock"))
287
- version: Literal["2025-01-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-01-05"))
288
+ version: Literal["2025-07-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-07-05"))
288
289
  accept = _headers.pop("Accept", "application/xml")
289
290
 
290
291
  # Construct URL
@@ -360,6 +361,8 @@ def build_append_block_from_url_request(
360
361
  _headers["x-ms-copy-source-authorization"] = _SERIALIZER.header(
361
362
  "copy_source_authorization", copy_source_authorization, "str"
362
363
  )
364
+ if file_request_intent is not None:
365
+ _headers["x-ms-file-request-intent"] = _SERIALIZER.header("file_request_intent", file_request_intent, "str")
363
366
  _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
364
367
 
365
368
  return HttpRequest(method="PUT", url=_url, params=_params, headers=_headers, **kwargs)
@@ -382,7 +385,7 @@ def build_seal_request(
382
385
  _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
383
386
 
384
387
  comp: Literal["seal"] = kwargs.pop("comp", _params.pop("comp", "seal"))
385
- version: Literal["2025-01-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-01-05"))
388
+ version: Literal["2025-07-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-07-05"))
386
389
  accept = _headers.pop("Accept", "application/xml")
387
390
 
388
391
  # Construct URL
@@ -456,7 +459,6 @@ class AppendBlobOperations:
456
459
  modified_access_conditions: Optional[_models.ModifiedAccessConditions] = None,
457
460
  **kwargs: Any
458
461
  ) -> None:
459
- # pylint: disable=line-too-long
460
462
  """The Create Append Blob operation creates a new append blob.
461
463
 
462
464
  :param content_length: The length of the request. Required.
@@ -642,7 +644,6 @@ class AppendBlobOperations:
642
644
  modified_access_conditions: Optional[_models.ModifiedAccessConditions] = None,
643
645
  **kwargs: Any
644
646
  ) -> None:
645
- # pylint: disable=line-too-long
646
647
  """The Append Block operation commits a new block of data to the end of an existing append blob.
647
648
  The Append Block operation is permitted only if the blob was created with x-ms-blob-type set to
648
649
  AppendBlob. Append Block is supported only on version 2015-02-21 version or later.
@@ -823,6 +824,7 @@ class AppendBlobOperations:
823
824
  transactional_content_md5: Optional[bytes] = None,
824
825
  request_id_parameter: Optional[str] = None,
825
826
  copy_source_authorization: Optional[str] = None,
827
+ file_request_intent: Optional[Union[str, _models.FileShareTokenIntent]] = None,
826
828
  cpk_info: Optional[_models.CpkInfo] = None,
827
829
  cpk_scope_info: Optional[_models.CpkScopeInfo] = None,
828
830
  lease_access_conditions: Optional[_models.LeaseAccessConditions] = None,
@@ -831,7 +833,6 @@ class AppendBlobOperations:
831
833
  source_modified_access_conditions: Optional[_models.SourceModifiedAccessConditions] = None,
832
834
  **kwargs: Any
833
835
  ) -> None:
834
- # pylint: disable=line-too-long
835
836
  """The Append Block operation commits a new block of data to the end of an existing append blob
836
837
  where the contents are read from a source url. The Append Block operation is permitted only if
837
838
  the blob was created with x-ms-blob-type set to AppendBlob. Append Block is supported only on
@@ -864,6 +865,8 @@ class AppendBlobOperations:
864
865
  :param copy_source_authorization: Only Bearer type is supported. Credentials should be a valid
865
866
  OAuth access token to copy source. Default value is None.
866
867
  :type copy_source_authorization: str
868
+ :param file_request_intent: Valid value is backup. "backup" Default value is None.
869
+ :type file_request_intent: str or ~azure.storage.blob.models.FileShareTokenIntent
867
870
  :param cpk_info: Parameter group. Default value is None.
868
871
  :type cpk_info: ~azure.storage.blob.models.CpkInfo
869
872
  :param cpk_scope_info: Parameter group. Default value is None.
@@ -962,6 +965,7 @@ class AppendBlobOperations:
962
965
  source_if_none_match=_source_if_none_match,
963
966
  request_id_parameter=request_id_parameter,
964
967
  copy_source_authorization=copy_source_authorization,
968
+ file_request_intent=file_request_intent,
965
969
  comp=comp,
966
970
  version=self._config.version,
967
971
  headers=_headers,
@@ -1020,7 +1024,6 @@ class AppendBlobOperations:
1020
1024
  append_position_access_conditions: Optional[_models.AppendPositionAccessConditions] = None,
1021
1025
  **kwargs: Any
1022
1026
  ) -> None:
1023
- # pylint: disable=line-too-long
1024
1027
  """The Seal operation seals the Append Blob to make it read-only. Seal is supported only on
1025
1028
  version 2019-12-12 version or later.
1026
1029