azure-storage-blob 12.25.1__py3-none-any.whl → 12.27.0b1__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 (67) 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 +3 -2
  10. azure/storage/blob/_generated/_configuration.py +2 -2
  11. azure/storage/blob/_generated/_utils/__init__.py +6 -0
  12. azure/storage/blob/_generated/{_serialization.py → _utils/serialization.py} +7 -25
  13. azure/storage/blob/_generated/aio/_azure_blob_storage.py +3 -2
  14. azure/storage/blob/_generated/aio/_configuration.py +2 -2
  15. azure/storage/blob/_generated/aio/operations/_append_blob_operations.py +11 -14
  16. azure/storage/blob/_generated/aio/operations/_blob_operations.py +40 -64
  17. azure/storage/blob/_generated/aio/operations/_block_blob_operations.py +18 -20
  18. azure/storage/blob/_generated/aio/operations/_container_operations.py +21 -43
  19. azure/storage/blob/_generated/aio/operations/_page_blob_operations.py +18 -27
  20. azure/storage/blob/_generated/aio/operations/_service_operations.py +11 -22
  21. azure/storage/blob/_generated/models/__init__.py +2 -0
  22. azure/storage/blob/_generated/models/_azure_blob_storage_enums.py +6 -0
  23. azure/storage/blob/_generated/models/_models_py3.py +30 -9
  24. azure/storage/blob/_generated/operations/_append_blob_operations.py +19 -20
  25. azure/storage/blob/_generated/operations/_blob_operations.py +68 -89
  26. azure/storage/blob/_generated/operations/_block_blob_operations.py +31 -27
  27. azure/storage/blob/_generated/operations/_container_operations.py +40 -62
  28. azure/storage/blob/_generated/operations/_page_blob_operations.py +31 -37
  29. azure/storage/blob/_generated/operations/_service_operations.py +20 -32
  30. azure/storage/blob/_lease.py +1 -0
  31. azure/storage/blob/_list_blobs_helper.py +1 -1
  32. azure/storage/blob/_quick_query_helper.py +20 -24
  33. azure/storage/blob/_serialize.py +2 -0
  34. azure/storage/blob/_shared/__init__.py +7 -7
  35. azure/storage/blob/_shared/authentication.py +49 -32
  36. azure/storage/blob/_shared/avro/avro_io.py +44 -42
  37. azure/storage/blob/_shared/avro/avro_io_async.py +42 -41
  38. azure/storage/blob/_shared/avro/datafile.py +24 -21
  39. azure/storage/blob/_shared/avro/datafile_async.py +15 -15
  40. azure/storage/blob/_shared/avro/schema.py +196 -217
  41. azure/storage/blob/_shared/base_client.py +82 -59
  42. azure/storage/blob/_shared/base_client_async.py +58 -51
  43. azure/storage/blob/_shared/constants.py +1 -1
  44. azure/storage/blob/_shared/models.py +94 -92
  45. azure/storage/blob/_shared/parser.py +3 -3
  46. azure/storage/blob/_shared/policies.py +186 -147
  47. azure/storage/blob/_shared/policies_async.py +53 -65
  48. azure/storage/blob/_shared/request_handlers.py +50 -45
  49. azure/storage/blob/_shared/response_handlers.py +54 -45
  50. azure/storage/blob/_shared/shared_access_signature.py +67 -71
  51. azure/storage/blob/_shared/uploads.py +56 -49
  52. azure/storage/blob/_shared/uploads_async.py +70 -58
  53. azure/storage/blob/_shared_access_signature.py +3 -1
  54. azure/storage/blob/_version.py +1 -1
  55. azure/storage/blob/aio/__init__.py +3 -2
  56. azure/storage/blob/aio/_blob_client_async.py +241 -44
  57. azure/storage/blob/aio/_blob_service_client_async.py +13 -11
  58. azure/storage/blob/aio/_container_client_async.py +28 -25
  59. azure/storage/blob/aio/_download_async.py +7 -7
  60. azure/storage/blob/aio/_lease_async.py +1 -0
  61. azure/storage/blob/aio/_quick_query_helper_async.py +194 -0
  62. {azure_storage_blob-12.25.1.dist-info → azure_storage_blob-12.27.0b1.dist-info}/METADATA +4 -5
  63. azure_storage_blob-12.27.0b1.dist-info/RECORD +86 -0
  64. azure_storage_blob-12.25.1.dist-info/RECORD +0 -84
  65. {azure_storage_blob-12.25.1.dist-info → azure_storage_blob-12.27.0b1.dist-info}/LICENSE +0 -0
  66. {azure_storage_blob-12.25.1.dist-info → azure_storage_blob-12.27.0b1.dist-info}/WHEEL +0 -0
  67. {azure_storage_blob-12.25.1.dist-info → azure_storage_blob-12.27.0b1.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.
@@ -6,8 +6,8 @@
6
6
  # Code generated by Microsoft (R) AutoRest Code Generator.
7
7
  # Changes may cause incorrect behavior and will be lost if the code is regenerated.
8
8
  # --------------------------------------------------------------------------
9
+ from collections.abc import MutableMapping
9
10
  import datetime
10
- import sys
11
11
  from typing import Any, Callable, Dict, IO, Literal, Optional, TypeVar, Union
12
12
 
13
13
  from azure.core import PipelineClient
@@ -26,12 +26,8 @@ from azure.core.utils import case_insensitive_dict
26
26
 
27
27
  from .. import models as _models
28
28
  from .._configuration import AzureBlobStorageConfiguration
29
- from .._serialization import Deserializer, Serializer
29
+ from .._utils.serialization import Deserializer, Serializer
30
30
 
31
- if sys.version_info >= (3, 9):
32
- from collections.abc import MutableMapping
33
- else:
34
- from typing import MutableMapping # type: ignore
35
31
  T = TypeVar("T")
36
32
  ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]]
37
33
 
@@ -79,7 +75,7 @@ def build_upload_request(
79
75
 
80
76
  blob_type: Literal["BlockBlob"] = kwargs.pop("blob_type", _headers.pop("x-ms-blob-type", "BlockBlob"))
81
77
  content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
82
- version: Literal["2025-01-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-01-05"))
78
+ version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
83
79
  accept = _headers.pop("Accept", "application/xml")
84
80
 
85
81
  # Construct URL
@@ -213,13 +209,14 @@ def build_put_blob_from_url_request(
213
209
  copy_source_blob_properties: Optional[bool] = None,
214
210
  copy_source_authorization: Optional[str] = None,
215
211
  copy_source_tags: Optional[Union[str, _models.BlobCopySourceTags]] = None,
212
+ file_request_intent: Optional[Union[str, _models.FileShareTokenIntent]] = None,
216
213
  **kwargs: Any
217
214
  ) -> HttpRequest:
218
215
  _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
219
216
  _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
220
217
 
221
218
  blob_type: Literal["BlockBlob"] = kwargs.pop("blob_type", _headers.pop("x-ms-blob-type", "BlockBlob"))
222
- version: Literal["2025-01-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-01-05"))
219
+ version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
223
220
  accept = _headers.pop("Accept", "application/xml")
224
221
 
225
222
  # Construct URL
@@ -317,6 +314,8 @@ def build_put_blob_from_url_request(
317
314
  )
318
315
  if copy_source_tags is not None:
319
316
  _headers["x-ms-copy-source-tag-option"] = _SERIALIZER.header("copy_source_tags", copy_source_tags, "str")
317
+ if file_request_intent is not None:
318
+ _headers["x-ms-file-request-intent"] = _SERIALIZER.header("file_request_intent", file_request_intent, "str")
320
319
  _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
321
320
 
322
321
  return HttpRequest(method="PUT", url=_url, params=_params, headers=_headers, **kwargs)
@@ -346,7 +345,7 @@ def build_stage_block_request(
346
345
 
347
346
  comp: Literal["block"] = kwargs.pop("comp", _params.pop("comp", "block"))
348
347
  content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
349
- version: Literal["2025-01-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-01-05"))
348
+ version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
350
349
  accept = _headers.pop("Accept", "application/xml")
351
350
 
352
351
  # Construct URL
@@ -422,13 +421,14 @@ def build_stage_block_from_url_request(
422
421
  source_if_none_match: Optional[str] = None,
423
422
  request_id_parameter: Optional[str] = None,
424
423
  copy_source_authorization: Optional[str] = None,
424
+ file_request_intent: Optional[Union[str, _models.FileShareTokenIntent]] = None,
425
425
  **kwargs: Any
426
426
  ) -> HttpRequest:
427
427
  _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
428
428
  _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
429
429
 
430
430
  comp: Literal["block"] = kwargs.pop("comp", _params.pop("comp", "block"))
431
- version: Literal["2025-01-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-01-05"))
431
+ version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
432
432
  accept = _headers.pop("Accept", "application/xml")
433
433
 
434
434
  # Construct URL
@@ -487,6 +487,8 @@ def build_stage_block_from_url_request(
487
487
  _headers["x-ms-copy-source-authorization"] = _SERIALIZER.header(
488
488
  "copy_source_authorization", copy_source_authorization, "str"
489
489
  )
490
+ if file_request_intent is not None:
491
+ _headers["x-ms-file-request-intent"] = _SERIALIZER.header("file_request_intent", file_request_intent, "str")
490
492
  _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
491
493
 
492
494
  return HttpRequest(method="PUT", url=_url, params=_params, headers=_headers, **kwargs)
@@ -529,7 +531,7 @@ def build_commit_block_list_request(
529
531
 
530
532
  comp: Literal["blocklist"] = kwargs.pop("comp", _params.pop("comp", "blocklist"))
531
533
  content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
532
- version: Literal["2025-01-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-01-05"))
534
+ version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
533
535
  accept = _headers.pop("Accept", "application/xml")
534
536
 
535
537
  # Construct URL
@@ -635,7 +637,7 @@ def build_get_block_list_request(
635
637
  _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
636
638
 
637
639
  comp: Literal["blocklist"] = kwargs.pop("comp", _params.pop("comp", "blocklist"))
638
- version: Literal["2025-01-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-01-05"))
640
+ version: Literal["2025-11-05"] = kwargs.pop("version", _headers.pop("x-ms-version", "2025-11-05"))
639
641
  accept = _headers.pop("Accept", "application/xml")
640
642
 
641
643
  # Construct URL
@@ -679,7 +681,7 @@ class BlockBlobOperations:
679
681
 
680
682
  models = _models
681
683
 
682
- def __init__(self, *args, **kwargs):
684
+ def __init__(self, *args, **kwargs) -> None:
683
685
  input_args = list(args)
684
686
  self._client: PipelineClient = input_args.pop(0) if input_args else kwargs.pop("client")
685
687
  self._config: AzureBlobStorageConfiguration = input_args.pop(0) if input_args else kwargs.pop("config")
@@ -710,7 +712,6 @@ class BlockBlobOperations:
710
712
  modified_access_conditions: Optional[_models.ModifiedAccessConditions] = None,
711
713
  **kwargs: Any
712
714
  ) -> None:
713
- # pylint: disable=line-too-long
714
715
  """The Upload Block Blob operation updates the content of an existing block blob. Updating an
715
716
  existing block blob overwrites any existing metadata on the blob. Partial updates are not
716
717
  supported with Put Blob; the content of the existing blob is overwritten with the content of
@@ -723,7 +724,7 @@ class BlockBlobOperations:
723
724
  :type body: IO[bytes]
724
725
  :param timeout: The timeout parameter is expressed in seconds. For more information, see
725
726
  :code:`<a
726
- href="https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/setting-timeouts-for-blob-service-operations">Setting
727
+ href="https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-blob-service-operations">Setting
727
728
  Timeouts for Blob Service Operations.</a>`. Default value is None.
728
729
  :type timeout: int
729
730
  :param transactional_content_md5: Specify the transactional md5 for the body, to be validated
@@ -928,6 +929,7 @@ class BlockBlobOperations:
928
929
  copy_source_blob_properties: Optional[bool] = None,
929
930
  copy_source_authorization: Optional[str] = None,
930
931
  copy_source_tags: Optional[Union[str, _models.BlobCopySourceTags]] = None,
932
+ file_request_intent: Optional[Union[str, _models.FileShareTokenIntent]] = None,
931
933
  blob_http_headers: Optional[_models.BlobHTTPHeaders] = None,
932
934
  lease_access_conditions: Optional[_models.LeaseAccessConditions] = None,
933
935
  cpk_info: Optional[_models.CpkInfo] = None,
@@ -936,7 +938,6 @@ class BlockBlobOperations:
936
938
  source_modified_access_conditions: Optional[_models.SourceModifiedAccessConditions] = None,
937
939
  **kwargs: Any
938
940
  ) -> None:
939
- # pylint: disable=line-too-long
940
941
  """The Put Blob from URL operation creates a new Block Blob where the contents of the blob are
941
942
  read from a given URL. This API is supported beginning with the 2020-04-08 version. Partial
942
943
  updates are not supported with Put Blob from URL; the content of an existing blob is
@@ -952,7 +953,7 @@ class BlockBlobOperations:
952
953
  :type copy_source: str
953
954
  :param timeout: The timeout parameter is expressed in seconds. For more information, see
954
955
  :code:`<a
955
- href="https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/setting-timeouts-for-blob-service-operations">Setting
956
+ href="https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-blob-service-operations">Setting
956
957
  Timeouts for Blob Service Operations.</a>`. Default value is None.
957
958
  :type timeout: int
958
959
  :param transactional_content_md5: Specify the transactional md5 for the body, to be validated
@@ -990,6 +991,8 @@ class BlockBlobOperations:
990
991
  copied or replaced with the tags specified by x-ms-tags. Known values are: "REPLACE" and
991
992
  "COPY". Default value is None.
992
993
  :type copy_source_tags: str or ~azure.storage.blob.models.BlobCopySourceTags
994
+ :param file_request_intent: Valid value is backup. "backup" Default value is None.
995
+ :type file_request_intent: str or ~azure.storage.blob.models.FileShareTokenIntent
993
996
  :param blob_http_headers: Parameter group. Default value is None.
994
997
  :type blob_http_headers: ~azure.storage.blob.models.BlobHTTPHeaders
995
998
  :param lease_access_conditions: Parameter group. Default value is None.
@@ -1105,6 +1108,7 @@ class BlockBlobOperations:
1105
1108
  copy_source_blob_properties=copy_source_blob_properties,
1106
1109
  copy_source_authorization=copy_source_authorization,
1107
1110
  copy_source_tags=copy_source_tags,
1111
+ file_request_intent=file_request_intent,
1108
1112
  blob_type=blob_type,
1109
1113
  version=self._config.version,
1110
1114
  headers=_headers,
@@ -1165,7 +1169,6 @@ class BlockBlobOperations:
1165
1169
  cpk_scope_info: Optional[_models.CpkScopeInfo] = None,
1166
1170
  **kwargs: Any
1167
1171
  ) -> None:
1168
- # pylint: disable=line-too-long
1169
1172
  """The Stage Block operation creates a new block to be committed as part of a blob.
1170
1173
 
1171
1174
  :param block_id: A valid Base64 string value that identifies the block. Prior to encoding, the
@@ -1184,7 +1187,7 @@ class BlockBlobOperations:
1184
1187
  :type transactional_content_crc64: bytes
1185
1188
  :param timeout: The timeout parameter is expressed in seconds. For more information, see
1186
1189
  :code:`<a
1187
- href="https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/setting-timeouts-for-blob-service-operations">Setting
1190
+ href="https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-blob-service-operations">Setting
1188
1191
  Timeouts for Blob Service Operations.</a>`. Default value is None.
1189
1192
  :type timeout: int
1190
1193
  :param request_id_parameter: Provides a client-generated, opaque value with a 1 KB character
@@ -1313,13 +1316,13 @@ class BlockBlobOperations:
1313
1316
  timeout: Optional[int] = None,
1314
1317
  request_id_parameter: Optional[str] = None,
1315
1318
  copy_source_authorization: Optional[str] = None,
1319
+ file_request_intent: Optional[Union[str, _models.FileShareTokenIntent]] = None,
1316
1320
  cpk_info: Optional[_models.CpkInfo] = None,
1317
1321
  cpk_scope_info: Optional[_models.CpkScopeInfo] = None,
1318
1322
  lease_access_conditions: Optional[_models.LeaseAccessConditions] = None,
1319
1323
  source_modified_access_conditions: Optional[_models.SourceModifiedAccessConditions] = None,
1320
1324
  **kwargs: Any
1321
1325
  ) -> None:
1322
- # pylint: disable=line-too-long
1323
1326
  """The Stage Block operation creates a new block to be committed as part of a blob where the
1324
1327
  contents are read from a URL.
1325
1328
 
@@ -1341,7 +1344,7 @@ class BlockBlobOperations:
1341
1344
  :type source_contentcrc64: bytes
1342
1345
  :param timeout: The timeout parameter is expressed in seconds. For more information, see
1343
1346
  :code:`<a
1344
- href="https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/setting-timeouts-for-blob-service-operations">Setting
1347
+ href="https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-blob-service-operations">Setting
1345
1348
  Timeouts for Blob Service Operations.</a>`. Default value is None.
1346
1349
  :type timeout: int
1347
1350
  :param request_id_parameter: Provides a client-generated, opaque value with a 1 KB character
@@ -1351,6 +1354,8 @@ class BlockBlobOperations:
1351
1354
  :param copy_source_authorization: Only Bearer type is supported. Credentials should be a valid
1352
1355
  OAuth access token to copy source. Default value is None.
1353
1356
  :type copy_source_authorization: str
1357
+ :param file_request_intent: Valid value is backup. "backup" Default value is None.
1358
+ :type file_request_intent: str or ~azure.storage.blob.models.FileShareTokenIntent
1354
1359
  :param cpk_info: Parameter group. Default value is None.
1355
1360
  :type cpk_info: ~azure.storage.blob.models.CpkInfo
1356
1361
  :param cpk_scope_info: Parameter group. Default value is None.
@@ -1421,6 +1426,7 @@ class BlockBlobOperations:
1421
1426
  source_if_none_match=_source_if_none_match,
1422
1427
  request_id_parameter=request_id_parameter,
1423
1428
  copy_source_authorization=copy_source_authorization,
1429
+ file_request_intent=file_request_intent,
1424
1430
  comp=comp,
1425
1431
  version=self._config.version,
1426
1432
  headers=_headers,
@@ -1485,7 +1491,6 @@ class BlockBlobOperations:
1485
1491
  modified_access_conditions: Optional[_models.ModifiedAccessConditions] = None,
1486
1492
  **kwargs: Any
1487
1493
  ) -> None:
1488
- # pylint: disable=line-too-long
1489
1494
  """The Commit Block List operation writes a blob by specifying the list of block IDs that make up
1490
1495
  the blob. In order to be written as part of a blob, a block must have been successfully written
1491
1496
  to the server in a prior Put Block operation. You can call Put Block List to update a blob by
@@ -1498,7 +1503,7 @@ class BlockBlobOperations:
1498
1503
  :type blocks: ~azure.storage.blob.models.BlockLookupList
1499
1504
  :param timeout: The timeout parameter is expressed in seconds. For more information, see
1500
1505
  :code:`<a
1501
- href="https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/setting-timeouts-for-blob-service-operations">Setting
1506
+ href="https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-blob-service-operations">Setting
1502
1507
  Timeouts for Blob Service Operations.</a>`. Default value is None.
1503
1508
  :type timeout: int
1504
1509
  :param transactional_content_md5: Specify the transactional md5 for the body, to be validated
@@ -1689,14 +1694,13 @@ class BlockBlobOperations:
1689
1694
  modified_access_conditions: Optional[_models.ModifiedAccessConditions] = None,
1690
1695
  **kwargs: Any
1691
1696
  ) -> _models.BlockList:
1692
- # pylint: disable=line-too-long
1693
1697
  """The Get Block List operation retrieves the list of blocks that have been uploaded as part of a
1694
1698
  block blob.
1695
1699
 
1696
1700
  :param snapshot: The snapshot parameter is an opaque DateTime value that, when present,
1697
1701
  specifies the blob snapshot to retrieve. For more information on working with blob snapshots,
1698
1702
  see :code:`<a
1699
- href="https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/creating-a-snapshot-of-a-blob">Creating
1703
+ href="https://learn.microsoft.com/rest/api/storageservices/creating-a-snapshot-of-a-blob">Creating
1700
1704
  a Snapshot of a Blob.</a>`. Default value is None.
1701
1705
  :type snapshot: str
1702
1706
  :param list_type: Specifies whether to return the list of committed blocks, the list of
@@ -1705,7 +1709,7 @@ class BlockBlobOperations:
1705
1709
  :type list_type: str or ~azure.storage.blob.models.BlockListType
1706
1710
  :param timeout: The timeout parameter is expressed in seconds. For more information, see
1707
1711
  :code:`<a
1708
- href="https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/setting-timeouts-for-blob-service-operations">Setting
1712
+ href="https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-blob-service-operations">Setting
1709
1713
  Timeouts for Blob Service Operations.</a>`. Default value is None.
1710
1714
  :type timeout: int
1711
1715
  :param request_id_parameter: Provides a client-generated, opaque value with a 1 KB character