From f7e196ac2dc2eba5c18f741f23b00418f1ff2cd3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?McCoy=20Pati=C3=B1o?= Date: Fri, 19 Aug 2022 18:01:23 -0700 Subject: [PATCH 1/5] Explicit TokenCredentials where necessary --- .../azure-identity/azure/identity/_credentials/azure_cli.py | 4 ++-- .../azure/identity/_credentials/azure_powershell.py | 4 ++-- .../azure-identity/azure/identity/_credentials/chained.py | 5 +++-- .../azure/identity/_credentials/environment.py | 3 ++- .../azure/identity/_credentials/managed_identity.py | 6 ++++-- .../azure/identity/_credentials/shared_cache.py | 5 +++-- .../azure-identity/azure/identity/_credentials/silent.py | 4 ++-- .../azure/identity/_internal/get_token_mixin.py | 4 +++- .../azure/identity/aio/_credentials/azure_cli.py | 4 +++- .../azure/identity/aio/_credentials/azure_powershell.py | 4 +++- .../azure/identity/aio/_credentials/chained.py | 4 ++-- .../azure/identity/aio/_credentials/environment.py | 5 +++-- .../azure/identity/aio/_credentials/managed_identity.py | 5 +++-- .../azure/identity/aio/_internal/get_token_mixin.py | 4 +++- 14 files changed, 38 insertions(+), 23 deletions(-) diff --git a/sdk/identity/azure-identity/azure/identity/_credentials/azure_cli.py b/sdk/identity/azure-identity/azure/identity/_credentials/azure_cli.py index 8b5eca9f591f..c8d3510f3efc 100644 --- a/sdk/identity/azure-identity/azure/identity/_credentials/azure_cli.py +++ b/sdk/identity/azure-identity/azure/identity/_credentials/azure_cli.py @@ -14,7 +14,7 @@ import six -from azure.core.credentials import AccessToken +from azure.core.credentials import AccessToken, TokenCredential from azure.core.exceptions import ClientAuthenticationError from .. import CredentialUnavailableError @@ -31,7 +31,7 @@ NOT_LOGGED_IN = "Please run 'az login' to set up an account" -class AzureCliCredential(object): +class AzureCliCredential(TokenCredential): """Authenticates by requesting a token from the Azure CLI. This requires previously logging in to Azure via "az login", and will use the CLI's currently logged in identity. diff --git a/sdk/identity/azure-identity/azure/identity/_credentials/azure_powershell.py b/sdk/identity/azure-identity/azure/identity/_credentials/azure_powershell.py index 78c34b81d76e..6790ac9c6e32 100644 --- a/sdk/identity/azure-identity/azure/identity/_credentials/azure_powershell.py +++ b/sdk/identity/azure-identity/azure/identity/_credentials/azure_powershell.py @@ -11,7 +11,7 @@ import six -from azure.core.credentials import AccessToken +from azure.core.credentials import AccessToken, TokenCredential from azure.core.exceptions import ClientAuthenticationError from .azure_cli import get_safe_working_dir @@ -47,7 +47,7 @@ """ -class AzurePowerShellCredential(object): +class AzurePowerShellCredential(TokenCredential): """Authenticates by requesting a token from Azure PowerShell. This requires previously logging in to Azure via "Connect-AzAccount", and will use the currently logged in identity. diff --git a/sdk/identity/azure-identity/azure/identity/_credentials/chained.py b/sdk/identity/azure-identity/azure/identity/_credentials/chained.py index 6002b87d82f5..a704e45450b1 100644 --- a/sdk/identity/azure-identity/azure/identity/_credentials/chained.py +++ b/sdk/identity/azure-identity/azure/identity/_credentials/chained.py @@ -4,6 +4,7 @@ # ------------------------------------ import logging +from azure.core.credentials import TokenCredential from azure.core.exceptions import ClientAuthenticationError from .. import CredentialUnavailableError @@ -17,7 +18,7 @@ if TYPE_CHECKING: # pylint:disable=unused-import,ungrouped-imports from typing import Any, Optional - from azure.core.credentials import AccessToken, TokenCredential + from azure.core.credentials import AccessToken _LOGGER = logging.getLogger(__name__) @@ -35,7 +36,7 @@ def _get_error_message(history): ) -class ChainedTokenCredential(object): +class ChainedTokenCredential(TokenCredential): """A sequence of credentials that is itself a credential. Its :func:`get_token` method calls ``get_token`` on each credential in the sequence, in order, returning the first diff --git a/sdk/identity/azure-identity/azure/identity/_credentials/environment.py b/sdk/identity/azure-identity/azure/identity/_credentials/environment.py index 626e812350c3..cd73d9d9d5cd 100644 --- a/sdk/identity/azure-identity/azure/identity/_credentials/environment.py +++ b/sdk/identity/azure-identity/azure/identity/_credentials/environment.py @@ -5,6 +5,7 @@ import logging import os +from azure.core.credentials import TokenCredential from .. import CredentialUnavailableError from .._constants import EnvironmentVariables @@ -28,7 +29,7 @@ _LOGGER = logging.getLogger(__name__) -class EnvironmentCredential(object): +class EnvironmentCredential(TokenCredential): """A credential configured by environment variables. This credential is capable of authenticating as a service principal using a client secret or a certificate, or as diff --git a/sdk/identity/azure-identity/azure/identity/_credentials/managed_identity.py b/sdk/identity/azure-identity/azure/identity/_credentials/managed_identity.py index cfd6db568d10..82545384e901 100644 --- a/sdk/identity/azure-identity/azure/identity/_credentials/managed_identity.py +++ b/sdk/identity/azure-identity/azure/identity/_credentials/managed_identity.py @@ -5,6 +5,8 @@ import logging import os +from azure.core.credentials import TokenCredential + from .. import CredentialUnavailableError from .._constants import EnvironmentVariables from .._internal.decorators import log_get_token @@ -17,12 +19,12 @@ if TYPE_CHECKING: # pylint:disable=unused-import from typing import Any, Optional - from azure.core.credentials import AccessToken, TokenCredential + from azure.core.credentials import AccessToken _LOGGER = logging.getLogger(__name__) -class ManagedIdentityCredential(object): +class ManagedIdentityCredential(TokenCredential): """Authenticates with an Azure managed identity in any hosting environment which supports managed identities. This credential defaults to using a system-assigned identity. To configure a user-assigned identity, use one of diff --git a/sdk/identity/azure-identity/azure/identity/_credentials/shared_cache.py b/sdk/identity/azure-identity/azure/identity/_credentials/shared_cache.py index 3cef36e80507..07f1a7fd756b 100644 --- a/sdk/identity/azure-identity/azure/identity/_credentials/shared_cache.py +++ b/sdk/identity/azure-identity/azure/identity/_credentials/shared_cache.py @@ -4,6 +4,8 @@ # ------------------------------------ from typing import TYPE_CHECKING +from azure.core.credentials import TokenCredential + from .silent import SilentAuthenticationCredential from .. import CredentialUnavailableError from .._constants import DEVELOPER_SIGN_ON_CLIENT_ID @@ -14,11 +16,10 @@ if TYPE_CHECKING: # pylint:disable=unused-import,ungrouped-imports from typing import Any, Optional - from azure.core.credentials import TokenCredential from .._internal import AadClientBase -class SharedTokenCacheCredential(object): +class SharedTokenCacheCredential(TokenCredential): """Authenticates using tokens in the local cache shared between Microsoft applications. :param str username: Username (typically an email address) of the user to authenticate as. This is used when the diff --git a/sdk/identity/azure-identity/azure/identity/_credentials/silent.py b/sdk/identity/azure-identity/azure/identity/_credentials/silent.py index 08e0611fa5e4..5e84b9fac234 100644 --- a/sdk/identity/azure-identity/azure/identity/_credentials/silent.py +++ b/sdk/identity/azure-identity/azure/identity/_credentials/silent.py @@ -9,7 +9,7 @@ from msal import PublicClientApplication -from azure.core.credentials import AccessToken +from azure.core.credentials import AccessToken, TokenCredential from azure.core.exceptions import ClientAuthenticationError from .. import CredentialUnavailableError @@ -25,7 +25,7 @@ from .. import AuthenticationRecord -class SilentAuthenticationCredential(object): +class SilentAuthenticationCredential(TokenCredential): """Internal class for authenticating from the default shared cache given an AuthenticationRecord""" def __init__(self, authentication_record, **kwargs): diff --git a/sdk/identity/azure-identity/azure/identity/_internal/get_token_mixin.py b/sdk/identity/azure-identity/azure/identity/_internal/get_token_mixin.py index 29f30bb1fb8a..67c4c8f9caf6 100644 --- a/sdk/identity/azure-identity/azure/identity/_internal/get_token_mixin.py +++ b/sdk/identity/azure-identity/azure/identity/_internal/get_token_mixin.py @@ -7,6 +7,8 @@ import time from typing import TYPE_CHECKING +from azure.core.credentials import TokenCredential + from . import within_credential_chain from .._constants import DEFAULT_REFRESH_OFFSET, DEFAULT_TOKEN_REFRESH_RETRY_DELAY @@ -23,7 +25,7 @@ _LOGGER = logging.getLogger(__name__) -class GetTokenMixin(ABC): +class GetTokenMixin(ABC, TokenCredential): def __init__(self, *args, **kwargs): # type: (*Any, **Any) -> None self._last_request_time = 0 diff --git a/sdk/identity/azure-identity/azure/identity/aio/_credentials/azure_cli.py b/sdk/identity/azure-identity/azure/identity/aio/_credentials/azure_cli.py index f123a1efced8..3becd71932b5 100644 --- a/sdk/identity/azure-identity/azure/identity/aio/_credentials/azure_cli.py +++ b/sdk/identity/azure-identity/azure/identity/aio/_credentials/azure_cli.py @@ -7,7 +7,9 @@ import os from typing import TYPE_CHECKING +from azure.core.credentials_async import AsyncTokenCredential from azure.core.exceptions import ClientAuthenticationError + from .._internal import AsyncContextManager from .._internal.decorators import log_get_token_async from ... import CredentialUnavailableError @@ -27,7 +29,7 @@ from azure.core.credentials import AccessToken -class AzureCliCredential(AsyncContextManager): +class AzureCliCredential(AsyncContextManager, AsyncTokenCredential): """Authenticates by requesting a token from the Azure CLI. This requires previously logging in to Azure via "az login", and will use the CLI's currently logged in identity. diff --git a/sdk/identity/azure-identity/azure/identity/aio/_credentials/azure_powershell.py b/sdk/identity/azure-identity/azure/identity/aio/_credentials/azure_powershell.py index 0881dd4e2b99..0efad2072004 100644 --- a/sdk/identity/azure-identity/azure/identity/aio/_credentials/azure_powershell.py +++ b/sdk/identity/azure-identity/azure/identity/aio/_credentials/azure_powershell.py @@ -6,6 +6,8 @@ import sys from typing import cast, TYPE_CHECKING +from azure.core.credentials_async import AsyncTokenCredential + from .._internal import AsyncContextManager from .._internal.decorators import log_get_token_async from ... import CredentialUnavailableError @@ -24,7 +26,7 @@ from azure.core.credentials import AccessToken -class AzurePowerShellCredential(AsyncContextManager): +class AzurePowerShellCredential(AsyncContextManager, AsyncTokenCredential): """Authenticates by requesting a token from Azure PowerShell. This requires previously logging in to Azure via "Connect-AzAccount", and will use the currently logged in identity. diff --git a/sdk/identity/azure-identity/azure/identity/aio/_credentials/chained.py b/sdk/identity/azure-identity/azure/identity/aio/_credentials/chained.py index c0a6a9ba5b89..7583ed700528 100644 --- a/sdk/identity/azure-identity/azure/identity/aio/_credentials/chained.py +++ b/sdk/identity/azure-identity/azure/identity/aio/_credentials/chained.py @@ -6,6 +6,7 @@ import logging from typing import TYPE_CHECKING +from azure.core.credentials_async import AsyncTokenCredential from azure.core.exceptions import ClientAuthenticationError from .._internal import AsyncContextManager from ... import CredentialUnavailableError @@ -15,12 +16,11 @@ if TYPE_CHECKING: from typing import Any, Optional from azure.core.credentials import AccessToken - from azure.core.credentials_async import AsyncTokenCredential _LOGGER = logging.getLogger(__name__) -class ChainedTokenCredential(AsyncContextManager): +class ChainedTokenCredential(AsyncContextManager, AsyncTokenCredential): """A sequence of credentials that is itself a credential. Its :func:`get_token` method calls ``get_token`` on each credential in the sequence, in order, returning the first diff --git a/sdk/identity/azure-identity/azure/identity/aio/_credentials/environment.py b/sdk/identity/azure-identity/azure/identity/aio/_credentials/environment.py index 5f5abb396346..929372ba6f0b 100644 --- a/sdk/identity/azure-identity/azure/identity/aio/_credentials/environment.py +++ b/sdk/identity/azure-identity/azure/identity/aio/_credentials/environment.py @@ -6,8 +6,9 @@ import os from typing import TYPE_CHECKING -from .._internal.decorators import log_get_token_async +from azure.core.credentials_async import AsyncTokenCredential +from .._internal.decorators import log_get_token_async from ... import CredentialUnavailableError from ..._constants import EnvironmentVariables from .._internal import AsyncContextManager @@ -21,7 +22,7 @@ _LOGGER = logging.getLogger(__name__) -class EnvironmentCredential(AsyncContextManager): +class EnvironmentCredential(AsyncContextManager, AsyncTokenCredential): """A credential configured by environment variables. This credential is capable of authenticating as a service principal using a client secret or a certificate, or as diff --git a/sdk/identity/azure-identity/azure/identity/aio/_credentials/managed_identity.py b/sdk/identity/azure-identity/azure/identity/aio/_credentials/managed_identity.py index 18c1b7a9d9c5..35c25aef74ed 100644 --- a/sdk/identity/azure-identity/azure/identity/aio/_credentials/managed_identity.py +++ b/sdk/identity/azure-identity/azure/identity/aio/_credentials/managed_identity.py @@ -6,6 +6,8 @@ import os from typing import TYPE_CHECKING +from azure.core.credentials_async import AsyncTokenCredential + from .._internal import AsyncContextManager from .._internal.decorators import log_get_token_async from ... import CredentialUnavailableError @@ -14,12 +16,11 @@ if TYPE_CHECKING: from typing import Any, Optional from azure.core.credentials import AccessToken - from azure.core.credentials_async import AsyncTokenCredential _LOGGER = logging.getLogger(__name__) -class ManagedIdentityCredential(AsyncContextManager): +class ManagedIdentityCredential(AsyncContextManager, AsyncTokenCredential): """Authenticates with an Azure managed identity in any hosting environment which supports managed identities. This credential defaults to using a system-assigned identity. To configure a user-assigned identity, use one of diff --git a/sdk/identity/azure-identity/azure/identity/aio/_internal/get_token_mixin.py b/sdk/identity/azure-identity/azure/identity/aio/_internal/get_token_mixin.py index f41db52d4132..5d2b47ee49e7 100644 --- a/sdk/identity/azure-identity/azure/identity/aio/_internal/get_token_mixin.py +++ b/sdk/identity/azure-identity/azure/identity/aio/_internal/get_token_mixin.py @@ -7,6 +7,8 @@ import time from typing import TYPE_CHECKING +from azure.core.credentials_async import AsyncTokenCredential + from ..._constants import DEFAULT_REFRESH_OFFSET, DEFAULT_TOKEN_REFRESH_RETRY_DELAY from ..._internal import within_credential_chain @@ -18,7 +20,7 @@ _LOGGER = logging.getLogger(__name__) -class GetTokenMixin(abc.ABC): +class GetTokenMixin(abc.ABC, AsyncTokenCredential): def __init__(self, *args: "Any", **kwargs: "Any") -> None: self._last_request_time = 0 From 2d73a74a5e167b53b6a466be371ae9ed9db30a3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?McCoy=20Pati=C3=B1o?= Date: Wed, 31 Aug 2022 12:26:44 -0700 Subject: [PATCH 2/5] Ignore protocol init warnings --- .../azure-identity/azure/identity/_credentials/azure_cli.py | 4 +--- .../azure-identity/azure/identity/_credentials/chained.py | 2 +- .../azure-identity/azure/identity/_credentials/environment.py | 2 +- .../azure/identity/_credentials/managed_identity.py | 2 +- .../azure/identity/_credentials/shared_cache.py | 2 +- .../azure-identity/azure/identity/_credentials/silent.py | 2 +- .../azure/identity/aio/_credentials/azure_cli.py | 2 +- .../azure-identity/azure/identity/aio/_credentials/chained.py | 2 +- .../azure/identity/aio/_credentials/environment.py | 2 +- .../azure/identity/aio/_credentials/managed_identity.py | 2 +- 10 files changed, 10 insertions(+), 12 deletions(-) diff --git a/sdk/identity/azure-identity/azure/identity/_credentials/azure_cli.py b/sdk/identity/azure-identity/azure/identity/_credentials/azure_cli.py index c8d3510f3efc..e81180a4c217 100644 --- a/sdk/identity/azure-identity/azure/identity/_credentials/azure_cli.py +++ b/sdk/identity/azure-identity/azure/identity/_credentials/azure_cli.py @@ -38,9 +38,7 @@ class AzureCliCredential(TokenCredential): :keyword str tenant_id: optional tenant to include in the token request. """ - def __init__(self, *, tenant_id: str = ""): - object.__init__(self) - + def __init__(self, *, tenant_id: str = ""): # pylint:disable=super-init-not-called self.tenant_id = tenant_id def __enter__(self): diff --git a/sdk/identity/azure-identity/azure/identity/_credentials/chained.py b/sdk/identity/azure-identity/azure/identity/_credentials/chained.py index a704e45450b1..277d09297181 100644 --- a/sdk/identity/azure-identity/azure/identity/_credentials/chained.py +++ b/sdk/identity/azure-identity/azure/identity/_credentials/chained.py @@ -46,7 +46,7 @@ class ChainedTokenCredential(TokenCredential): :type credentials: :class:`azure.core.credentials.TokenCredential` """ - def __init__(self, *credentials): + def __init__(self, *credentials): # pylint:disable=super-init-not-called # type: (*TokenCredential) -> None if not credentials: raise ValueError("at least one credential is required") diff --git a/sdk/identity/azure-identity/azure/identity/_credentials/environment.py b/sdk/identity/azure-identity/azure/identity/_credentials/environment.py index cd73d9d9d5cd..26e4a8c1bdbf 100644 --- a/sdk/identity/azure-identity/azure/identity/_credentials/environment.py +++ b/sdk/identity/azure-identity/azure/identity/_credentials/environment.py @@ -64,7 +64,7 @@ class EnvironmentCredential(TokenCredential): when no value is given. """ - def __init__(self, **kwargs): + def __init__(self, **kwargs): # pylint:disable=super-init-not-called # type: (Mapping[str, Any]) -> None self._credential = None # type: Optional[EnvironmentCredentialTypes] diff --git a/sdk/identity/azure-identity/azure/identity/_credentials/managed_identity.py b/sdk/identity/azure-identity/azure/identity/_credentials/managed_identity.py index 82545384e901..60bc0cc18bd8 100644 --- a/sdk/identity/azure-identity/azure/identity/_credentials/managed_identity.py +++ b/sdk/identity/azure-identity/azure/identity/_credentials/managed_identity.py @@ -40,7 +40,7 @@ class ManagedIdentityCredential(TokenCredential): :paramtype identity_config: Mapping[str, str] """ - def __init__(self, **kwargs): + def __init__(self, **kwargs): # pylint:disable=super-init-not-called # type: (**Any) -> None self._credential = None # type: Optional[TokenCredential] if os.environ.get(EnvironmentVariables.IDENTITY_ENDPOINT): diff --git a/sdk/identity/azure-identity/azure/identity/_credentials/shared_cache.py b/sdk/identity/azure-identity/azure/identity/_credentials/shared_cache.py index 07f1a7fd756b..b104c8e71b2e 100644 --- a/sdk/identity/azure-identity/azure/identity/_credentials/shared_cache.py +++ b/sdk/identity/azure-identity/azure/identity/_credentials/shared_cache.py @@ -37,7 +37,7 @@ class SharedTokenCacheCredential(TokenCredential): :paramtype cache_persistence_options: ~azure.identity.TokenCachePersistenceOptions """ - def __init__(self, username=None, **kwargs): + def __init__(self, username=None, **kwargs): # pylint:disable=super-init-not-called # type: (Optional[str], **Any) -> None if "authentication_record" in kwargs: diff --git a/sdk/identity/azure-identity/azure/identity/_credentials/silent.py b/sdk/identity/azure-identity/azure/identity/_credentials/silent.py index 5e84b9fac234..e8fa7c59bed3 100644 --- a/sdk/identity/azure-identity/azure/identity/_credentials/silent.py +++ b/sdk/identity/azure-identity/azure/identity/_credentials/silent.py @@ -28,7 +28,7 @@ class SilentAuthenticationCredential(TokenCredential): """Internal class for authenticating from the default shared cache given an AuthenticationRecord""" - def __init__(self, authentication_record, **kwargs): + def __init__(self, authentication_record, **kwargs): # pylint:disable=super-init-not-called # type: (AuthenticationRecord, **Any) -> None self._auth_record = authentication_record diff --git a/sdk/identity/azure-identity/azure/identity/aio/_credentials/azure_cli.py b/sdk/identity/azure-identity/azure/identity/aio/_credentials/azure_cli.py index 3becd71932b5..132fcafa244e 100644 --- a/sdk/identity/azure-identity/azure/identity/aio/_credentials/azure_cli.py +++ b/sdk/identity/azure-identity/azure/identity/aio/_credentials/azure_cli.py @@ -36,7 +36,7 @@ class AzureCliCredential(AsyncContextManager, AsyncTokenCredential): :keyword str tenant_id: optional tenant to include in the token request. """ - def __init__(self, *, tenant_id: str = ""): + def __init__(self, *, tenant_id: str = ""): # pylint:disable=super-init-not-called AsyncContextManager.__init__(self) self.tenant_id = tenant_id diff --git a/sdk/identity/azure-identity/azure/identity/aio/_credentials/chained.py b/sdk/identity/azure-identity/azure/identity/aio/_credentials/chained.py index 7583ed700528..d6bbec20d418 100644 --- a/sdk/identity/azure-identity/azure/identity/aio/_credentials/chained.py +++ b/sdk/identity/azure-identity/azure/identity/aio/_credentials/chained.py @@ -30,7 +30,7 @@ class ChainedTokenCredential(AsyncContextManager, AsyncTokenCredential): :type credentials: :class:`azure.core.credentials.AsyncTokenCredential` """ - def __init__(self, *credentials: "AsyncTokenCredential") -> None: + def __init__(self, *credentials: "AsyncTokenCredential") -> None: # pylint:disable=super-init-not-called if not credentials: raise ValueError("at least one credential is required") diff --git a/sdk/identity/azure-identity/azure/identity/aio/_credentials/environment.py b/sdk/identity/azure-identity/azure/identity/aio/_credentials/environment.py index 929372ba6f0b..fba150b1f207 100644 --- a/sdk/identity/azure-identity/azure/identity/aio/_credentials/environment.py +++ b/sdk/identity/azure-identity/azure/identity/aio/_credentials/environment.py @@ -46,7 +46,7 @@ class EnvironmentCredential(AsyncContextManager, AsyncTokenCredential): when no value is given. """ - def __init__(self, **kwargs: "Any") -> None: + def __init__(self, **kwargs: "Any") -> None: # pylint:disable=super-init-not-called self._credential = None # type: Optional[Union[CertificateCredential, ClientSecretCredential]] if all(os.environ.get(v) is not None for v in EnvironmentVariables.CLIENT_SECRET_VARS): diff --git a/sdk/identity/azure-identity/azure/identity/aio/_credentials/managed_identity.py b/sdk/identity/azure-identity/azure/identity/aio/_credentials/managed_identity.py index 35c25aef74ed..30a41a0bc639 100644 --- a/sdk/identity/azure-identity/azure/identity/aio/_credentials/managed_identity.py +++ b/sdk/identity/azure-identity/azure/identity/aio/_credentials/managed_identity.py @@ -36,7 +36,7 @@ class ManagedIdentityCredential(AsyncContextManager, AsyncTokenCredential): :paramtype identity_config: Mapping[str, str] """ - def __init__(self, **kwargs: "Any") -> None: + def __init__(self, **kwargs: "Any") -> None: # pylint:disable=super-init-not-called self._credential = None # type: Optional[AsyncTokenCredential] if os.environ.get(EnvironmentVariables.IDENTITY_ENDPOINT): From 4fcc80402879bb41116e87d63919ebcf8a8df58f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?McCoy=20Pati=C3=B1o?= Date: Wed, 31 Aug 2022 14:49:05 -0700 Subject: [PATCH 3/5] Remove GetTokenMixin protocol inheritance --- .../azure-identity/azure/identity/_internal/get_token_mixin.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/identity/azure-identity/azure/identity/_internal/get_token_mixin.py b/sdk/identity/azure-identity/azure/identity/_internal/get_token_mixin.py index 67c4c8f9caf6..11a30a59047d 100644 --- a/sdk/identity/azure-identity/azure/identity/_internal/get_token_mixin.py +++ b/sdk/identity/azure-identity/azure/identity/_internal/get_token_mixin.py @@ -25,7 +25,7 @@ _LOGGER = logging.getLogger(__name__) -class GetTokenMixin(ABC, TokenCredential): +class GetTokenMixin(ABC): def __init__(self, *args, **kwargs): # type: (*Any, **Any) -> None self._last_request_time = 0 From a9682a6391453a5d8afac65b5314ba364a8b071a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?McCoy=20Pati=C3=B1o?= Date: Wed, 31 Aug 2022 16:07:29 -0700 Subject: [PATCH 4/5] Also fix async GetTokenMixin/imports --- .../azure/identity/_internal/get_token_mixin.py | 2 -- .../azure/identity/aio/_internal/get_token_mixin.py | 4 +--- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/sdk/identity/azure-identity/azure/identity/_internal/get_token_mixin.py b/sdk/identity/azure-identity/azure/identity/_internal/get_token_mixin.py index 11a30a59047d..29f30bb1fb8a 100644 --- a/sdk/identity/azure-identity/azure/identity/_internal/get_token_mixin.py +++ b/sdk/identity/azure-identity/azure/identity/_internal/get_token_mixin.py @@ -7,8 +7,6 @@ import time from typing import TYPE_CHECKING -from azure.core.credentials import TokenCredential - from . import within_credential_chain from .._constants import DEFAULT_REFRESH_OFFSET, DEFAULT_TOKEN_REFRESH_RETRY_DELAY diff --git a/sdk/identity/azure-identity/azure/identity/aio/_internal/get_token_mixin.py b/sdk/identity/azure-identity/azure/identity/aio/_internal/get_token_mixin.py index 5d2b47ee49e7..f41db52d4132 100644 --- a/sdk/identity/azure-identity/azure/identity/aio/_internal/get_token_mixin.py +++ b/sdk/identity/azure-identity/azure/identity/aio/_internal/get_token_mixin.py @@ -7,8 +7,6 @@ import time from typing import TYPE_CHECKING -from azure.core.credentials_async import AsyncTokenCredential - from ..._constants import DEFAULT_REFRESH_OFFSET, DEFAULT_TOKEN_REFRESH_RETRY_DELAY from ..._internal import within_credential_chain @@ -20,7 +18,7 @@ _LOGGER = logging.getLogger(__name__) -class GetTokenMixin(abc.ABC, AsyncTokenCredential): +class GetTokenMixin(abc.ABC): def __init__(self, *args: "Any", **kwargs: "Any") -> None: self._last_request_time = 0 From d5c53f0ac4b6ca99154c93c8339196549a0033a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?McCoy=20Pati=C3=B1o?= Date: Wed, 31 Aug 2022 21:04:35 -0700 Subject: [PATCH 5/5] Bump minimum core version --- sdk/identity/azure-identity/CHANGELOG.md | 1 + sdk/identity/azure-identity/setup.py | 2 +- shared_requirements.txt | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/sdk/identity/azure-identity/CHANGELOG.md b/sdk/identity/azure-identity/CHANGELOG.md index 2b99f0e3a34c..7508423b82a6 100644 --- a/sdk/identity/azure-identity/CHANGELOG.md +++ b/sdk/identity/azure-identity/CHANGELOG.md @@ -9,6 +9,7 @@ ### Bugs Fixed ### Other Changes +- Upgraded minimum `azure-core` version to 1.23.1 ## 1.11.0b3 (2022-08-09) diff --git a/sdk/identity/azure-identity/setup.py b/sdk/identity/azure-identity/setup.py index 85e1909cd977..972f4469cda2 100644 --- a/sdk/identity/azure-identity/setup.py +++ b/sdk/identity/azure-identity/setup.py @@ -72,7 +72,7 @@ ), python_requires=">=3.7", install_requires=[ - "azure-core<2.0.0,>=1.11.0", + "azure-core<2.0.0,>=1.23.1", "cryptography>=2.5", "msal<2.0.0,>=1.12.0", "msal-extensions<2.0.0,>=0.3.0", diff --git a/shared_requirements.txt b/shared_requirements.txt index 3d93b1e4172f..4b5be7b85bbc 100644 --- a/shared_requirements.txt +++ b/shared_requirements.txt @@ -143,7 +143,7 @@ chardet<5,>=3.0.2 #override azure-digitaltwins-core azure-core<2.0.0,>=1.20.0 #override azure-eventhub azure-core<2.0.0,>=1.14.0 #override azure-eventhub typing-extensions>=4.0.1 -#override azure-identity azure-core<2.0.0,>=1.11.0 +#override azure-identity azure-core<2.0.0,>=1.23.1 #override azure-keyvault-administration azure-core<2.0.0,>=1.24.0 #override azure-keyvault-certificates azure-core<2.0.0,>=1.20.0 #override azure-keyvault-keys azure-core<2.0.0,>=1.24.0