azure-storage-blob 12.19.1__py3-none-any.whl → 12.20.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 (57) hide show
  1. azure/storage/blob/__init__.py +7 -5
  2. azure/storage/blob/_blob_client.py +12 -4
  3. azure/storage/blob/_blob_service_client.py +4 -3
  4. azure/storage/blob/_container_client.py +28 -12
  5. azure/storage/blob/_download.py +3 -3
  6. azure/storage/blob/_encryption.py +254 -165
  7. azure/storage/blob/_generated/_azure_blob_storage.py +21 -3
  8. azure/storage/blob/_generated/_configuration.py +4 -11
  9. azure/storage/blob/_generated/_serialization.py +41 -49
  10. azure/storage/blob/_generated/aio/_azure_blob_storage.py +23 -3
  11. azure/storage/blob/_generated/aio/_configuration.py +4 -11
  12. azure/storage/blob/_generated/aio/operations/_append_blob_operations.py +24 -58
  13. azure/storage/blob/_generated/aio/operations/_blob_operations.py +123 -306
  14. azure/storage/blob/_generated/aio/operations/_block_blob_operations.py +37 -86
  15. azure/storage/blob/_generated/aio/operations/_container_operations.py +98 -289
  16. azure/storage/blob/_generated/aio/operations/_page_blob_operations.py +51 -150
  17. azure/storage/blob/_generated/aio/operations/_service_operations.py +49 -125
  18. azure/storage/blob/_generated/models/_models_py3.py +31 -31
  19. azure/storage/blob/_generated/operations/_append_blob_operations.py +25 -59
  20. azure/storage/blob/_generated/operations/_blob_operations.py +123 -306
  21. azure/storage/blob/_generated/operations/_block_blob_operations.py +39 -88
  22. azure/storage/blob/_generated/operations/_container_operations.py +100 -291
  23. azure/storage/blob/_generated/operations/_page_blob_operations.py +52 -151
  24. azure/storage/blob/_generated/operations/_service_operations.py +50 -126
  25. azure/storage/blob/_models.py +3 -4
  26. azure/storage/blob/_serialize.py +1 -0
  27. azure/storage/blob/_shared/authentication.py +1 -1
  28. azure/storage/blob/_shared/avro/avro_io.py +0 -6
  29. azure/storage/blob/_shared/avro/avro_io_async.py +0 -6
  30. azure/storage/blob/_shared/avro/datafile.py +0 -4
  31. azure/storage/blob/_shared/avro/datafile_async.py +0 -4
  32. azure/storage/blob/_shared/avro/schema.py +4 -4
  33. azure/storage/blob/_shared/base_client.py +72 -87
  34. azure/storage/blob/_shared/base_client_async.py +115 -27
  35. azure/storage/blob/_shared/models.py +112 -20
  36. azure/storage/blob/_shared/parser.py +7 -6
  37. azure/storage/blob/_shared/policies.py +96 -66
  38. azure/storage/blob/_shared/policies_async.py +48 -21
  39. azure/storage/blob/_shared/response_handlers.py +14 -16
  40. azure/storage/blob/_shared/shared_access_signature.py +2 -3
  41. azure/storage/blob/_shared_access_signature.py +37 -27
  42. azure/storage/blob/_upload_helpers.py +4 -7
  43. azure/storage/blob/_version.py +1 -1
  44. azure/storage/blob/aio/__init__.py +2 -2
  45. azure/storage/blob/aio/_blob_client_async.py +16 -5
  46. azure/storage/blob/aio/_blob_service_client_async.py +3 -1
  47. azure/storage/blob/aio/_container_client_async.py +25 -8
  48. azure/storage/blob/aio/_download_async.py +9 -9
  49. azure/storage/blob/aio/_encryption_async.py +72 -0
  50. azure/storage/blob/aio/_upload_helpers.py +8 -10
  51. {azure_storage_blob-12.19.1.dist-info → azure_storage_blob-12.20.0b1.dist-info}/METADATA +9 -9
  52. azure_storage_blob-12.20.0b1.dist-info/RECORD +81 -0
  53. {azure_storage_blob-12.19.1.dist-info → azure_storage_blob-12.20.0b1.dist-info}/WHEEL +1 -1
  54. azure/storage/blob/_generated/py.typed +0 -1
  55. azure_storage_blob-12.19.1.dist-info/RECORD +0 -81
  56. {azure_storage_blob-12.19.1.dist-info → azure_storage_blob-12.20.0b1.dist-info}/LICENSE +0 -0
  57. {azure_storage_blob-12.19.1.dist-info → azure_storage_blob-12.20.0b1.dist-info}/top_level.txt +0 -0
@@ -1,4 +1,4 @@
1
- # pylint: disable=too-many-lines
1
+ # pylint: disable=too-many-lines,too-many-statements
2
2
  # coding=utf-8
3
3
  # --------------------------------------------------------------------------
4
4
  # Copyright (c) Microsoft Corporation. All rights reserved.
@@ -7,8 +7,7 @@
7
7
  # Changes may cause incorrect behavior and will be lost if the code is regenerated.
8
8
  # --------------------------------------------------------------------------
9
9
  import datetime
10
- import sys
11
- from typing import Any, Callable, Dict, IO, Optional, TypeVar, Union
10
+ from typing import Any, Callable, Dict, IO, Literal, Optional, TypeVar, Union
12
11
 
13
12
  from azure.core.exceptions import (
14
13
  ClientAuthenticationError,
@@ -28,10 +27,6 @@ from .. import models as _models
28
27
  from .._serialization import Serializer
29
28
  from .._vendor import _convert_request
30
29
 
31
- if sys.version_info >= (3, 8):
32
- from typing import Literal # pylint: disable=no-name-in-module, ungrouped-imports
33
- else:
34
- from typing_extensions import Literal # type: ignore # pylint: disable=ungrouped-imports
35
30
  T = TypeVar("T")
36
31
  ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]]
37
32
 
@@ -43,7 +38,7 @@ def build_upload_request(
43
38
  url: str,
44
39
  *,
45
40
  content_length: int,
46
- content: IO,
41
+ content: IO[bytes],
47
42
  timeout: Optional[int] = None,
48
43
  transactional_content_md5: Optional[bytes] = None,
49
44
  blob_content_type: Optional[str] = None,
@@ -319,7 +314,7 @@ def build_stage_block_request(
319
314
  *,
320
315
  block_id: str,
321
316
  content_length: int,
322
- content: IO,
317
+ content: IO[bytes],
323
318
  transactional_content_md5: Optional[bytes] = None,
324
319
  transactional_content_crc64: Optional[bytes] = None,
325
320
  timeout: Optional[int] = None,
@@ -674,7 +669,7 @@ class BlockBlobOperations:
674
669
  def upload( # pylint: disable=inconsistent-return-statements
675
670
  self,
676
671
  content_length: int,
677
- body: IO,
672
+ body: IO[bytes],
678
673
  timeout: Optional[int] = None,
679
674
  transactional_content_md5: Optional[bytes] = None,
680
675
  metadata: Optional[Dict[str, str]] = None,
@@ -701,7 +696,7 @@ class BlockBlobOperations:
701
696
  :param content_length: The length of the request. Required.
702
697
  :type content_length: int
703
698
  :param body: Initial data. Required.
704
- :type body: IO
699
+ :type body: IO[bytes]
705
700
  :param timeout: The timeout parameter is expressed in seconds. For more information, see
706
701
  :code:`<a
707
702
  href="https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/setting-timeouts-for-blob-service-operations">Setting
@@ -750,11 +745,6 @@ class BlockBlobOperations:
750
745
  :type cpk_scope_info: ~azure.storage.blob.models.CpkScopeInfo
751
746
  :param modified_access_conditions: Parameter group. Default value is None.
752
747
  :type modified_access_conditions: ~azure.storage.blob.models.ModifiedAccessConditions
753
- :keyword blob_type: Specifies the type of blob to create: block blob, page blob, or append
754
- blob. Default value is "BlockBlob". Note that overriding this default value may result in
755
- unsupported behavior.
756
- :paramtype blob_type: str
757
- :keyword callable cls: A custom type or function that will be passed the direct response
758
748
  :return: None or the result of cls(response)
759
749
  :rtype: None
760
750
  :raises ~azure.core.exceptions.HttpResponseError:
@@ -813,7 +803,7 @@ class BlockBlobOperations:
813
803
  _if_unmodified_since = modified_access_conditions.if_unmodified_since
814
804
  _content = body
815
805
 
816
- request = build_upload_request(
806
+ _request = build_upload_request(
817
807
  url=self._config.url,
818
808
  content_length=content_length,
819
809
  timeout=timeout,
@@ -846,16 +836,15 @@ class BlockBlobOperations:
846
836
  content_type=content_type,
847
837
  version=self._config.version,
848
838
  content=_content,
849
- template_url=self.upload.metadata["url"],
850
839
  headers=_headers,
851
840
  params=_params,
852
841
  )
853
- request = _convert_request(request)
854
- request.url = self._client.format_url(request.url)
842
+ _request = _convert_request(_request)
843
+ _request.url = self._client.format_url(_request.url)
855
844
 
856
845
  _stream = False
857
846
  pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
858
- request, stream=_stream, **kwargs
847
+ _request, stream=_stream, **kwargs
859
848
  )
860
849
 
861
850
  response = pipeline_response.http_response
@@ -887,9 +876,7 @@ class BlockBlobOperations:
887
876
  )
888
877
 
889
878
  if cls:
890
- return cls(pipeline_response, None, response_headers)
891
-
892
- upload.metadata = {"url": "{url}"}
879
+ return cls(pipeline_response, None, response_headers) # type: ignore
893
880
 
894
881
  @distributed_trace
895
882
  def put_blob_from_url( # pylint: disable=inconsistent-return-statements
@@ -980,11 +967,6 @@ class BlockBlobOperations:
980
967
  :param source_modified_access_conditions: Parameter group. Default value is None.
981
968
  :type source_modified_access_conditions:
982
969
  ~azure.storage.blob.models.SourceModifiedAccessConditions
983
- :keyword blob_type: Specifies the type of blob to create: block blob, page blob, or append
984
- blob. Default value is "BlockBlob". Note that overriding this default value may result in
985
- unsupported behavior.
986
- :paramtype blob_type: str
987
- :keyword callable cls: A custom type or function that will be passed the direct response
988
970
  :return: None or the result of cls(response)
989
971
  :rtype: None
990
972
  :raises ~azure.core.exceptions.HttpResponseError:
@@ -1052,7 +1034,7 @@ class BlockBlobOperations:
1052
1034
  _source_if_tags = source_modified_access_conditions.source_if_tags
1053
1035
  _source_if_unmodified_since = source_modified_access_conditions.source_if_unmodified_since
1054
1036
 
1055
- request = build_put_blob_from_url_request(
1037
+ _request = build_put_blob_from_url_request(
1056
1038
  url=self._config.url,
1057
1039
  content_length=content_length,
1058
1040
  copy_source=copy_source,
@@ -1089,16 +1071,15 @@ class BlockBlobOperations:
1089
1071
  copy_source_tags=copy_source_tags,
1090
1072
  blob_type=blob_type,
1091
1073
  version=self._config.version,
1092
- template_url=self.put_blob_from_url.metadata["url"],
1093
1074
  headers=_headers,
1094
1075
  params=_params,
1095
1076
  )
1096
- request = _convert_request(request)
1097
- request.url = self._client.format_url(request.url)
1077
+ _request = _convert_request(_request)
1078
+ _request.url = self._client.format_url(_request.url)
1098
1079
 
1099
1080
  _stream = False
1100
1081
  pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
1101
- request, stream=_stream, **kwargs
1082
+ _request, stream=_stream, **kwargs
1102
1083
  )
1103
1084
 
1104
1085
  response = pipeline_response.http_response
@@ -1130,16 +1111,14 @@ class BlockBlobOperations:
1130
1111
  )
1131
1112
 
1132
1113
  if cls:
1133
- return cls(pipeline_response, None, response_headers)
1134
-
1135
- put_blob_from_url.metadata = {"url": "{url}"}
1114
+ return cls(pipeline_response, None, response_headers) # type: ignore
1136
1115
 
1137
1116
  @distributed_trace
1138
1117
  def stage_block( # pylint: disable=inconsistent-return-statements
1139
1118
  self,
1140
1119
  block_id: str,
1141
1120
  content_length: int,
1142
- body: IO,
1121
+ body: IO[bytes],
1143
1122
  transactional_content_md5: Optional[bytes] = None,
1144
1123
  transactional_content_crc64: Optional[bytes] = None,
1145
1124
  timeout: Optional[int] = None,
@@ -1158,7 +1137,7 @@ class BlockBlobOperations:
1158
1137
  :param content_length: The length of the request. Required.
1159
1138
  :type content_length: int
1160
1139
  :param body: Initial data. Required.
1161
- :type body: IO
1140
+ :type body: IO[bytes]
1162
1141
  :param transactional_content_md5: Specify the transactional md5 for the body, to be validated
1163
1142
  by the service. Default value is None.
1164
1143
  :type transactional_content_md5: bytes
@@ -1180,10 +1159,6 @@ class BlockBlobOperations:
1180
1159
  :type cpk_info: ~azure.storage.blob.models.CpkInfo
1181
1160
  :param cpk_scope_info: Parameter group. Default value is None.
1182
1161
  :type cpk_scope_info: ~azure.storage.blob.models.CpkScopeInfo
1183
- :keyword comp: comp. Default value is "block". Note that overriding this default value may
1184
- result in unsupported behavior.
1185
- :paramtype comp: str
1186
- :keyword callable cls: A custom type or function that will be passed the direct response
1187
1162
  :return: None or the result of cls(response)
1188
1163
  :rtype: None
1189
1164
  :raises ~azure.core.exceptions.HttpResponseError:
@@ -1218,7 +1193,7 @@ class BlockBlobOperations:
1218
1193
  _encryption_scope = cpk_scope_info.encryption_scope
1219
1194
  _content = body
1220
1195
 
1221
- request = build_stage_block_request(
1196
+ _request = build_stage_block_request(
1222
1197
  url=self._config.url,
1223
1198
  block_id=block_id,
1224
1199
  content_length=content_length,
@@ -1235,16 +1210,15 @@ class BlockBlobOperations:
1235
1210
  content_type=content_type,
1236
1211
  version=self._config.version,
1237
1212
  content=_content,
1238
- template_url=self.stage_block.metadata["url"],
1239
1213
  headers=_headers,
1240
1214
  params=_params,
1241
1215
  )
1242
- request = _convert_request(request)
1243
- request.url = self._client.format_url(request.url)
1216
+ _request = _convert_request(_request)
1217
+ _request.url = self._client.format_url(_request.url)
1244
1218
 
1245
1219
  _stream = False
1246
1220
  pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
1247
- request, stream=_stream, **kwargs
1221
+ _request, stream=_stream, **kwargs
1248
1222
  )
1249
1223
 
1250
1224
  response = pipeline_response.http_response
@@ -1276,9 +1250,7 @@ class BlockBlobOperations:
1276
1250
  )
1277
1251
 
1278
1252
  if cls:
1279
- return cls(pipeline_response, None, response_headers)
1280
-
1281
- stage_block.metadata = {"url": "{url}"}
1253
+ return cls(pipeline_response, None, response_headers) # type: ignore
1282
1254
 
1283
1255
  @distributed_trace
1284
1256
  def stage_block_from_url( # pylint: disable=inconsistent-return-statements
@@ -1338,10 +1310,6 @@ class BlockBlobOperations:
1338
1310
  :param source_modified_access_conditions: Parameter group. Default value is None.
1339
1311
  :type source_modified_access_conditions:
1340
1312
  ~azure.storage.blob.models.SourceModifiedAccessConditions
1341
- :keyword comp: comp. Default value is "block". Note that overriding this default value may
1342
- result in unsupported behavior.
1343
- :paramtype comp: str
1344
- :keyword callable cls: A custom type or function that will be passed the direct response
1345
1313
  :return: None or the result of cls(response)
1346
1314
  :rtype: None
1347
1315
  :raises ~azure.core.exceptions.HttpResponseError:
@@ -1383,7 +1351,7 @@ class BlockBlobOperations:
1383
1351
  _source_if_none_match = source_modified_access_conditions.source_if_none_match
1384
1352
  _source_if_unmodified_since = source_modified_access_conditions.source_if_unmodified_since
1385
1353
 
1386
- request = build_stage_block_from_url_request(
1354
+ _request = build_stage_block_from_url_request(
1387
1355
  url=self._config.url,
1388
1356
  block_id=block_id,
1389
1357
  content_length=content_length,
@@ -1405,16 +1373,15 @@ class BlockBlobOperations:
1405
1373
  copy_source_authorization=copy_source_authorization,
1406
1374
  comp=comp,
1407
1375
  version=self._config.version,
1408
- template_url=self.stage_block_from_url.metadata["url"],
1409
1376
  headers=_headers,
1410
1377
  params=_params,
1411
1378
  )
1412
- request = _convert_request(request)
1413
- request.url = self._client.format_url(request.url)
1379
+ _request = _convert_request(_request)
1380
+ _request.url = self._client.format_url(_request.url)
1414
1381
 
1415
1382
  _stream = False
1416
1383
  pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
1417
- request, stream=_stream, **kwargs
1384
+ _request, stream=_stream, **kwargs
1418
1385
  )
1419
1386
 
1420
1387
  response = pipeline_response.http_response
@@ -1446,9 +1413,7 @@ class BlockBlobOperations:
1446
1413
  )
1447
1414
 
1448
1415
  if cls:
1449
- return cls(pipeline_response, None, response_headers)
1450
-
1451
- stage_block_from_url.metadata = {"url": "{url}"}
1416
+ return cls(pipeline_response, None, response_headers) # type: ignore
1452
1417
 
1453
1418
  @distributed_trace
1454
1419
  def commit_block_list( # pylint: disable=inconsistent-return-statements
@@ -1529,10 +1494,6 @@ class BlockBlobOperations:
1529
1494
  :type cpk_scope_info: ~azure.storage.blob.models.CpkScopeInfo
1530
1495
  :param modified_access_conditions: Parameter group. Default value is None.
1531
1496
  :type modified_access_conditions: ~azure.storage.blob.models.ModifiedAccessConditions
1532
- :keyword comp: comp. Default value is "blocklist". Note that overriding this default value may
1533
- result in unsupported behavior.
1534
- :paramtype comp: str
1535
- :keyword callable cls: A custom type or function that will be passed the direct response
1536
1497
  :return: None or the result of cls(response)
1537
1498
  :rtype: None
1538
1499
  :raises ~azure.core.exceptions.HttpResponseError:
@@ -1591,7 +1552,7 @@ class BlockBlobOperations:
1591
1552
  _if_unmodified_since = modified_access_conditions.if_unmodified_since
1592
1553
  _content = self._serialize.body(blocks, "BlockLookupList", is_xml=True)
1593
1554
 
1594
- request = build_commit_block_list_request(
1555
+ _request = build_commit_block_list_request(
1595
1556
  url=self._config.url,
1596
1557
  timeout=timeout,
1597
1558
  blob_cache_control=_blob_cache_control,
@@ -1623,16 +1584,15 @@ class BlockBlobOperations:
1623
1584
  content_type=content_type,
1624
1585
  version=self._config.version,
1625
1586
  content=_content,
1626
- template_url=self.commit_block_list.metadata["url"],
1627
1587
  headers=_headers,
1628
1588
  params=_params,
1629
1589
  )
1630
- request = _convert_request(request)
1631
- request.url = self._client.format_url(request.url)
1590
+ _request = _convert_request(_request)
1591
+ _request.url = self._client.format_url(_request.url)
1632
1592
 
1633
1593
  _stream = False
1634
1594
  pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
1635
- request, stream=_stream, **kwargs
1595
+ _request, stream=_stream, **kwargs
1636
1596
  )
1637
1597
 
1638
1598
  response = pipeline_response.http_response
@@ -1667,9 +1627,7 @@ class BlockBlobOperations:
1667
1627
  )
1668
1628
 
1669
1629
  if cls:
1670
- return cls(pipeline_response, None, response_headers)
1671
-
1672
- commit_block_list.metadata = {"url": "{url}"}
1630
+ return cls(pipeline_response, None, response_headers) # type: ignore
1673
1631
 
1674
1632
  @distributed_trace
1675
1633
  def get_block_list(
@@ -1708,10 +1666,6 @@ class BlockBlobOperations:
1708
1666
  :type lease_access_conditions: ~azure.storage.blob.models.LeaseAccessConditions
1709
1667
  :param modified_access_conditions: Parameter group. Default value is None.
1710
1668
  :type modified_access_conditions: ~azure.storage.blob.models.ModifiedAccessConditions
1711
- :keyword comp: comp. Default value is "blocklist". Note that overriding this default value may
1712
- result in unsupported behavior.
1713
- :paramtype comp: str
1714
- :keyword callable cls: A custom type or function that will be passed the direct response
1715
1669
  :return: BlockList or the result of cls(response)
1716
1670
  :rtype: ~azure.storage.blob.models.BlockList
1717
1671
  :raises ~azure.core.exceptions.HttpResponseError:
@@ -1737,7 +1691,7 @@ class BlockBlobOperations:
1737
1691
  if modified_access_conditions is not None:
1738
1692
  _if_tags = modified_access_conditions.if_tags
1739
1693
 
1740
- request = build_get_block_list_request(
1694
+ _request = build_get_block_list_request(
1741
1695
  url=self._config.url,
1742
1696
  snapshot=snapshot,
1743
1697
  list_type=list_type,
@@ -1747,16 +1701,15 @@ class BlockBlobOperations:
1747
1701
  request_id_parameter=request_id_parameter,
1748
1702
  comp=comp,
1749
1703
  version=self._config.version,
1750
- template_url=self.get_block_list.metadata["url"],
1751
1704
  headers=_headers,
1752
1705
  params=_params,
1753
1706
  )
1754
- request = _convert_request(request)
1755
- request.url = self._client.format_url(request.url)
1707
+ _request = _convert_request(_request)
1708
+ _request.url = self._client.format_url(_request.url)
1756
1709
 
1757
1710
  _stream = False
1758
1711
  pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
1759
- request, stream=_stream, **kwargs
1712
+ _request, stream=_stream, **kwargs
1760
1713
  )
1761
1714
 
1762
1715
  response = pipeline_response.http_response
@@ -1783,8 +1736,6 @@ class BlockBlobOperations:
1783
1736
  deserialized = self._deserialize("BlockList", pipeline_response)
1784
1737
 
1785
1738
  if cls:
1786
- return cls(pipeline_response, deserialized, response_headers)
1787
-
1788
- return deserialized
1739
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
1789
1740
 
1790
- get_block_list.metadata = {"url": "{url}"}
1741
+ return deserialized # type: ignore