Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
e9affdb
storage queue
l0lawrence Mar 10, 2026
bffece2
basic changes
l0lawrence Mar 10, 2026
c8ce399
filter conftest
l0lawrence Mar 10, 2026
703f7c1
fixing test issues
l0lawrence Mar 11, 2026
550b8a9
missing init
l0lawrence Mar 11, 2026
14b57c5
update response handler to handle stirng
l0lawrence Mar 11, 2026
3208396
userdelegationkey
l0lawrence Mar 11, 2026
61169cb
update gen location
l0lawrence Mar 12, 2026
8687c28
pyproject
l0lawrence Mar 12, 2026
b1381ee
update imports
l0lawrence Mar 12, 2026
52380c1
regen + updates
l0lawrence Mar 18, 2026
ac18061
change conftest
l0lawrence Mar 18, 2026
b1a40be
mypy + blakc
l0lawrence Mar 18, 2026
38e05ae
regen
l0lawrence Mar 18, 2026
7cf6d01
sphinx
l0lawrence Mar 18, 2026
47df4bb
Merge branch 'main' into storagequeue
l0lawrence Mar 19, 2026
1df6198
regen+fixing apistub
l0lawrence Mar 19, 2026
a049612
version file
l0lawrence Mar 19, 2026
6124cf3
q
l0lawrence Mar 19, 2026
ced0162
edit
l0lawrence Mar 19, 2026
21a96ce
pylint fix
l0lawrence Mar 19, 2026
730959c
regen
l0lawrence Mar 23, 2026
5576280
encoding??
l0lawrence Mar 23, 2026
0392876
regen keyinfo as string
l0lawrence Mar 23, 2026
ca32d82
pin azure-core
l0lawrence Mar 23, 2026
7f37a1c
xml.name
l0lawrence Mar 25, 2026
6768026
Merge branch 'main' into storagequeue
l0lawrence Mar 25, 2026
bf4c390
Merge branch 'storagequeue' of https://github.com/l0lawrence/azure-sd…
l0lawrence Mar 25, 2026
6699c41
update
l0lawrence Mar 30, 2026
ba3c0d0
regen
l0lawrence Mar 30, 2026
04a315e
Merge branch 'main' into storagequeue
l0lawrence Mar 30, 2026
9e5f01b
fix pylint
l0lawrence Mar 30, 2026
e753cc3
black
l0lawrence Mar 30, 2026
e785f6a
Merge branch 'main' of https://github.com/Azure/azure-sdk-for-python …
l0lawrence Mar 31, 2026
75c5589
Merge branch 'main' into storagequeue
l0lawrence Apr 1, 2026
a20698a
regen
l0lawrence Apr 6, 2026
23236f7
ai version
l0lawrence Apr 6, 2026
63c6f4f
pyproject updates
l0lawrence Apr 6, 2026
7473c90
fix []
l0lawrence Apr 6, 2026
e00856d
Merge branch 'main' into storagequeue
l0lawrence Apr 13, 2026
9e70eb6
remove
l0lawrence Apr 13, 2026
3541133
regen with new config
l0lawrence Apr 14, 2026
eaa2215
version
l0lawrence Apr 14, 2026
3a18e32
update models patch
l0lawrence Apr 16, 2026
8afa3a5
updating client patches
l0lawrence Apr 16, 2026
9bfdf74
blob shared folder spread
l0lawrence Apr 16, 2026
19e13ba
Fix azure.storage.blob rtype references to azure.storage.queue in que…
l0lawrence Apr 16, 2026
b16013d
model update
l0lawrence Apr 16, 2026
6c52d14
Merge branch 'storagequeue' of https://github.com/l0lawrence/azure-sd…
l0lawrence Apr 16, 2026
238c30f
black
l0lawrence Apr 16, 2026
b8fdfdd
wip changes from running against azure cli
l0lawrence May 1, 2026
5cb24f7
[Storage] Drop cp39 from azure-storage-extensions cibuildwheel matrix
l0lawrence May 22, 2026
048051c
Merge branch 'main' into storagequeue+cp39-drop
l0lawrence May 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions sdk/storage/azure-storage-extensions/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,7 @@
## 0.1.0 (Unreleased)

Initial release.

### Other Changes

- Minimum supported Python version is now 3.10.
2 changes: 1 addition & 1 deletion sdk/storage/azure-storage-extensions/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ suppressed_skip_warnings = ["*"]
requires = ["setuptools", "wheel"]

[tool.cibuildwheel]
build = ["cp39*", "pp310*", "pp311*"]
build = ["cp310*", "pp310*", "pp311*"]
test-requires = "pytest"
test-command = "pytest {project}/tests"
test-skip = "*-macosx_arm64"
Expand Down
3 changes: 1 addition & 2 deletions sdk/storage/azure-storage-extensions/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,6 @@ def get_tag(self):
'Programming Language :: Python',
"Programming Language :: Python :: 3 :: Only",
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.9',
'Programming Language :: Python :: 3.10',
'Programming Language :: Python :: 3.11',
'Programming Language :: Python :: 3.12',
Expand All @@ -50,7 +49,7 @@ def get_tag(self):
'License :: OSI Approved :: MIT License',
],
zip_safe=False,
python_requires=">=3.9",
python_requires=">=3.10",
ext_package='azure.storage.extensions',
ext_modules=[
Extension(
Expand Down
6 changes: 3 additions & 3 deletions sdk/storage/azure-storage-queue/MANIFEST.in
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
include *.md
include azure/__init__.py
include azure/storage/__init__.py
include LICENSE
include azure/storage/queue/py.typed
recursive-include tests *.py
recursive-include samples *.py *.md
include azure/storage/queue/py.typed
include azure/__init__.py
include azure/storage/__init__.py
6 changes: 6 additions & 0 deletions sdk/storage/azure-storage-queue/_metadata.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"apiVersion": "2026-04-06",
"apiVersions": {
"Storage.Queues": "2026-04-06"
}
}
64 changes: 64 additions & 0 deletions sdk/storage/azure-storage-queue/apiview-properties.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
{
"CrossLanguagePackageId": "Storage.Queues",
"CrossLanguageDefinitionId": {
"azure.storage.queue.models.AccessPolicy": "Storage.Queues.AccessPolicy",
"azure.storage.queue.models.CorsRule": "Storage.Queues.CorsRule",
"azure.storage.queue.models.Error": "Storage.Queues.Error",
"azure.storage.queue.models.GeoReplication": "Storage.Queues.GeoReplication",
"azure.storage.queue.models.KeyInfo": "Storage.Queues.KeyInfo",
"azure.storage.queue.models.ListOfSentMessage": "Storage.Queues.ListOfSentMessage",
"azure.storage.queue.models.ListQueuesResponse": "Storage.Queues.ListQueuesResponse",
"azure.storage.queue.models.Logging": "Storage.Queues.Logging",
"azure.storage.queue.models.Metrics": "Storage.Queues.Metrics",
"azure.storage.queue.models.PeekedMessage": "Storage.Queues.PeekedMessage",
"azure.storage.queue.models.PeekedMessages": "Storage.Queues.PeekedMessages",
"azure.storage.queue.models.QueueItem": "Storage.Queues.QueueItem",
"azure.storage.queue.models.QueueMessage": "Storage.Queues.QueueMessage",
"azure.storage.queue.models.QueueServiceProperties": "Storage.Queues.QueueServiceProperties",
"azure.storage.queue.models.QueueServiceStats": "Storage.Queues.QueueServiceStats",
"azure.storage.queue.models.ReceivedMessage": "Storage.Queues.ReceivedMessage",
"azure.storage.queue.models.ReceivedMessages": "Storage.Queues.ReceivedMessages",
"azure.storage.queue.models.RetentionPolicy": "Storage.Queues.RetentionPolicy",
"azure.storage.queue.models.SentMessage": "Storage.Queues.SentMessage",
"azure.storage.queue.models.SignedIdentifier": "Storage.Queues.SignedIdentifier",
"azure.storage.queue.models.SignedIdentifiers": "Storage.Queues.SignedIdentifiers",
"azure.storage.queue.models.UserDelegationKey": "Storage.Queues.UserDelegationKey",
"azure.storage.queue.models.StorageErrorCode": "Storage.Queues.StorageErrorCode",
"azure.storage.queue.models.GeoReplicationStatus": "Storage.Queues.GeoReplicationStatus",
"azure.storage.queue.models.ListQueuesIncludeType": "Storage.Queues.ListQueuesIncludeType",
"azure.storage.queue.operations.ServiceOperations.set_properties": "Storage.Queues.Service.setProperties",
"azure.storage.queue.aio.operations.ServiceOperations.set_properties": "Storage.Queues.Service.setProperties",
"azure.storage.queue.operations.ServiceOperations.get_properties": "Storage.Queues.Service.getProperties",
"azure.storage.queue.aio.operations.ServiceOperations.get_properties": "Storage.Queues.Service.getProperties",
"azure.storage.queue.operations.ServiceOperations.get_statistics": "Storage.Queues.Service.getStatistics",
"azure.storage.queue.aio.operations.ServiceOperations.get_statistics": "Storage.Queues.Service.getStatistics",
"azure.storage.queue.operations.ServiceOperations.get_user_delegation_key": "Storage.Queues.Service.getUserDelegationKey",
"azure.storage.queue.aio.operations.ServiceOperations.get_user_delegation_key": "Storage.Queues.Service.getUserDelegationKey",
"azure.storage.queue.operations.ServiceOperations.get_queues": "Storage.Queues.Service.getQueues",
"azure.storage.queue.aio.operations.ServiceOperations.get_queues": "Storage.Queues.Service.getQueues",
"azure.storage.queue.operations.QueueOperations.create": "Storage.Queues.Queue.create",
"azure.storage.queue.aio.operations.QueueOperations.create": "Storage.Queues.Queue.create",
"azure.storage.queue.operations.QueueOperations.get_properties": "Storage.Queues.Queue.getProperties",
"azure.storage.queue.aio.operations.QueueOperations.get_properties": "Storage.Queues.Queue.getProperties",
"azure.storage.queue.operations.QueueOperations.delete": "Storage.Queues.Queue.delete",
"azure.storage.queue.aio.operations.QueueOperations.delete": "Storage.Queues.Queue.delete",
"azure.storage.queue.operations.QueueOperations.set_metadata": "Storage.Queues.Queue.setMetadata",
"azure.storage.queue.aio.operations.QueueOperations.set_metadata": "Storage.Queues.Queue.setMetadata",
"azure.storage.queue.operations.QueueOperations.get_access_policy": "Storage.Queues.Queue.getAccessPolicy",
"azure.storage.queue.aio.operations.QueueOperations.get_access_policy": "Storage.Queues.Queue.getAccessPolicy",
"azure.storage.queue.operations.QueueOperations.set_access_policy": "Storage.Queues.Queue.setAccessPolicy",
"azure.storage.queue.aio.operations.QueueOperations.set_access_policy": "Storage.Queues.Queue.setAccessPolicy",
"azure.storage.queue.operations.QueueOperations.receive_messages": "Storage.Queues.Queue.receiveMessages",
"azure.storage.queue.aio.operations.QueueOperations.receive_messages": "Storage.Queues.Queue.receiveMessages",
"azure.storage.queue.operations.QueueOperations.clear": "Storage.Queues.Queue.clear",
"azure.storage.queue.aio.operations.QueueOperations.clear": "Storage.Queues.Queue.clear",
"azure.storage.queue.operations.QueueOperations.send_message": "Storage.Queues.Queue.sendMessage",
"azure.storage.queue.aio.operations.QueueOperations.send_message": "Storage.Queues.Queue.sendMessage",
"azure.storage.queue.operations.QueueOperations.peek_messages": "Storage.Queues.Queue.peekMessages",
"azure.storage.queue.aio.operations.QueueOperations.peek_messages": "Storage.Queues.Queue.peekMessages",
"azure.storage.queue.operations.QueueOperations.update_message": "Storage.Queues.Queue.updateMessage",
"azure.storage.queue.aio.operations.QueueOperations.update_message": "Storage.Queues.Queue.updateMessage",
"azure.storage.queue.operations.QueueOperations.delete_message": "Storage.Queues.Queue.deleteMessage",
"azure.storage.queue.aio.operations.QueueOperations.delete_message": "Storage.Queues.Queue.deleteMessage"
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for license information.
# Code generated by Microsoft (R) AutoRest Code Generator.
# Code generated by Microsoft (R) Python Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
# pylint: disable=wrong-import-position
Expand All @@ -12,7 +12,10 @@
if TYPE_CHECKING:
from ._patch import * # pylint: disable=unused-wildcard-import

from ._azure_queue_storage import AzureQueueStorage # type: ignore
from ._client import QueuesClient # type: ignore
from ._version import VERSION

__version__ = VERSION

try:
from ._patch import __all__ as _patch_all
Expand All @@ -22,7 +25,7 @@
from ._patch import patch_sdk as _patch_sdk

__all__ = [
"AzureQueueStorage",
"QueuesClient",
]
__all__.extend([p for p in _patch_all if p not in __all__]) # pyright: ignore

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,53 +2,47 @@
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for license information.
# Code generated by Microsoft (R) AutoRest Code Generator.
# Code generated by Microsoft (R) Python Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------

from copy import deepcopy
from typing import Any
from typing import Any, TYPE_CHECKING
from typing_extensions import Self

from azure.core import PipelineClient
from azure.core.pipeline import policies
from azure.core.rest import HttpRequest, HttpResponse

from . import models as _models
from ._configuration import AzureQueueStorageConfiguration
from ._configuration import QueuesClientConfiguration
from ._utils.serialization import Deserializer, Serializer
from .operations import (
MessageIdOperations,
MessagesOperations,
QueueOperations,
ServiceOperations,
)
from .operations import QueueOperations, ServiceOperations

if TYPE_CHECKING:
from azure.core.credentials import TokenCredential

class AzureQueueStorage: # pylint: disable=client-accepts-api-version-keyword
"""AzureQueueStorage.

class QueuesClient: # pylint: disable=client-accepts-api-version-keyword
"""QueuesClient.

:ivar service: ServiceOperations operations
:vartype service: azure.storage.queue.operations.ServiceOperations
:ivar queue: QueueOperations operations
:vartype queue: azure.storage.queue.operations.QueueOperations
:ivar messages: MessagesOperations operations
:vartype messages: azure.storage.queue.operations.MessagesOperations
:ivar message_id: MessageIdOperations operations
:vartype message_id: azure.storage.queue.operations.MessageIdOperations
:param url: The URL of the service account, queue or message that is the target of the desired
operation. Required.
:param url: The host name of the queue storage account, e.g.
accountName.queue.core.windows.net. Required.
:type url: str
:param version: Specifies the version of the operation to use for this request. Required.
:type version: str
:param base_url: Service URL. Required. Default value is "".
:type base_url: str
:param credential: Credential used to authenticate requests to the service. Required.
:type credential: ~azure.core.credentials.TokenCredential
:keyword version: Specifies the version of the operation to use for this request. Known values
are "2026-04-06". Default value is "2026-04-06". Note that overriding this default value may
result in unsupported behavior.
:paramtype version: str
"""

def __init__( # pylint: disable=missing-client-constructor-parameter-credential
self, url: str, version: str, base_url: str = "", **kwargs: Any
) -> None:
self._config = AzureQueueStorageConfiguration(url=url, version=version, **kwargs)
def __init__(self, url: str, credential: "TokenCredential", **kwargs: Any) -> None:
_endpoint = "{url}"
self._config = QueuesClientConfiguration(url=url, credential=credential, **kwargs)

_policies = kwargs.pop("policies", None)
if _policies is None:
Expand All @@ -64,27 +58,24 @@ def __init__( # pylint: disable=missing-client-constructor-parameter-credential
self._config.custom_hook_policy,
self._config.logging_policy,
policies.DistributedTracingPolicy(**kwargs),
(policies.SensitiveHeaderCleanupPolicy(**kwargs) if self._config.redirect_policy else None),
policies.SensitiveHeaderCleanupPolicy(**kwargs) if self._config.redirect_policy else None,
self._config.http_logging_policy,
]
self._client: PipelineClient = PipelineClient(base_url=base_url, policies=_policies, **kwargs)
self._client: PipelineClient = PipelineClient(base_url=_endpoint, policies=_policies, **kwargs)

client_models = {k: v for k, v in _models.__dict__.items() if isinstance(v, type)}
self._serialize = Serializer(client_models)
self._deserialize = Deserializer(client_models)
self._serialize = Serializer()
self._deserialize = Deserializer()
self._serialize.client_side_validation = False
self.service = ServiceOperations(self._client, self._config, self._serialize, self._deserialize)
self.queue = QueueOperations(self._client, self._config, self._serialize, self._deserialize)
self.messages = MessagesOperations(self._client, self._config, self._serialize, self._deserialize)
self.message_id = MessageIdOperations(self._client, self._config, self._serialize, self._deserialize)

def _send_request(self, request: HttpRequest, *, stream: bool = False, **kwargs: Any) -> HttpResponse:
def send_request(self, request: HttpRequest, *, stream: bool = False, **kwargs: Any) -> HttpResponse:
"""Runs the network request through the client's chained policies.

>>> from azure.core.rest import HttpRequest
>>> request = HttpRequest("GET", "https://www.example.org/")
<HttpRequest [GET], url: 'https://www.example.org/'>
>>> response = client._send_request(request)
>>> response = client.send_request(request)
<HttpResponse: 200 OK>

For more information on this code flow, see https://aka.ms/azsdk/dpcodegen/python/send_request
Expand All @@ -97,7 +88,11 @@ def _send_request(self, request: HttpRequest, *, stream: bool = False, **kwargs:
"""

request_copy = deepcopy(request)
request_copy.url = self._client.format_url(request_copy.url)
path_format_arguments = {
"url": self._serialize.url("self._config.url", self._config.url, "str", skip_quote=True),
}

request_copy.url = self._client.format_url(request_copy.url, **path_format_arguments)
return self._client.send_request(request_copy, stream=stream, **kwargs) # type: ignore

def close(self) -> None:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,39 +2,50 @@
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for license information.
# Code generated by Microsoft (R) AutoRest Code Generator.
# Code generated by Microsoft (R) Python Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------

from typing import Any
from typing import Any, TYPE_CHECKING

from azure.core.pipeline import policies

VERSION = "unknown"
from ._version import VERSION

if TYPE_CHECKING:
from azure.core.credentials import TokenCredential

class AzureQueueStorageConfiguration: # pylint: disable=too-many-instance-attributes
"""Configuration for AzureQueueStorage.

class QueuesClientConfiguration: # pylint: disable=too-many-instance-attributes
"""Configuration for QueuesClient.

Note that all parameters used to create this instance are saved as instance
attributes.

:param url: The URL of the service account, queue or message that is the target of the desired
operation. Required.
:param url: The host name of the queue storage account, e.g.
accountName.queue.core.windows.net. Required.
:type url: str
:param version: Specifies the version of the operation to use for this request. Required.
:type version: str
:param credential: Credential used to authenticate requests to the service. Required.
:type credential: ~azure.core.credentials.TokenCredential
:keyword version: Specifies the version of the operation to use for this request. Known values
are "2026-04-06". Default value is "2026-04-06". Note that overriding this default value may
result in unsupported behavior.
:paramtype version: str
"""

def __init__(self, url: str, version: str, **kwargs: Any) -> None:
def __init__(self, url: str, credential: "TokenCredential", **kwargs: Any) -> None:
version: str = kwargs.pop("version", "2026-04-06")

if url is None:
raise ValueError("Parameter 'url' must not be None.")
if version is None:
raise ValueError("Parameter 'version' must not be None.")
if credential is None:
raise ValueError("Parameter 'credential' must not be None.")

self.url = url
self.credential = credential
self.version = version
kwargs.setdefault("sdk_moniker", "azurequeuestorage/{}".format(VERSION))
self.credential_scopes = kwargs.pop("credential_scopes", ["https://storage.azure.com/.default"])
kwargs.setdefault("sdk_moniker", "storage-queue/{}".format(VERSION))
self.polling_interval = kwargs.get("polling_interval", 30)
self._configure(**kwargs)

Expand All @@ -48,3 +59,7 @@ def _configure(self, **kwargs: Any) -> None:
self.redirect_policy = kwargs.get("redirect_policy") or policies.RedirectPolicy(**kwargs)
self.retry_policy = kwargs.get("retry_policy") or policies.RetryPolicy(**kwargs)
self.authentication_policy = kwargs.get("authentication_policy")
if self.credential and not self.authentication_policy:
self.authentication_policy = policies.BearerTokenCredentialPolicy(
self.credential, *self.credential_scopes, **kwargs
)
Loading
Loading