From 3e00cf9ea711cfd891050d1a25afb8d89d1d2d96 Mon Sep 17 00:00:00 2001 From: Wonhyeong Seo Date: Sun, 11 Sep 2022 17:11:24 +0900 Subject: [PATCH 1/5] fix: remove six and update to 3.7 --- .../CHANGELOG.md | 1 + .../keyvault/administration/_backup_client.py | 25 +++++++------------ .../azure/keyvault/administration/_enums.py | 7 ++---- .../administration/_internal/__init__.py | 2 +- .../administration/_internal/client_base.py | 4 +-- .../azure-keyvault-administration/setup.py | 5 ++-- .../tests/_shared/helpers.py | 4 +-- .../tests/_shared/json_attribute_matcher.py | 6 ++--- .../azure/keyvault/certificates/_enums.py | 14 +++++------ .../certificates/_generated_models.py | 11 ++++---- .../certificates/_shared/client_base.py | 4 +-- .../azure-keyvault-certificates/setup.py | 8 +++--- .../tests/_shared/helpers.py | 4 +-- .../tests/_shared/json_attribute_matcher.py | 6 ++--- .../azure/keyvault/keys/_enums.py | 12 ++++----- .../azure/keyvault/keys/_generated_models.py | 14 +++++------ .../keyvault/keys/_shared/client_base.py | 3 +-- .../azure/keyvault/keys/crypto/_client.py | 5 ++-- .../keyvault/keys/crypto/_internal/key.py | 3 +-- .../keys/crypto/_internal/transform.py | 9 +++---- sdk/keyvault/azure-keyvault-keys/setup.py | 1 - .../tests/_shared/helpers.py | 4 +-- .../tests/_shared/json_attribute_matcher.py | 6 ++--- .../tests/test_key_client.py | 3 +-- .../tests/test_keys_async.py | 3 +-- .../keyvault/secrets/_generated_models.py | 5 +--- .../keyvault/secrets/_shared/client_base.py | 4 +-- sdk/keyvault/azure-keyvault-secrets/setup.py | 8 +++--- .../tests/_shared/helpers.py | 4 +-- .../tests/_shared/json_attribute_matcher.py | 6 ++--- 30 files changed, 73 insertions(+), 118 deletions(-) diff --git a/sdk/keyvault/azure-keyvault-administration/CHANGELOG.md b/sdk/keyvault/azure-keyvault-administration/CHANGELOG.md index bbcc646e204e..17b6b2ab92ab 100644 --- a/sdk/keyvault/azure-keyvault-administration/CHANGELOG.md +++ b/sdk/keyvault/azure-keyvault-administration/CHANGELOG.md @@ -11,6 +11,7 @@ ### Other Changes - Updated minimum `azure-core` version to 1.24.0 - Updated minimum `msrest` version to 0.7.1 +- Python 3.6 is no longer supported. Please use Python version 3.7 or later. ## 4.1.1 (2022-08-11) diff --git a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_backup_client.py b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_backup_client.py index 479841c30d49..bef5fd3d955d 100644 --- a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_backup_client.py +++ b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_backup_client.py @@ -7,8 +7,7 @@ import pickle from typing import TYPE_CHECKING -from six import raise_from -from six.moves.urllib_parse import urlparse +from urllib.parse import urlparse from ._models import KeyVaultBackupResult from ._internal import KeyVaultClientBase, parse_folder_url @@ -65,13 +64,10 @@ def begin_backup(self, blob_storage_url, sas_token, **kwargs): try: job_id = _parse_status_url(status_url) except Exception as ex: # pylint: disable=broad-except - raise_from( - ValueError( - "The provided continuation_token is malformed. A valid token can be obtained from the " - + "operation poller's continuation_token() method" - ), - ex, - ) + raise ValueError( + "The provided continuation_token is malformed. A valid token can be obtained from the " + + "operation poller's continuation_token() method" + ) from ex pipeline_response = self._client.full_backup_status( vault_base_url=self._vault_url, job_id=job_id, cls=lambda pipeline_response, _, __: pipeline_response @@ -130,13 +126,10 @@ def begin_restore(self, folder_url, sas_token, **kwargs): try: job_id = _parse_status_url(status_url) except Exception as ex: # pylint: disable=broad-except - raise_from( - ValueError( - "The provided continuation_token is malformed. A valid token can be obtained from the " - + "operation poller's continuation_token() method" - ), - ex, - ) + raise ValueError( + "The provided continuation_token is malformed. A valid token can be obtained from the " + + "operation poller's continuation_token() method" + ) from ex pipeline_response = self._client.restore_status( vault_base_url=self._vault_url, job_id=job_id, cls=lambda pipeline_response, _, __: pipeline_response diff --git a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_enums.py b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_enums.py index 8999a64ed9ec..ce21fb4110ac 100644 --- a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_enums.py +++ b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_enums.py @@ -3,21 +3,18 @@ # Licensed under the MIT License. # ------------------------------------ from enum import Enum -from six import with_metaclass from azure.core import CaseInsensitiveEnumMeta -# pylint:skip-file (avoids crash due to six.with_metaclass https://github.com/PyCQA/astroid/issues/713) - -class KeyVaultRoleScope(with_metaclass(CaseInsensitiveEnumMeta, str, Enum)): +class KeyVaultRoleScope(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Collection of well known role scopes. This list is not exhaustive.""" GLOBAL = "/" #: use this if you want role assignments to apply to everything on the resource KEYS = "/keys" #: use this if you want role assignments to apply to all keys -class KeyVaultDataAction(with_metaclass(CaseInsensitiveEnumMeta, str, Enum)): +class KeyVaultDataAction(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Supported permissions for data actions.""" #: Read HSM key metadata. diff --git a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_internal/__init__.py b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_internal/__init__.py index a0536ae8029e..1b721021afd9 100644 --- a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_internal/__init__.py +++ b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_internal/__init__.py @@ -4,7 +4,7 @@ # ------------------------------------ from collections import namedtuple -from six.moves.urllib_parse import urlparse +from urllib_parse import urlparse from .challenge_auth_policy import ChallengeAuthPolicy from .client_base import KeyVaultClientBase diff --git a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_internal/client_base.py b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_internal/client_base.py index 014ab82c0197..126c3834e8b6 100644 --- a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_internal/client_base.py +++ b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_internal/client_base.py @@ -2,10 +2,8 @@ # Copyright (c) Microsoft Corporation. # Licensed under the MIT License. # ------------------------------------ -# pylint:skip-file (avoids crash due to six.with_metaclass https://github.com/PyCQA/astroid/issues/713) from typing import TYPE_CHECKING from enum import Enum -from six import with_metaclass from azure.core import CaseInsensitiveEnumMeta from azure.core.pipeline.policies import HttpLoggingPolicy @@ -20,7 +18,7 @@ from azure.core.credentials import TokenCredential -class ApiVersion(with_metaclass(CaseInsensitiveEnumMeta, str, Enum)): +class ApiVersion(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Key Vault API versions supported by this package""" #: this is the default version diff --git a/sdk/keyvault/azure-keyvault-administration/setup.py b/sdk/keyvault/azure-keyvault-administration/setup.py index dca01d2dd367..881a407821ee 100644 --- a/sdk/keyvault/azure-keyvault-administration/setup.py +++ b/sdk/keyvault/azure-keyvault-administration/setup.py @@ -48,7 +48,6 @@ "Programming Language :: Python", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", @@ -65,6 +64,6 @@ "azure.keyvault", ] ), - python_requires=">=3.6", - install_requires=["azure-common~=1.1", "azure-core<2.0.0,>=1.24.0", "msrest>=0.7.1", "six>=1.11.0"], + python_requires=">=3.7", + install_requires=["azure-common~=1.1", "azure-core<2.0.0,>=1.24.0", "msrest>=0.7.1"], ) diff --git a/sdk/keyvault/azure-keyvault-administration/tests/_shared/helpers.py b/sdk/keyvault/azure-keyvault-administration/tests/_shared/helpers.py index 8df36215388e..4ba9fca7c32b 100644 --- a/sdk/keyvault/azure-keyvault-administration/tests/_shared/helpers.py +++ b/sdk/keyvault/azure-keyvault-administration/tests/_shared/helpers.py @@ -3,7 +3,7 @@ # Licensed under the MIT License. # ------------------------------------ import json -import six +import urllib try: from unittest import mock @@ -47,7 +47,7 @@ def add_discrepancy(name, expected, actual): if self.url_substring and self.url_substring not in request.url: add_discrepancy("url substring", self.url_substring, request.url) - parsed = six.moves.urllib_parse.urlparse(request.url) + parsed = urllib.parse.urlparse(request.url) if self.authority and parsed.netloc != self.authority: add_discrepancy("authority", self.authority, parsed.netloc) diff --git a/sdk/keyvault/azure-keyvault-administration/tests/_shared/json_attribute_matcher.py b/sdk/keyvault/azure-keyvault-administration/tests/_shared/json_attribute_matcher.py index bf79ad588082..e0514b612188 100644 --- a/sdk/keyvault/azure-keyvault-administration/tests/_shared/json_attribute_matcher.py +++ b/sdk/keyvault/azure-keyvault-administration/tests/_shared/json_attribute_matcher.py @@ -4,8 +4,6 @@ # ------------------------------------ import json -import six - _has_json_body = lambda req: req.body and "json" in req.headers.get("Content-Type", "") @@ -13,6 +11,6 @@ def json_attribute_matcher(r1, r2): """Tests whether two vcr.py requests have JSON content with identical attributes (ignoring values).""" if _has_json_body(r1) and _has_json_body(r2): - c1 = json.loads(six.ensure_str(r1.body)) - c2 = json.loads(six.ensure_str(r2.body)) + c1 = json.loads(str(r1.body)) + c2 = json.loads(str(r2.body)) assert sorted(c1.keys()) == sorted(c2.keys()) diff --git a/sdk/keyvault/azure-keyvault-certificates/azure/keyvault/certificates/_enums.py b/sdk/keyvault/azure-keyvault-certificates/azure/keyvault/certificates/_enums.py index 866fcb15f916..cb123cf986b8 100644 --- a/sdk/keyvault/azure-keyvault-certificates/azure/keyvault/certificates/_enums.py +++ b/sdk/keyvault/azure-keyvault-certificates/azure/keyvault/certificates/_enums.py @@ -2,28 +2,26 @@ # Copyright (c) Microsoft Corporation. # Licensed under the MIT License. # ------------------------------------ -# pylint:skip-file (avoids crash due to six.with_metaclass https://github.com/PyCQA/astroid/issues/713) from enum import Enum -from six import with_metaclass from azure.core import CaseInsensitiveEnumMeta -class CertificatePolicyAction(with_metaclass(CaseInsensitiveEnumMeta, str, Enum)): +class CertificatePolicyAction(str, Enum, metaclass=CaseInsensitiveEnumMeta): """The supported action types for the lifetime of a certificate""" email_contacts = "EmailContacts" auto_renew = "AutoRenew" -class CertificateContentType(with_metaclass(CaseInsensitiveEnumMeta, str, Enum)): +class CertificateContentType(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Content type of the secrets as specified in Certificate Policy""" pkcs12 = "application/x-pkcs12" pem = "application/x-pem-file" -class KeyUsageType(with_metaclass(CaseInsensitiveEnumMeta, str, Enum)): +class KeyUsageType(str, Enum, metaclass=CaseInsensitiveEnumMeta): """The supported types of key usages""" digital_signature = "digitalSignature" @@ -37,7 +35,7 @@ class KeyUsageType(with_metaclass(CaseInsensitiveEnumMeta, str, Enum)): decipher_only = "decipherOnly" -class KeyType(with_metaclass(CaseInsensitiveEnumMeta, str, Enum)): +class KeyType(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Supported key types""" ec = "EC" #: Elliptic Curve @@ -55,7 +53,7 @@ def _missing_(cls, value): raise ValueError(f"{value} is not a valid KeyType") -class KeyCurveName(with_metaclass(CaseInsensitiveEnumMeta, str, Enum)): +class KeyCurveName(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Supported elliptic curves""" p_256 = "P-256" #: The NIST P-256 elliptic curve, AKA SECG curve SECP256R1. @@ -64,7 +62,7 @@ class KeyCurveName(with_metaclass(CaseInsensitiveEnumMeta, str, Enum)): p_256_k = "P-256K" #: The SECG SECP256K1 elliptic curve. -class WellKnownIssuerNames(with_metaclass(CaseInsensitiveEnumMeta, str, Enum)): +class WellKnownIssuerNames(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Collection of well-known issuer names""" self = "Self" #: Use this issuer for a self-signed certificate diff --git a/sdk/keyvault/azure-keyvault-certificates/azure/keyvault/certificates/_generated_models.py b/sdk/keyvault/azure-keyvault-certificates/azure/keyvault/certificates/_generated_models.py index 881743a1baa6..a7450f98e3ff 100644 --- a/sdk/keyvault/azure-keyvault-certificates/azure/keyvault/certificates/_generated_models.py +++ b/sdk/keyvault/azure-keyvault-certificates/azure/keyvault/certificates/_generated_models.py @@ -8,7 +8,6 @@ from enum import Enum, EnumMeta import msrest.serialization -from six import with_metaclass class Action(msrest.serialization.Model): @@ -1348,14 +1347,14 @@ def __getattr__(cls, name): raise AttributeError(name) -class ActionType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): +class ActionType(str, Enum, metaclass=_CaseInsensitiveEnumMeta): """The type of the action. """ EMAIL_CONTACTS = "EmailContacts" AUTO_RENEW = "AutoRenew" -class DeletionRecoveryLevel(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): +class DeletionRecoveryLevel(str, Enum, metaclass=_CaseInsensitiveEnumMeta): """Reflects the deletion recovery level currently in effect for certificates in the current vault. If it contains 'Purgeable', the certificate can be permanently deleted by a privileged user; otherwise, only the system can purge the certificate, at the end of the retention interval. @@ -1398,7 +1397,7 @@ class DeletionRecoveryLevel(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)) #: that the subscription itself cannot be cancelled. CUSTOMIZED_RECOVERABLE_PROTECTED_SUBSCRIPTION = "CustomizedRecoverable+ProtectedSubscription" -class JsonWebKeyCurveName(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): +class JsonWebKeyCurveName(str, Enum, metaclass=_CaseInsensitiveEnumMeta): """Elliptic curve name. For valid values, see JsonWebKeyCurveName. """ @@ -1407,7 +1406,7 @@ class JsonWebKeyCurveName(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): P521 = "P-521" P256_K = "P-256K" -class JsonWebKeyType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): +class JsonWebKeyType(str, Enum, metaclass=_CaseInsensitiveEnumMeta): """The type of key pair to be used for the certificate. """ @@ -1417,7 +1416,7 @@ class JsonWebKeyType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): RSA_HSM = "RSA-HSM" OCT = "oct" -class KeyUsageType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): +class KeyUsageType(str, Enum, metaclass=_CaseInsensitiveEnumMeta): DIGITAL_SIGNATURE = "digitalSignature" NON_REPUDIATION = "nonRepudiation" diff --git a/sdk/keyvault/azure-keyvault-certificates/azure/keyvault/certificates/_shared/client_base.py b/sdk/keyvault/azure-keyvault-certificates/azure/keyvault/certificates/_shared/client_base.py index e870b4d56cbd..02510b7c8762 100644 --- a/sdk/keyvault/azure-keyvault-certificates/azure/keyvault/certificates/_shared/client_base.py +++ b/sdk/keyvault/azure-keyvault-certificates/azure/keyvault/certificates/_shared/client_base.py @@ -2,10 +2,8 @@ # Copyright (c) Microsoft Corporation. # Licensed under the MIT License. # ------------------------------------ -# pylint:skip-file (avoids crash due to six.with_metaclass https://github.com/PyCQA/astroid/issues/713) from typing import TYPE_CHECKING from enum import Enum -from six import with_metaclass from azure.core import CaseInsensitiveEnumMeta from azure.core.pipeline.policies import HttpLoggingPolicy @@ -20,7 +18,7 @@ from azure.core.credentials import TokenCredential -class ApiVersion(with_metaclass(CaseInsensitiveEnumMeta, str, Enum)): +class ApiVersion(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Key Vault API versions supported by this package""" #: this is the default version diff --git a/sdk/keyvault/azure-keyvault-certificates/setup.py b/sdk/keyvault/azure-keyvault-certificates/setup.py index 13fc580f7f07..e65d7ed01c82 100644 --- a/sdk/keyvault/azure-keyvault-certificates/setup.py +++ b/sdk/keyvault/azure-keyvault-certificates/setup.py @@ -48,7 +48,6 @@ "Programming Language :: Python", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", @@ -65,11 +64,10 @@ "azure.keyvault", ] ), - python_requires=">=3.6", + python_requires=">=3.7", install_requires=[ - "azure-core<2.0.0,>=1.20.0", - "msrest>=0.6.21", + "azure-core<2.0.0,>=1.24.0", + "msrest>=0.7.1", "azure-common~=1.1", - "six>=1.11.0", ], ) diff --git a/sdk/keyvault/azure-keyvault-certificates/tests/_shared/helpers.py b/sdk/keyvault/azure-keyvault-certificates/tests/_shared/helpers.py index 8df36215388e..4ba9fca7c32b 100644 --- a/sdk/keyvault/azure-keyvault-certificates/tests/_shared/helpers.py +++ b/sdk/keyvault/azure-keyvault-certificates/tests/_shared/helpers.py @@ -3,7 +3,7 @@ # Licensed under the MIT License. # ------------------------------------ import json -import six +import urllib try: from unittest import mock @@ -47,7 +47,7 @@ def add_discrepancy(name, expected, actual): if self.url_substring and self.url_substring not in request.url: add_discrepancy("url substring", self.url_substring, request.url) - parsed = six.moves.urllib_parse.urlparse(request.url) + parsed = urllib.parse.urlparse(request.url) if self.authority and parsed.netloc != self.authority: add_discrepancy("authority", self.authority, parsed.netloc) diff --git a/sdk/keyvault/azure-keyvault-certificates/tests/_shared/json_attribute_matcher.py b/sdk/keyvault/azure-keyvault-certificates/tests/_shared/json_attribute_matcher.py index bf79ad588082..e0514b612188 100644 --- a/sdk/keyvault/azure-keyvault-certificates/tests/_shared/json_attribute_matcher.py +++ b/sdk/keyvault/azure-keyvault-certificates/tests/_shared/json_attribute_matcher.py @@ -4,8 +4,6 @@ # ------------------------------------ import json -import six - _has_json_body = lambda req: req.body and "json" in req.headers.get("Content-Type", "") @@ -13,6 +11,6 @@ def json_attribute_matcher(r1, r2): """Tests whether two vcr.py requests have JSON content with identical attributes (ignoring values).""" if _has_json_body(r1) and _has_json_body(r2): - c1 = json.loads(six.ensure_str(r1.body)) - c2 = json.loads(six.ensure_str(r2.body)) + c1 = json.loads(str(r1.body)) + c2 = json.loads(str(r2.body)) assert sorted(c1.keys()) == sorted(c2.keys()) diff --git a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/_enums.py b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/_enums.py index bcc3cc106015..d0a3e9a59870 100644 --- a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/_enums.py +++ b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/_enums.py @@ -2,14 +2,12 @@ # Copyright (c) Microsoft Corporation. # Licensed under the MIT License. # ------------------------------------ -# pylint:skip-file (avoids crash due to six.with_metaclass https://github.com/PyCQA/astroid/issues/713) from enum import Enum -from six import with_metaclass from azure.core import CaseInsensitiveEnumMeta -class KeyCurveName(with_metaclass(CaseInsensitiveEnumMeta, str, Enum)): +class KeyCurveName(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Supported elliptic curves""" p_256 = "P-256" #: The NIST P-256 elliptic curve, AKA SECG curve SECP256R1. @@ -18,7 +16,7 @@ class KeyCurveName(with_metaclass(CaseInsensitiveEnumMeta, str, Enum)): p_256_k = "P-256K" #: The SECG SECP256K1 elliptic curve. -class KeyExportEncryptionAlgorithm(with_metaclass(CaseInsensitiveEnumMeta, str, Enum)): +class KeyExportEncryptionAlgorithm(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Supported algorithms for protecting exported key material""" ckm_rsa_aes_key_wrap = "CKM_RSA_AES_KEY_WRAP" @@ -26,7 +24,7 @@ class KeyExportEncryptionAlgorithm(with_metaclass(CaseInsensitiveEnumMeta, str, rsa_aes_key_wrap_384 = "RSA_AES_KEY_WRAP_384" -class KeyOperation(with_metaclass(CaseInsensitiveEnumMeta, str, Enum)): +class KeyOperation(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Supported key operations""" encrypt = "encrypt" @@ -39,14 +37,14 @@ class KeyOperation(with_metaclass(CaseInsensitiveEnumMeta, str, Enum)): export = "export" -class KeyRotationPolicyAction(with_metaclass(CaseInsensitiveEnumMeta, str, Enum)): +class KeyRotationPolicyAction(str, Enum, metaclass=CaseInsensitiveEnumMeta): """The action that will be executed in a key rotation policy""" rotate = "Rotate" #: Rotate the key based on the key policy. notify = "Notify" #: Trigger Event Grid events. -class KeyType(with_metaclass(CaseInsensitiveEnumMeta, str, Enum)): +class KeyType(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Supported key types""" ec = "EC" #: Elliptic Curve diff --git a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/_generated_models.py b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/_generated_models.py index 84278b8484e2..915848f1b6a3 100644 --- a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/_generated_models.py +++ b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/_generated_models.py @@ -3,11 +3,9 @@ # Copyright (c) Microsoft Corporation. All rights reserved. # Licensed under the MIT License. See License.txt in the project root for license information. # -------------------------------------------------------------------------- -# pylint: skip-file (avoids crash due to six.with_metaclass https://github.com/PyCQA/astroid/issues/713) from enum import Enum, EnumMeta import msrest.serialization -from six import with_metaclass class Attributes(msrest.serialization.Model): @@ -856,7 +854,7 @@ def __getattr__(cls, name): raise AttributeError(name) -class DeletionRecoveryLevel(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): +class DeletionRecoveryLevel(str, Enum, metaclass=_CaseInsensitiveEnumMeta): """Reflects the deletion recovery level currently in effect for keys in the current vault. If it contains 'Purgeable' the key can be permanently deleted by a privileged user; otherwise, only the system can purge the key, at the end of the retention interval. @@ -899,7 +897,7 @@ class DeletionRecoveryLevel(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)) #: that the subscription itself cannot be cancelled. CUSTOMIZED_RECOVERABLE_PROTECTED_SUBSCRIPTION = "CustomizedRecoverable+ProtectedSubscription" -class JsonWebKeyCurveName(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): +class JsonWebKeyCurveName(str, Enum, metaclass=_CaseInsensitiveEnumMeta): """Elliptic curve name. For valid values, see JsonWebKeyCurveName. """ @@ -912,7 +910,7 @@ class JsonWebKeyCurveName(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): #: The SECG SECP256K1 elliptic curve. P256_K = "P-256K" -class JsonWebKeyEncryptionAlgorithm(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): +class JsonWebKeyEncryptionAlgorithm(str, Enum, metaclass=_CaseInsensitiveEnumMeta): """algorithm identifier """ @@ -920,7 +918,7 @@ class JsonWebKeyEncryptionAlgorithm(with_metaclass(_CaseInsensitiveEnumMeta, str RSA_OAEP256 = "RSA-OAEP-256" RSA1_5 = "RSA1_5" -class JsonWebKeyOperation(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): +class JsonWebKeyOperation(str, Enum, metaclass=_CaseInsensitiveEnumMeta): """JSON web key operations. For more information, see JsonWebKeyOperation. """ @@ -932,7 +930,7 @@ class JsonWebKeyOperation(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): UNWRAP_KEY = "unwrapKey" IMPORT_ENUM = "import" -class JsonWebKeySignatureAlgorithm(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): +class JsonWebKeySignatureAlgorithm(str, Enum, metaclass=_CaseInsensitiveEnumMeta): """The signing/verification algorithm identifier. For more information on possible algorithm types, see JsonWebKeySignatureAlgorithm. """ @@ -963,7 +961,7 @@ class JsonWebKeySignatureAlgorithm(with_metaclass(_CaseInsensitiveEnumMeta, str, #: ECDSA using P-256K and SHA-256, as described in https://tools.ietf.org/html/rfc7518. ES256_K = "ES256K" -class JsonWebKeyType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): +class JsonWebKeyType(str, Enum, metaclass=_CaseInsensitiveEnumMeta): """JsonWebKey Key Type (kty), as defined in https://tools.ietf.org/html/draft-ietf-jose-json-web-algorithms-40. """ diff --git a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/_shared/client_base.py b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/_shared/client_base.py index e870b4d56cbd..954a2d4b9560 100644 --- a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/_shared/client_base.py +++ b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/_shared/client_base.py @@ -5,7 +5,6 @@ # pylint:skip-file (avoids crash due to six.with_metaclass https://github.com/PyCQA/astroid/issues/713) from typing import TYPE_CHECKING from enum import Enum -from six import with_metaclass from azure.core import CaseInsensitiveEnumMeta from azure.core.pipeline.policies import HttpLoggingPolicy @@ -20,7 +19,7 @@ from azure.core.credentials import TokenCredential -class ApiVersion(with_metaclass(CaseInsensitiveEnumMeta, str, Enum)): +class ApiVersion(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Key Vault API versions supported by this package""" #: this is the default version diff --git a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_client.py b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_client.py index 913d559f4f1e..e60c81369abb 100644 --- a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_client.py +++ b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_client.py @@ -5,7 +5,6 @@ import logging from typing import TYPE_CHECKING, cast -import six from azure.core.exceptions import HttpResponseError from azure.core.tracing.decorator import distributed_trace @@ -115,7 +114,7 @@ def __init__(self, key, credential, **kwargs): if key.properties._attributes: # pylint:disable=protected-access self._not_before = key.properties.not_before self._expires_on = key.properties.expires_on - elif isinstance(key, six.string_types): + elif isinstance(key, str): self._key = None self._key_id = parse_key_vault_id(key) if self._key_id.version is None: @@ -131,7 +130,7 @@ def __init__(self, key, credential, **kwargs): self._local_provider = get_local_cryptography_provider(cast(JsonWebKey, self._key)) self._initialized = True except Exception as ex: # pylint:disable=broad-except - six.raise_from(ValueError("The provided jwk is not valid for local cryptography"), ex) + raise ValueError("The provided jwk is not valid for local cryptography") from ex else: self._local_provider = NoLocalCryptography() self._initialized = False diff --git a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/key.py b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/key.py index 2a04602ba8f1..18665efeecce 100644 --- a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/key.py +++ b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/key.py @@ -4,7 +4,6 @@ # ------------------------------------ from abc import ABCMeta, abstractmethod -from six import with_metaclass from .algorithm import Algorithm try: @@ -16,7 +15,7 @@ # pylint:disable=unused-import from typing import Any, FrozenSet -class Key(with_metaclass(ABCMeta, object)): +class Key(object, metaclass=ABCMeta): _supported_encryption_algorithms = frozenset([]) # type: FrozenSet[Any] _supported_key_wrap_algorithms = frozenset([]) # type: FrozenSet[Any] _supported_signature_algorithms = frozenset([]) # type: FrozenSet[Any] diff --git a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/transform.py b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/transform.py index 039aece0f464..3a24f7ab1a7f 100644 --- a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/transform.py +++ b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/transform.py @@ -4,10 +4,9 @@ # ------------------------------------ from abc import ABCMeta, abstractmethod -from six import with_metaclass -class CryptoTransform(with_metaclass(ABCMeta, object)): +class CryptoTransform(object, metaclass=ABCMeta): def __init__(self, key): self._key = key @@ -36,13 +35,13 @@ def finalize(self): raise NotImplementedError() -class AuthenticatedCryptoTransform(with_metaclass(ABCMeta, object)): +class AuthenticatedCryptoTransform(object, metaclass=ABCMeta): @abstractmethod def tag(self): raise NotImplementedError() -class SignatureTransform(with_metaclass(ABCMeta, object)): +class SignatureTransform(object, metaclass=ABCMeta): @abstractmethod def sign(self, digest): raise NotImplementedError() @@ -52,7 +51,7 @@ def verify(self, digest, signature): raise NotImplementedError() -class DigestTransform(with_metaclass(ABCMeta, object)): +class DigestTransform(object, metaclass=ABCMeta): @abstractmethod def update(self, data): raise NotImplementedError() diff --git a/sdk/keyvault/azure-keyvault-keys/setup.py b/sdk/keyvault/azure-keyvault-keys/setup.py index bc99759005cd..122c9f700c5a 100644 --- a/sdk/keyvault/azure-keyvault-keys/setup.py +++ b/sdk/keyvault/azure-keyvault-keys/setup.py @@ -70,6 +70,5 @@ "cryptography>=2.1.4", "msrest>=0.7.1", "azure-common~=1.1", - "six>=1.12.0" ], ) diff --git a/sdk/keyvault/azure-keyvault-keys/tests/_shared/helpers.py b/sdk/keyvault/azure-keyvault-keys/tests/_shared/helpers.py index 8df36215388e..4ba9fca7c32b 100644 --- a/sdk/keyvault/azure-keyvault-keys/tests/_shared/helpers.py +++ b/sdk/keyvault/azure-keyvault-keys/tests/_shared/helpers.py @@ -3,7 +3,7 @@ # Licensed under the MIT License. # ------------------------------------ import json -import six +import urllib try: from unittest import mock @@ -47,7 +47,7 @@ def add_discrepancy(name, expected, actual): if self.url_substring and self.url_substring not in request.url: add_discrepancy("url substring", self.url_substring, request.url) - parsed = six.moves.urllib_parse.urlparse(request.url) + parsed = urllib.parse.urlparse(request.url) if self.authority and parsed.netloc != self.authority: add_discrepancy("authority", self.authority, parsed.netloc) diff --git a/sdk/keyvault/azure-keyvault-keys/tests/_shared/json_attribute_matcher.py b/sdk/keyvault/azure-keyvault-keys/tests/_shared/json_attribute_matcher.py index bf79ad588082..e0514b612188 100644 --- a/sdk/keyvault/azure-keyvault-keys/tests/_shared/json_attribute_matcher.py +++ b/sdk/keyvault/azure-keyvault-keys/tests/_shared/json_attribute_matcher.py @@ -4,8 +4,6 @@ # ------------------------------------ import json -import six - _has_json_body = lambda req: req.body and "json" in req.headers.get("Content-Type", "") @@ -13,6 +11,6 @@ def json_attribute_matcher(r1, r2): """Tests whether two vcr.py requests have JSON content with identical attributes (ignoring values).""" if _has_json_body(r1) and _has_json_body(r2): - c1 = json.loads(six.ensure_str(r1.body)) - c2 = json.loads(six.ensure_str(r2.body)) + c1 = json.loads(str(r1.body)) + c2 = json.loads(str(r2.body)) assert sorted(c1.keys()) == sorted(c2.keys()) diff --git a/sdk/keyvault/azure-keyvault-keys/tests/test_key_client.py b/sdk/keyvault/azure-keyvault-keys/tests/test_key_client.py index a72ba573f4d8..104e31ea7a08 100644 --- a/sdk/keyvault/azure-keyvault-keys/tests/test_key_client.py +++ b/sdk/keyvault/azure-keyvault-keys/tests/test_key_client.py @@ -25,7 +25,6 @@ from azure.keyvault.keys._generated.v7_3.models import KeyRotationPolicy as _KeyRotationPolicy from dateutil import parser as date_parse from devtools_testutils import recorded_by_proxy, set_bodiless_matcher -from six import byte2int from _shared.test_case import KeyVaultTestCase from _test_case import KeysClientPreparer, get_attestation_token, get_decorator, get_release_policy, is_public_cloud @@ -254,7 +253,7 @@ def test_rsa_public_exponent(self, client, **kwargs): key_name = self.get_resource_name("rsa-key") key = self._create_rsa_key(client, key_name, hardware_protected=True, public_exponent=17) - public_exponent = byte2int(key.key.e) + public_exponent = key.key.e[0] assert public_exponent == 17 @pytest.mark.parametrize("api_version,is_hsm",all_api_versions) diff --git a/sdk/keyvault/azure-keyvault-keys/tests/test_keys_async.py b/sdk/keyvault/azure-keyvault-keys/tests/test_keys_async.py index a06c7f550c8b..9ec834dd51ed 100644 --- a/sdk/keyvault/azure-keyvault-keys/tests/test_keys_async.py +++ b/sdk/keyvault/azure-keyvault-keys/tests/test_keys_async.py @@ -22,7 +22,6 @@ ) from azure.keyvault.keys.aio import KeyClient import pytest -from six import byte2int from _shared.test_case_async import KeyVaultTestCase from _async_test_case import get_attestation_token, get_decorator, get_release_policy, is_public_cloud, AsyncKeysClientPreparer @@ -250,7 +249,7 @@ async def test_rsa_public_exponent(self, client, **kwargs): key_name = self.get_resource_name("rsa-key") key = await self._create_rsa_key(client, key_name, hardware_protected=True, public_exponent=17) - public_exponent = byte2int(key.key.e) + public_exponent = key.key.e[0] assert public_exponent == 17 @pytest.mark.asyncio diff --git a/sdk/keyvault/azure-keyvault-secrets/azure/keyvault/secrets/_generated_models.py b/sdk/keyvault/azure-keyvault-secrets/azure/keyvault/secrets/_generated_models.py index d3310ca8a80a..19e1c3f31f4f 100644 --- a/sdk/keyvault/azure-keyvault-secrets/azure/keyvault/secrets/_generated_models.py +++ b/sdk/keyvault/azure-keyvault-secrets/azure/keyvault/secrets/_generated_models.py @@ -3,11 +3,8 @@ # Copyright (c) Microsoft Corporation. All rights reserved. # Licensed under the MIT License. See License.txt in the project root for license information. # -------------------------------------------------------------------------- -# pylint: skip-file (avoids crash due to six.with_metaclass https://github.com/PyCQA/astroid/issues/713) - from enum import Enum, EnumMeta import msrest.serialization -from six import with_metaclass class Attributes(msrest.serialization.Model): @@ -584,7 +581,7 @@ def __getattr__(cls, name): raise AttributeError(name) -class DeletionRecoveryLevel(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): +class DeletionRecoveryLevel(str, Enum, metaclass=_CaseInsensitiveEnumMeta): """Reflects the deletion recovery level currently in effect for secrets in the current vault. If it contains 'Purgeable', the secret can be permanently deleted by a privileged user; otherwise, only the system can purge the secret, at the end of the retention interval. diff --git a/sdk/keyvault/azure-keyvault-secrets/azure/keyvault/secrets/_shared/client_base.py b/sdk/keyvault/azure-keyvault-secrets/azure/keyvault/secrets/_shared/client_base.py index e870b4d56cbd..02510b7c8762 100644 --- a/sdk/keyvault/azure-keyvault-secrets/azure/keyvault/secrets/_shared/client_base.py +++ b/sdk/keyvault/azure-keyvault-secrets/azure/keyvault/secrets/_shared/client_base.py @@ -2,10 +2,8 @@ # Copyright (c) Microsoft Corporation. # Licensed under the MIT License. # ------------------------------------ -# pylint:skip-file (avoids crash due to six.with_metaclass https://github.com/PyCQA/astroid/issues/713) from typing import TYPE_CHECKING from enum import Enum -from six import with_metaclass from azure.core import CaseInsensitiveEnumMeta from azure.core.pipeline.policies import HttpLoggingPolicy @@ -20,7 +18,7 @@ from azure.core.credentials import TokenCredential -class ApiVersion(with_metaclass(CaseInsensitiveEnumMeta, str, Enum)): +class ApiVersion(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Key Vault API versions supported by this package""" #: this is the default version diff --git a/sdk/keyvault/azure-keyvault-secrets/setup.py b/sdk/keyvault/azure-keyvault-secrets/setup.py index 54b0d9e76cb5..3ac7ceb416f1 100644 --- a/sdk/keyvault/azure-keyvault-secrets/setup.py +++ b/sdk/keyvault/azure-keyvault-secrets/setup.py @@ -48,7 +48,6 @@ "Programming Language :: Python", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", @@ -65,11 +64,10 @@ "azure.keyvault", ] ), - python_requires=">=3.6", + python_requires=">=3.7", install_requires=[ - "azure-core<2.0.0,>=1.20.0", - "msrest>=0.6.21", + "azure-core<2.0.0,>=1.24.0", + "msrest>=0.7.1", "azure-common~=1.1", - "six>=1.11.0", ], ) diff --git a/sdk/keyvault/azure-keyvault-secrets/tests/_shared/helpers.py b/sdk/keyvault/azure-keyvault-secrets/tests/_shared/helpers.py index 8df36215388e..4ba9fca7c32b 100644 --- a/sdk/keyvault/azure-keyvault-secrets/tests/_shared/helpers.py +++ b/sdk/keyvault/azure-keyvault-secrets/tests/_shared/helpers.py @@ -3,7 +3,7 @@ # Licensed under the MIT License. # ------------------------------------ import json -import six +import urllib try: from unittest import mock @@ -47,7 +47,7 @@ def add_discrepancy(name, expected, actual): if self.url_substring and self.url_substring not in request.url: add_discrepancy("url substring", self.url_substring, request.url) - parsed = six.moves.urllib_parse.urlparse(request.url) + parsed = urllib.parse.urlparse(request.url) if self.authority and parsed.netloc != self.authority: add_discrepancy("authority", self.authority, parsed.netloc) diff --git a/sdk/keyvault/azure-keyvault-secrets/tests/_shared/json_attribute_matcher.py b/sdk/keyvault/azure-keyvault-secrets/tests/_shared/json_attribute_matcher.py index bf79ad588082..e0514b612188 100644 --- a/sdk/keyvault/azure-keyvault-secrets/tests/_shared/json_attribute_matcher.py +++ b/sdk/keyvault/azure-keyvault-secrets/tests/_shared/json_attribute_matcher.py @@ -4,8 +4,6 @@ # ------------------------------------ import json -import six - _has_json_body = lambda req: req.body and "json" in req.headers.get("Content-Type", "") @@ -13,6 +11,6 @@ def json_attribute_matcher(r1, r2): """Tests whether two vcr.py requests have JSON content with identical attributes (ignoring values).""" if _has_json_body(r1) and _has_json_body(r2): - c1 = json.loads(six.ensure_str(r1.body)) - c2 = json.loads(six.ensure_str(r2.body)) + c1 = json.loads(str(r1.body)) + c2 = json.loads(str(r2.body)) assert sorted(c1.keys()) == sorted(c2.keys()) From 1551c30f908e2a3d7f52a0249716adfefb389f26 Mon Sep 17 00:00:00 2001 From: Wonhyeong Seo Date: Sun, 11 Sep 2022 17:11:24 +0900 Subject: [PATCH 2/5] fix: remove six and update to 3.7 Co-authored-by: Dongwon Shin --- .../CHANGELOG.md | 1 + .../keyvault/administration/_backup_client.py | 25 +++++++------------ .../azure/keyvault/administration/_enums.py | 7 ++---- .../administration/_internal/__init__.py | 2 +- .../administration/_internal/client_base.py | 4 +-- .../azure-keyvault-administration/setup.py | 5 ++-- .../tests/_shared/helpers.py | 4 +-- .../tests/_shared/json_attribute_matcher.py | 6 ++--- .../azure/keyvault/certificates/_enums.py | 14 +++++------ .../certificates/_generated_models.py | 11 ++++---- .../certificates/_shared/client_base.py | 4 +-- .../azure-keyvault-certificates/setup.py | 8 +++--- .../tests/_shared/helpers.py | 4 +-- .../tests/_shared/json_attribute_matcher.py | 6 ++--- .../azure/keyvault/keys/_enums.py | 12 ++++----- .../azure/keyvault/keys/_generated_models.py | 14 +++++------ .../keyvault/keys/_shared/client_base.py | 3 +-- .../azure/keyvault/keys/crypto/_client.py | 5 ++-- .../keyvault/keys/crypto/_internal/key.py | 3 +-- .../keys/crypto/_internal/transform.py | 9 +++---- sdk/keyvault/azure-keyvault-keys/setup.py | 1 - .../tests/_shared/helpers.py | 4 +-- .../tests/_shared/json_attribute_matcher.py | 6 ++--- .../tests/test_key_client.py | 3 +-- .../tests/test_keys_async.py | 3 +-- .../keyvault/secrets/_generated_models.py | 5 +--- .../keyvault/secrets/_shared/client_base.py | 4 +-- sdk/keyvault/azure-keyvault-secrets/setup.py | 8 +++--- .../tests/_shared/helpers.py | 4 +-- .../tests/_shared/json_attribute_matcher.py | 6 ++--- 30 files changed, 73 insertions(+), 118 deletions(-) diff --git a/sdk/keyvault/azure-keyvault-administration/CHANGELOG.md b/sdk/keyvault/azure-keyvault-administration/CHANGELOG.md index bbcc646e204e..17b6b2ab92ab 100644 --- a/sdk/keyvault/azure-keyvault-administration/CHANGELOG.md +++ b/sdk/keyvault/azure-keyvault-administration/CHANGELOG.md @@ -11,6 +11,7 @@ ### Other Changes - Updated minimum `azure-core` version to 1.24.0 - Updated minimum `msrest` version to 0.7.1 +- Python 3.6 is no longer supported. Please use Python version 3.7 or later. ## 4.1.1 (2022-08-11) diff --git a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_backup_client.py b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_backup_client.py index 479841c30d49..bef5fd3d955d 100644 --- a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_backup_client.py +++ b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_backup_client.py @@ -7,8 +7,7 @@ import pickle from typing import TYPE_CHECKING -from six import raise_from -from six.moves.urllib_parse import urlparse +from urllib.parse import urlparse from ._models import KeyVaultBackupResult from ._internal import KeyVaultClientBase, parse_folder_url @@ -65,13 +64,10 @@ def begin_backup(self, blob_storage_url, sas_token, **kwargs): try: job_id = _parse_status_url(status_url) except Exception as ex: # pylint: disable=broad-except - raise_from( - ValueError( - "The provided continuation_token is malformed. A valid token can be obtained from the " - + "operation poller's continuation_token() method" - ), - ex, - ) + raise ValueError( + "The provided continuation_token is malformed. A valid token can be obtained from the " + + "operation poller's continuation_token() method" + ) from ex pipeline_response = self._client.full_backup_status( vault_base_url=self._vault_url, job_id=job_id, cls=lambda pipeline_response, _, __: pipeline_response @@ -130,13 +126,10 @@ def begin_restore(self, folder_url, sas_token, **kwargs): try: job_id = _parse_status_url(status_url) except Exception as ex: # pylint: disable=broad-except - raise_from( - ValueError( - "The provided continuation_token is malformed. A valid token can be obtained from the " - + "operation poller's continuation_token() method" - ), - ex, - ) + raise ValueError( + "The provided continuation_token is malformed. A valid token can be obtained from the " + + "operation poller's continuation_token() method" + ) from ex pipeline_response = self._client.restore_status( vault_base_url=self._vault_url, job_id=job_id, cls=lambda pipeline_response, _, __: pipeline_response diff --git a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_enums.py b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_enums.py index 8999a64ed9ec..ce21fb4110ac 100644 --- a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_enums.py +++ b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_enums.py @@ -3,21 +3,18 @@ # Licensed under the MIT License. # ------------------------------------ from enum import Enum -from six import with_metaclass from azure.core import CaseInsensitiveEnumMeta -# pylint:skip-file (avoids crash due to six.with_metaclass https://github.com/PyCQA/astroid/issues/713) - -class KeyVaultRoleScope(with_metaclass(CaseInsensitiveEnumMeta, str, Enum)): +class KeyVaultRoleScope(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Collection of well known role scopes. This list is not exhaustive.""" GLOBAL = "/" #: use this if you want role assignments to apply to everything on the resource KEYS = "/keys" #: use this if you want role assignments to apply to all keys -class KeyVaultDataAction(with_metaclass(CaseInsensitiveEnumMeta, str, Enum)): +class KeyVaultDataAction(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Supported permissions for data actions.""" #: Read HSM key metadata. diff --git a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_internal/__init__.py b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_internal/__init__.py index a0536ae8029e..1b721021afd9 100644 --- a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_internal/__init__.py +++ b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_internal/__init__.py @@ -4,7 +4,7 @@ # ------------------------------------ from collections import namedtuple -from six.moves.urllib_parse import urlparse +from urllib_parse import urlparse from .challenge_auth_policy import ChallengeAuthPolicy from .client_base import KeyVaultClientBase diff --git a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_internal/client_base.py b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_internal/client_base.py index 014ab82c0197..126c3834e8b6 100644 --- a/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_internal/client_base.py +++ b/sdk/keyvault/azure-keyvault-administration/azure/keyvault/administration/_internal/client_base.py @@ -2,10 +2,8 @@ # Copyright (c) Microsoft Corporation. # Licensed under the MIT License. # ------------------------------------ -# pylint:skip-file (avoids crash due to six.with_metaclass https://github.com/PyCQA/astroid/issues/713) from typing import TYPE_CHECKING from enum import Enum -from six import with_metaclass from azure.core import CaseInsensitiveEnumMeta from azure.core.pipeline.policies import HttpLoggingPolicy @@ -20,7 +18,7 @@ from azure.core.credentials import TokenCredential -class ApiVersion(with_metaclass(CaseInsensitiveEnumMeta, str, Enum)): +class ApiVersion(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Key Vault API versions supported by this package""" #: this is the default version diff --git a/sdk/keyvault/azure-keyvault-administration/setup.py b/sdk/keyvault/azure-keyvault-administration/setup.py index dca01d2dd367..881a407821ee 100644 --- a/sdk/keyvault/azure-keyvault-administration/setup.py +++ b/sdk/keyvault/azure-keyvault-administration/setup.py @@ -48,7 +48,6 @@ "Programming Language :: Python", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", @@ -65,6 +64,6 @@ "azure.keyvault", ] ), - python_requires=">=3.6", - install_requires=["azure-common~=1.1", "azure-core<2.0.0,>=1.24.0", "msrest>=0.7.1", "six>=1.11.0"], + python_requires=">=3.7", + install_requires=["azure-common~=1.1", "azure-core<2.0.0,>=1.24.0", "msrest>=0.7.1"], ) diff --git a/sdk/keyvault/azure-keyvault-administration/tests/_shared/helpers.py b/sdk/keyvault/azure-keyvault-administration/tests/_shared/helpers.py index 8df36215388e..4ba9fca7c32b 100644 --- a/sdk/keyvault/azure-keyvault-administration/tests/_shared/helpers.py +++ b/sdk/keyvault/azure-keyvault-administration/tests/_shared/helpers.py @@ -3,7 +3,7 @@ # Licensed under the MIT License. # ------------------------------------ import json -import six +import urllib try: from unittest import mock @@ -47,7 +47,7 @@ def add_discrepancy(name, expected, actual): if self.url_substring and self.url_substring not in request.url: add_discrepancy("url substring", self.url_substring, request.url) - parsed = six.moves.urllib_parse.urlparse(request.url) + parsed = urllib.parse.urlparse(request.url) if self.authority and parsed.netloc != self.authority: add_discrepancy("authority", self.authority, parsed.netloc) diff --git a/sdk/keyvault/azure-keyvault-administration/tests/_shared/json_attribute_matcher.py b/sdk/keyvault/azure-keyvault-administration/tests/_shared/json_attribute_matcher.py index bf79ad588082..e0514b612188 100644 --- a/sdk/keyvault/azure-keyvault-administration/tests/_shared/json_attribute_matcher.py +++ b/sdk/keyvault/azure-keyvault-administration/tests/_shared/json_attribute_matcher.py @@ -4,8 +4,6 @@ # ------------------------------------ import json -import six - _has_json_body = lambda req: req.body and "json" in req.headers.get("Content-Type", "") @@ -13,6 +11,6 @@ def json_attribute_matcher(r1, r2): """Tests whether two vcr.py requests have JSON content with identical attributes (ignoring values).""" if _has_json_body(r1) and _has_json_body(r2): - c1 = json.loads(six.ensure_str(r1.body)) - c2 = json.loads(six.ensure_str(r2.body)) + c1 = json.loads(str(r1.body)) + c2 = json.loads(str(r2.body)) assert sorted(c1.keys()) == sorted(c2.keys()) diff --git a/sdk/keyvault/azure-keyvault-certificates/azure/keyvault/certificates/_enums.py b/sdk/keyvault/azure-keyvault-certificates/azure/keyvault/certificates/_enums.py index 866fcb15f916..cb123cf986b8 100644 --- a/sdk/keyvault/azure-keyvault-certificates/azure/keyvault/certificates/_enums.py +++ b/sdk/keyvault/azure-keyvault-certificates/azure/keyvault/certificates/_enums.py @@ -2,28 +2,26 @@ # Copyright (c) Microsoft Corporation. # Licensed under the MIT License. # ------------------------------------ -# pylint:skip-file (avoids crash due to six.with_metaclass https://github.com/PyCQA/astroid/issues/713) from enum import Enum -from six import with_metaclass from azure.core import CaseInsensitiveEnumMeta -class CertificatePolicyAction(with_metaclass(CaseInsensitiveEnumMeta, str, Enum)): +class CertificatePolicyAction(str, Enum, metaclass=CaseInsensitiveEnumMeta): """The supported action types for the lifetime of a certificate""" email_contacts = "EmailContacts" auto_renew = "AutoRenew" -class CertificateContentType(with_metaclass(CaseInsensitiveEnumMeta, str, Enum)): +class CertificateContentType(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Content type of the secrets as specified in Certificate Policy""" pkcs12 = "application/x-pkcs12" pem = "application/x-pem-file" -class KeyUsageType(with_metaclass(CaseInsensitiveEnumMeta, str, Enum)): +class KeyUsageType(str, Enum, metaclass=CaseInsensitiveEnumMeta): """The supported types of key usages""" digital_signature = "digitalSignature" @@ -37,7 +35,7 @@ class KeyUsageType(with_metaclass(CaseInsensitiveEnumMeta, str, Enum)): decipher_only = "decipherOnly" -class KeyType(with_metaclass(CaseInsensitiveEnumMeta, str, Enum)): +class KeyType(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Supported key types""" ec = "EC" #: Elliptic Curve @@ -55,7 +53,7 @@ def _missing_(cls, value): raise ValueError(f"{value} is not a valid KeyType") -class KeyCurveName(with_metaclass(CaseInsensitiveEnumMeta, str, Enum)): +class KeyCurveName(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Supported elliptic curves""" p_256 = "P-256" #: The NIST P-256 elliptic curve, AKA SECG curve SECP256R1. @@ -64,7 +62,7 @@ class KeyCurveName(with_metaclass(CaseInsensitiveEnumMeta, str, Enum)): p_256_k = "P-256K" #: The SECG SECP256K1 elliptic curve. -class WellKnownIssuerNames(with_metaclass(CaseInsensitiveEnumMeta, str, Enum)): +class WellKnownIssuerNames(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Collection of well-known issuer names""" self = "Self" #: Use this issuer for a self-signed certificate diff --git a/sdk/keyvault/azure-keyvault-certificates/azure/keyvault/certificates/_generated_models.py b/sdk/keyvault/azure-keyvault-certificates/azure/keyvault/certificates/_generated_models.py index 881743a1baa6..a7450f98e3ff 100644 --- a/sdk/keyvault/azure-keyvault-certificates/azure/keyvault/certificates/_generated_models.py +++ b/sdk/keyvault/azure-keyvault-certificates/azure/keyvault/certificates/_generated_models.py @@ -8,7 +8,6 @@ from enum import Enum, EnumMeta import msrest.serialization -from six import with_metaclass class Action(msrest.serialization.Model): @@ -1348,14 +1347,14 @@ def __getattr__(cls, name): raise AttributeError(name) -class ActionType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): +class ActionType(str, Enum, metaclass=_CaseInsensitiveEnumMeta): """The type of the action. """ EMAIL_CONTACTS = "EmailContacts" AUTO_RENEW = "AutoRenew" -class DeletionRecoveryLevel(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): +class DeletionRecoveryLevel(str, Enum, metaclass=_CaseInsensitiveEnumMeta): """Reflects the deletion recovery level currently in effect for certificates in the current vault. If it contains 'Purgeable', the certificate can be permanently deleted by a privileged user; otherwise, only the system can purge the certificate, at the end of the retention interval. @@ -1398,7 +1397,7 @@ class DeletionRecoveryLevel(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)) #: that the subscription itself cannot be cancelled. CUSTOMIZED_RECOVERABLE_PROTECTED_SUBSCRIPTION = "CustomizedRecoverable+ProtectedSubscription" -class JsonWebKeyCurveName(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): +class JsonWebKeyCurveName(str, Enum, metaclass=_CaseInsensitiveEnumMeta): """Elliptic curve name. For valid values, see JsonWebKeyCurveName. """ @@ -1407,7 +1406,7 @@ class JsonWebKeyCurveName(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): P521 = "P-521" P256_K = "P-256K" -class JsonWebKeyType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): +class JsonWebKeyType(str, Enum, metaclass=_CaseInsensitiveEnumMeta): """The type of key pair to be used for the certificate. """ @@ -1417,7 +1416,7 @@ class JsonWebKeyType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): RSA_HSM = "RSA-HSM" OCT = "oct" -class KeyUsageType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): +class KeyUsageType(str, Enum, metaclass=_CaseInsensitiveEnumMeta): DIGITAL_SIGNATURE = "digitalSignature" NON_REPUDIATION = "nonRepudiation" diff --git a/sdk/keyvault/azure-keyvault-certificates/azure/keyvault/certificates/_shared/client_base.py b/sdk/keyvault/azure-keyvault-certificates/azure/keyvault/certificates/_shared/client_base.py index e870b4d56cbd..02510b7c8762 100644 --- a/sdk/keyvault/azure-keyvault-certificates/azure/keyvault/certificates/_shared/client_base.py +++ b/sdk/keyvault/azure-keyvault-certificates/azure/keyvault/certificates/_shared/client_base.py @@ -2,10 +2,8 @@ # Copyright (c) Microsoft Corporation. # Licensed under the MIT License. # ------------------------------------ -# pylint:skip-file (avoids crash due to six.with_metaclass https://github.com/PyCQA/astroid/issues/713) from typing import TYPE_CHECKING from enum import Enum -from six import with_metaclass from azure.core import CaseInsensitiveEnumMeta from azure.core.pipeline.policies import HttpLoggingPolicy @@ -20,7 +18,7 @@ from azure.core.credentials import TokenCredential -class ApiVersion(with_metaclass(CaseInsensitiveEnumMeta, str, Enum)): +class ApiVersion(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Key Vault API versions supported by this package""" #: this is the default version diff --git a/sdk/keyvault/azure-keyvault-certificates/setup.py b/sdk/keyvault/azure-keyvault-certificates/setup.py index 13fc580f7f07..e65d7ed01c82 100644 --- a/sdk/keyvault/azure-keyvault-certificates/setup.py +++ b/sdk/keyvault/azure-keyvault-certificates/setup.py @@ -48,7 +48,6 @@ "Programming Language :: Python", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", @@ -65,11 +64,10 @@ "azure.keyvault", ] ), - python_requires=">=3.6", + python_requires=">=3.7", install_requires=[ - "azure-core<2.0.0,>=1.20.0", - "msrest>=0.6.21", + "azure-core<2.0.0,>=1.24.0", + "msrest>=0.7.1", "azure-common~=1.1", - "six>=1.11.0", ], ) diff --git a/sdk/keyvault/azure-keyvault-certificates/tests/_shared/helpers.py b/sdk/keyvault/azure-keyvault-certificates/tests/_shared/helpers.py index 8df36215388e..4ba9fca7c32b 100644 --- a/sdk/keyvault/azure-keyvault-certificates/tests/_shared/helpers.py +++ b/sdk/keyvault/azure-keyvault-certificates/tests/_shared/helpers.py @@ -3,7 +3,7 @@ # Licensed under the MIT License. # ------------------------------------ import json -import six +import urllib try: from unittest import mock @@ -47,7 +47,7 @@ def add_discrepancy(name, expected, actual): if self.url_substring and self.url_substring not in request.url: add_discrepancy("url substring", self.url_substring, request.url) - parsed = six.moves.urllib_parse.urlparse(request.url) + parsed = urllib.parse.urlparse(request.url) if self.authority and parsed.netloc != self.authority: add_discrepancy("authority", self.authority, parsed.netloc) diff --git a/sdk/keyvault/azure-keyvault-certificates/tests/_shared/json_attribute_matcher.py b/sdk/keyvault/azure-keyvault-certificates/tests/_shared/json_attribute_matcher.py index bf79ad588082..e0514b612188 100644 --- a/sdk/keyvault/azure-keyvault-certificates/tests/_shared/json_attribute_matcher.py +++ b/sdk/keyvault/azure-keyvault-certificates/tests/_shared/json_attribute_matcher.py @@ -4,8 +4,6 @@ # ------------------------------------ import json -import six - _has_json_body = lambda req: req.body and "json" in req.headers.get("Content-Type", "") @@ -13,6 +11,6 @@ def json_attribute_matcher(r1, r2): """Tests whether two vcr.py requests have JSON content with identical attributes (ignoring values).""" if _has_json_body(r1) and _has_json_body(r2): - c1 = json.loads(six.ensure_str(r1.body)) - c2 = json.loads(six.ensure_str(r2.body)) + c1 = json.loads(str(r1.body)) + c2 = json.loads(str(r2.body)) assert sorted(c1.keys()) == sorted(c2.keys()) diff --git a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/_enums.py b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/_enums.py index bcc3cc106015..d0a3e9a59870 100644 --- a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/_enums.py +++ b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/_enums.py @@ -2,14 +2,12 @@ # Copyright (c) Microsoft Corporation. # Licensed under the MIT License. # ------------------------------------ -# pylint:skip-file (avoids crash due to six.with_metaclass https://github.com/PyCQA/astroid/issues/713) from enum import Enum -from six import with_metaclass from azure.core import CaseInsensitiveEnumMeta -class KeyCurveName(with_metaclass(CaseInsensitiveEnumMeta, str, Enum)): +class KeyCurveName(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Supported elliptic curves""" p_256 = "P-256" #: The NIST P-256 elliptic curve, AKA SECG curve SECP256R1. @@ -18,7 +16,7 @@ class KeyCurveName(with_metaclass(CaseInsensitiveEnumMeta, str, Enum)): p_256_k = "P-256K" #: The SECG SECP256K1 elliptic curve. -class KeyExportEncryptionAlgorithm(with_metaclass(CaseInsensitiveEnumMeta, str, Enum)): +class KeyExportEncryptionAlgorithm(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Supported algorithms for protecting exported key material""" ckm_rsa_aes_key_wrap = "CKM_RSA_AES_KEY_WRAP" @@ -26,7 +24,7 @@ class KeyExportEncryptionAlgorithm(with_metaclass(CaseInsensitiveEnumMeta, str, rsa_aes_key_wrap_384 = "RSA_AES_KEY_WRAP_384" -class KeyOperation(with_metaclass(CaseInsensitiveEnumMeta, str, Enum)): +class KeyOperation(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Supported key operations""" encrypt = "encrypt" @@ -39,14 +37,14 @@ class KeyOperation(with_metaclass(CaseInsensitiveEnumMeta, str, Enum)): export = "export" -class KeyRotationPolicyAction(with_metaclass(CaseInsensitiveEnumMeta, str, Enum)): +class KeyRotationPolicyAction(str, Enum, metaclass=CaseInsensitiveEnumMeta): """The action that will be executed in a key rotation policy""" rotate = "Rotate" #: Rotate the key based on the key policy. notify = "Notify" #: Trigger Event Grid events. -class KeyType(with_metaclass(CaseInsensitiveEnumMeta, str, Enum)): +class KeyType(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Supported key types""" ec = "EC" #: Elliptic Curve diff --git a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/_generated_models.py b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/_generated_models.py index 84278b8484e2..915848f1b6a3 100644 --- a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/_generated_models.py +++ b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/_generated_models.py @@ -3,11 +3,9 @@ # Copyright (c) Microsoft Corporation. All rights reserved. # Licensed under the MIT License. See License.txt in the project root for license information. # -------------------------------------------------------------------------- -# pylint: skip-file (avoids crash due to six.with_metaclass https://github.com/PyCQA/astroid/issues/713) from enum import Enum, EnumMeta import msrest.serialization -from six import with_metaclass class Attributes(msrest.serialization.Model): @@ -856,7 +854,7 @@ def __getattr__(cls, name): raise AttributeError(name) -class DeletionRecoveryLevel(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): +class DeletionRecoveryLevel(str, Enum, metaclass=_CaseInsensitiveEnumMeta): """Reflects the deletion recovery level currently in effect for keys in the current vault. If it contains 'Purgeable' the key can be permanently deleted by a privileged user; otherwise, only the system can purge the key, at the end of the retention interval. @@ -899,7 +897,7 @@ class DeletionRecoveryLevel(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)) #: that the subscription itself cannot be cancelled. CUSTOMIZED_RECOVERABLE_PROTECTED_SUBSCRIPTION = "CustomizedRecoverable+ProtectedSubscription" -class JsonWebKeyCurveName(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): +class JsonWebKeyCurveName(str, Enum, metaclass=_CaseInsensitiveEnumMeta): """Elliptic curve name. For valid values, see JsonWebKeyCurveName. """ @@ -912,7 +910,7 @@ class JsonWebKeyCurveName(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): #: The SECG SECP256K1 elliptic curve. P256_K = "P-256K" -class JsonWebKeyEncryptionAlgorithm(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): +class JsonWebKeyEncryptionAlgorithm(str, Enum, metaclass=_CaseInsensitiveEnumMeta): """algorithm identifier """ @@ -920,7 +918,7 @@ class JsonWebKeyEncryptionAlgorithm(with_metaclass(_CaseInsensitiveEnumMeta, str RSA_OAEP256 = "RSA-OAEP-256" RSA1_5 = "RSA1_5" -class JsonWebKeyOperation(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): +class JsonWebKeyOperation(str, Enum, metaclass=_CaseInsensitiveEnumMeta): """JSON web key operations. For more information, see JsonWebKeyOperation. """ @@ -932,7 +930,7 @@ class JsonWebKeyOperation(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): UNWRAP_KEY = "unwrapKey" IMPORT_ENUM = "import" -class JsonWebKeySignatureAlgorithm(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): +class JsonWebKeySignatureAlgorithm(str, Enum, metaclass=_CaseInsensitiveEnumMeta): """The signing/verification algorithm identifier. For more information on possible algorithm types, see JsonWebKeySignatureAlgorithm. """ @@ -963,7 +961,7 @@ class JsonWebKeySignatureAlgorithm(with_metaclass(_CaseInsensitiveEnumMeta, str, #: ECDSA using P-256K and SHA-256, as described in https://tools.ietf.org/html/rfc7518. ES256_K = "ES256K" -class JsonWebKeyType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): +class JsonWebKeyType(str, Enum, metaclass=_CaseInsensitiveEnumMeta): """JsonWebKey Key Type (kty), as defined in https://tools.ietf.org/html/draft-ietf-jose-json-web-algorithms-40. """ diff --git a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/_shared/client_base.py b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/_shared/client_base.py index e870b4d56cbd..954a2d4b9560 100644 --- a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/_shared/client_base.py +++ b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/_shared/client_base.py @@ -5,7 +5,6 @@ # pylint:skip-file (avoids crash due to six.with_metaclass https://github.com/PyCQA/astroid/issues/713) from typing import TYPE_CHECKING from enum import Enum -from six import with_metaclass from azure.core import CaseInsensitiveEnumMeta from azure.core.pipeline.policies import HttpLoggingPolicy @@ -20,7 +19,7 @@ from azure.core.credentials import TokenCredential -class ApiVersion(with_metaclass(CaseInsensitiveEnumMeta, str, Enum)): +class ApiVersion(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Key Vault API versions supported by this package""" #: this is the default version diff --git a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_client.py b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_client.py index 913d559f4f1e..e60c81369abb 100644 --- a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_client.py +++ b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_client.py @@ -5,7 +5,6 @@ import logging from typing import TYPE_CHECKING, cast -import six from azure.core.exceptions import HttpResponseError from azure.core.tracing.decorator import distributed_trace @@ -115,7 +114,7 @@ def __init__(self, key, credential, **kwargs): if key.properties._attributes: # pylint:disable=protected-access self._not_before = key.properties.not_before self._expires_on = key.properties.expires_on - elif isinstance(key, six.string_types): + elif isinstance(key, str): self._key = None self._key_id = parse_key_vault_id(key) if self._key_id.version is None: @@ -131,7 +130,7 @@ def __init__(self, key, credential, **kwargs): self._local_provider = get_local_cryptography_provider(cast(JsonWebKey, self._key)) self._initialized = True except Exception as ex: # pylint:disable=broad-except - six.raise_from(ValueError("The provided jwk is not valid for local cryptography"), ex) + raise ValueError("The provided jwk is not valid for local cryptography") from ex else: self._local_provider = NoLocalCryptography() self._initialized = False diff --git a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/key.py b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/key.py index 2a04602ba8f1..18665efeecce 100644 --- a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/key.py +++ b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/key.py @@ -4,7 +4,6 @@ # ------------------------------------ from abc import ABCMeta, abstractmethod -from six import with_metaclass from .algorithm import Algorithm try: @@ -16,7 +15,7 @@ # pylint:disable=unused-import from typing import Any, FrozenSet -class Key(with_metaclass(ABCMeta, object)): +class Key(object, metaclass=ABCMeta): _supported_encryption_algorithms = frozenset([]) # type: FrozenSet[Any] _supported_key_wrap_algorithms = frozenset([]) # type: FrozenSet[Any] _supported_signature_algorithms = frozenset([]) # type: FrozenSet[Any] diff --git a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/transform.py b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/transform.py index 039aece0f464..3a24f7ab1a7f 100644 --- a/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/transform.py +++ b/sdk/keyvault/azure-keyvault-keys/azure/keyvault/keys/crypto/_internal/transform.py @@ -4,10 +4,9 @@ # ------------------------------------ from abc import ABCMeta, abstractmethod -from six import with_metaclass -class CryptoTransform(with_metaclass(ABCMeta, object)): +class CryptoTransform(object, metaclass=ABCMeta): def __init__(self, key): self._key = key @@ -36,13 +35,13 @@ def finalize(self): raise NotImplementedError() -class AuthenticatedCryptoTransform(with_metaclass(ABCMeta, object)): +class AuthenticatedCryptoTransform(object, metaclass=ABCMeta): @abstractmethod def tag(self): raise NotImplementedError() -class SignatureTransform(with_metaclass(ABCMeta, object)): +class SignatureTransform(object, metaclass=ABCMeta): @abstractmethod def sign(self, digest): raise NotImplementedError() @@ -52,7 +51,7 @@ def verify(self, digest, signature): raise NotImplementedError() -class DigestTransform(with_metaclass(ABCMeta, object)): +class DigestTransform(object, metaclass=ABCMeta): @abstractmethod def update(self, data): raise NotImplementedError() diff --git a/sdk/keyvault/azure-keyvault-keys/setup.py b/sdk/keyvault/azure-keyvault-keys/setup.py index bc99759005cd..122c9f700c5a 100644 --- a/sdk/keyvault/azure-keyvault-keys/setup.py +++ b/sdk/keyvault/azure-keyvault-keys/setup.py @@ -70,6 +70,5 @@ "cryptography>=2.1.4", "msrest>=0.7.1", "azure-common~=1.1", - "six>=1.12.0" ], ) diff --git a/sdk/keyvault/azure-keyvault-keys/tests/_shared/helpers.py b/sdk/keyvault/azure-keyvault-keys/tests/_shared/helpers.py index 8df36215388e..4ba9fca7c32b 100644 --- a/sdk/keyvault/azure-keyvault-keys/tests/_shared/helpers.py +++ b/sdk/keyvault/azure-keyvault-keys/tests/_shared/helpers.py @@ -3,7 +3,7 @@ # Licensed under the MIT License. # ------------------------------------ import json -import six +import urllib try: from unittest import mock @@ -47,7 +47,7 @@ def add_discrepancy(name, expected, actual): if self.url_substring and self.url_substring not in request.url: add_discrepancy("url substring", self.url_substring, request.url) - parsed = six.moves.urllib_parse.urlparse(request.url) + parsed = urllib.parse.urlparse(request.url) if self.authority and parsed.netloc != self.authority: add_discrepancy("authority", self.authority, parsed.netloc) diff --git a/sdk/keyvault/azure-keyvault-keys/tests/_shared/json_attribute_matcher.py b/sdk/keyvault/azure-keyvault-keys/tests/_shared/json_attribute_matcher.py index bf79ad588082..e0514b612188 100644 --- a/sdk/keyvault/azure-keyvault-keys/tests/_shared/json_attribute_matcher.py +++ b/sdk/keyvault/azure-keyvault-keys/tests/_shared/json_attribute_matcher.py @@ -4,8 +4,6 @@ # ------------------------------------ import json -import six - _has_json_body = lambda req: req.body and "json" in req.headers.get("Content-Type", "") @@ -13,6 +11,6 @@ def json_attribute_matcher(r1, r2): """Tests whether two vcr.py requests have JSON content with identical attributes (ignoring values).""" if _has_json_body(r1) and _has_json_body(r2): - c1 = json.loads(six.ensure_str(r1.body)) - c2 = json.loads(six.ensure_str(r2.body)) + c1 = json.loads(str(r1.body)) + c2 = json.loads(str(r2.body)) assert sorted(c1.keys()) == sorted(c2.keys()) diff --git a/sdk/keyvault/azure-keyvault-keys/tests/test_key_client.py b/sdk/keyvault/azure-keyvault-keys/tests/test_key_client.py index a72ba573f4d8..104e31ea7a08 100644 --- a/sdk/keyvault/azure-keyvault-keys/tests/test_key_client.py +++ b/sdk/keyvault/azure-keyvault-keys/tests/test_key_client.py @@ -25,7 +25,6 @@ from azure.keyvault.keys._generated.v7_3.models import KeyRotationPolicy as _KeyRotationPolicy from dateutil import parser as date_parse from devtools_testutils import recorded_by_proxy, set_bodiless_matcher -from six import byte2int from _shared.test_case import KeyVaultTestCase from _test_case import KeysClientPreparer, get_attestation_token, get_decorator, get_release_policy, is_public_cloud @@ -254,7 +253,7 @@ def test_rsa_public_exponent(self, client, **kwargs): key_name = self.get_resource_name("rsa-key") key = self._create_rsa_key(client, key_name, hardware_protected=True, public_exponent=17) - public_exponent = byte2int(key.key.e) + public_exponent = key.key.e[0] assert public_exponent == 17 @pytest.mark.parametrize("api_version,is_hsm",all_api_versions) diff --git a/sdk/keyvault/azure-keyvault-keys/tests/test_keys_async.py b/sdk/keyvault/azure-keyvault-keys/tests/test_keys_async.py index a06c7f550c8b..9ec834dd51ed 100644 --- a/sdk/keyvault/azure-keyvault-keys/tests/test_keys_async.py +++ b/sdk/keyvault/azure-keyvault-keys/tests/test_keys_async.py @@ -22,7 +22,6 @@ ) from azure.keyvault.keys.aio import KeyClient import pytest -from six import byte2int from _shared.test_case_async import KeyVaultTestCase from _async_test_case import get_attestation_token, get_decorator, get_release_policy, is_public_cloud, AsyncKeysClientPreparer @@ -250,7 +249,7 @@ async def test_rsa_public_exponent(self, client, **kwargs): key_name = self.get_resource_name("rsa-key") key = await self._create_rsa_key(client, key_name, hardware_protected=True, public_exponent=17) - public_exponent = byte2int(key.key.e) + public_exponent = key.key.e[0] assert public_exponent == 17 @pytest.mark.asyncio diff --git a/sdk/keyvault/azure-keyvault-secrets/azure/keyvault/secrets/_generated_models.py b/sdk/keyvault/azure-keyvault-secrets/azure/keyvault/secrets/_generated_models.py index d3310ca8a80a..19e1c3f31f4f 100644 --- a/sdk/keyvault/azure-keyvault-secrets/azure/keyvault/secrets/_generated_models.py +++ b/sdk/keyvault/azure-keyvault-secrets/azure/keyvault/secrets/_generated_models.py @@ -3,11 +3,8 @@ # Copyright (c) Microsoft Corporation. All rights reserved. # Licensed under the MIT License. See License.txt in the project root for license information. # -------------------------------------------------------------------------- -# pylint: skip-file (avoids crash due to six.with_metaclass https://github.com/PyCQA/astroid/issues/713) - from enum import Enum, EnumMeta import msrest.serialization -from six import with_metaclass class Attributes(msrest.serialization.Model): @@ -584,7 +581,7 @@ def __getattr__(cls, name): raise AttributeError(name) -class DeletionRecoveryLevel(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): +class DeletionRecoveryLevel(str, Enum, metaclass=_CaseInsensitiveEnumMeta): """Reflects the deletion recovery level currently in effect for secrets in the current vault. If it contains 'Purgeable', the secret can be permanently deleted by a privileged user; otherwise, only the system can purge the secret, at the end of the retention interval. diff --git a/sdk/keyvault/azure-keyvault-secrets/azure/keyvault/secrets/_shared/client_base.py b/sdk/keyvault/azure-keyvault-secrets/azure/keyvault/secrets/_shared/client_base.py index e870b4d56cbd..02510b7c8762 100644 --- a/sdk/keyvault/azure-keyvault-secrets/azure/keyvault/secrets/_shared/client_base.py +++ b/sdk/keyvault/azure-keyvault-secrets/azure/keyvault/secrets/_shared/client_base.py @@ -2,10 +2,8 @@ # Copyright (c) Microsoft Corporation. # Licensed under the MIT License. # ------------------------------------ -# pylint:skip-file (avoids crash due to six.with_metaclass https://github.com/PyCQA/astroid/issues/713) from typing import TYPE_CHECKING from enum import Enum -from six import with_metaclass from azure.core import CaseInsensitiveEnumMeta from azure.core.pipeline.policies import HttpLoggingPolicy @@ -20,7 +18,7 @@ from azure.core.credentials import TokenCredential -class ApiVersion(with_metaclass(CaseInsensitiveEnumMeta, str, Enum)): +class ApiVersion(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Key Vault API versions supported by this package""" #: this is the default version diff --git a/sdk/keyvault/azure-keyvault-secrets/setup.py b/sdk/keyvault/azure-keyvault-secrets/setup.py index 54b0d9e76cb5..3ac7ceb416f1 100644 --- a/sdk/keyvault/azure-keyvault-secrets/setup.py +++ b/sdk/keyvault/azure-keyvault-secrets/setup.py @@ -48,7 +48,6 @@ "Programming Language :: Python", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", @@ -65,11 +64,10 @@ "azure.keyvault", ] ), - python_requires=">=3.6", + python_requires=">=3.7", install_requires=[ - "azure-core<2.0.0,>=1.20.0", - "msrest>=0.6.21", + "azure-core<2.0.0,>=1.24.0", + "msrest>=0.7.1", "azure-common~=1.1", - "six>=1.11.0", ], ) diff --git a/sdk/keyvault/azure-keyvault-secrets/tests/_shared/helpers.py b/sdk/keyvault/azure-keyvault-secrets/tests/_shared/helpers.py index 8df36215388e..4ba9fca7c32b 100644 --- a/sdk/keyvault/azure-keyvault-secrets/tests/_shared/helpers.py +++ b/sdk/keyvault/azure-keyvault-secrets/tests/_shared/helpers.py @@ -3,7 +3,7 @@ # Licensed under the MIT License. # ------------------------------------ import json -import six +import urllib try: from unittest import mock @@ -47,7 +47,7 @@ def add_discrepancy(name, expected, actual): if self.url_substring and self.url_substring not in request.url: add_discrepancy("url substring", self.url_substring, request.url) - parsed = six.moves.urllib_parse.urlparse(request.url) + parsed = urllib.parse.urlparse(request.url) if self.authority and parsed.netloc != self.authority: add_discrepancy("authority", self.authority, parsed.netloc) diff --git a/sdk/keyvault/azure-keyvault-secrets/tests/_shared/json_attribute_matcher.py b/sdk/keyvault/azure-keyvault-secrets/tests/_shared/json_attribute_matcher.py index bf79ad588082..e0514b612188 100644 --- a/sdk/keyvault/azure-keyvault-secrets/tests/_shared/json_attribute_matcher.py +++ b/sdk/keyvault/azure-keyvault-secrets/tests/_shared/json_attribute_matcher.py @@ -4,8 +4,6 @@ # ------------------------------------ import json -import six - _has_json_body = lambda req: req.body and "json" in req.headers.get("Content-Type", "") @@ -13,6 +11,6 @@ def json_attribute_matcher(r1, r2): """Tests whether two vcr.py requests have JSON content with identical attributes (ignoring values).""" if _has_json_body(r1) and _has_json_body(r2): - c1 = json.loads(six.ensure_str(r1.body)) - c2 = json.loads(six.ensure_str(r2.body)) + c1 = json.loads(str(r1.body)) + c2 = json.loads(str(r2.body)) assert sorted(c1.keys()) == sorted(c2.keys()) From ed862ac57a333521d84ee1dffdecc82ad50215d2 Mon Sep 17 00:00:00 2001 From: Wonhyeong Seo Date: Sun, 11 Sep 2022 17:24:25 +0900 Subject: [PATCH 3/5] Update READMEs and CHANGELOGs --- sdk/keyvault/azure-keyvault-administration/CHANGELOG.md | 2 +- sdk/keyvault/azure-keyvault-administration/README.md | 1 + sdk/keyvault/azure-keyvault-certificates/CHANGELOG.md | 1 + sdk/keyvault/azure-keyvault-certificates/README.md | 1 + sdk/keyvault/azure-keyvault-secrets/CHANGELOG.md | 1 + sdk/keyvault/azure-keyvault-secrets/README.md | 1 + 6 files changed, 6 insertions(+), 1 deletion(-) diff --git a/sdk/keyvault/azure-keyvault-administration/CHANGELOG.md b/sdk/keyvault/azure-keyvault-administration/CHANGELOG.md index 17b6b2ab92ab..dbda50095c79 100644 --- a/sdk/keyvault/azure-keyvault-administration/CHANGELOG.md +++ b/sdk/keyvault/azure-keyvault-administration/CHANGELOG.md @@ -11,13 +11,13 @@ ### Other Changes - Updated minimum `azure-core` version to 1.24.0 - Updated minimum `msrest` version to 0.7.1 -- Python 3.6 is no longer supported. Please use Python version 3.7 or later. ## 4.1.1 (2022-08-11) ### Other Changes - Documentation improvements ([#25039](https://github.com/Azure/azure-sdk-for-python/issues/25039)) +- Python 3.6 is no longer supported. Please use Python version 3.7 or later. ## 4.1.0 (2022-03-28) diff --git a/sdk/keyvault/azure-keyvault-administration/README.md b/sdk/keyvault/azure-keyvault-administration/README.md index 3422d69a07b9..cf804e1913dc 100644 --- a/sdk/keyvault/azure-keyvault-administration/README.md +++ b/sdk/keyvault/azure-keyvault-administration/README.md @@ -19,6 +19,7 @@ create, manage, and deploy public and private SSL/TLS certificates ## _Disclaimer_ _Azure SDK Python packages support for Python 2.7 has ended 01 January 2022. For more information and questions, please refer to https://github.com/Azure/azure-sdk-for-python/issues/20691_. +_Python 3.7 or later is required to use this package. For more details, please refer to [Azure SDK for Python version support policy](https://github.com/Azure/azure-sdk-for-python/wiki/Azure-SDKs-Python-version-support-policy)._ ## Getting started ### Install packages diff --git a/sdk/keyvault/azure-keyvault-certificates/CHANGELOG.md b/sdk/keyvault/azure-keyvault-certificates/CHANGELOG.md index d8352a49cdaf..e0ba03f9e3d4 100644 --- a/sdk/keyvault/azure-keyvault-certificates/CHANGELOG.md +++ b/sdk/keyvault/azure-keyvault-certificates/CHANGELOG.md @@ -15,6 +15,7 @@ ### Other Changes - Documentation improvements ([#25039](https://github.com/Azure/azure-sdk-for-python/issues/25039)) +- Python 3.6 is no longer supported. Please use Python version 3.7 or later. ## 4.5.0b1 (2022-06-07) diff --git a/sdk/keyvault/azure-keyvault-certificates/README.md b/sdk/keyvault/azure-keyvault-certificates/README.md index e07cc4387d0a..d9539f007db0 100644 --- a/sdk/keyvault/azure-keyvault-certificates/README.md +++ b/sdk/keyvault/azure-keyvault-certificates/README.md @@ -14,6 +14,7 @@ and other secrets ## _Disclaimer_ _Azure SDK Python packages support for Python 2.7 has ended 01 January 2022. For more information and questions, please refer to https://github.com/Azure/azure-sdk-for-python/issues/20691_. +_Python 3.7 or later is required to use this package. For more details, please refer to [Azure SDK for Python version support policy](https://github.com/Azure/azure-sdk-for-python/wiki/Azure-SDKs-Python-version-support-policy)._ ## Getting started ### Install the package diff --git a/sdk/keyvault/azure-keyvault-secrets/CHANGELOG.md b/sdk/keyvault/azure-keyvault-secrets/CHANGELOG.md index c13d39cd2fb6..26c90a74bb3a 100644 --- a/sdk/keyvault/azure-keyvault-secrets/CHANGELOG.md +++ b/sdk/keyvault/azure-keyvault-secrets/CHANGELOG.md @@ -15,6 +15,7 @@ ### Other Changes - Documentation improvements ([#25039](https://github.com/Azure/azure-sdk-for-python/issues/25039)) +- Python 3.6 is no longer supported. Please use Python version 3.7 or later. ## 4.5.0b1 (2022-06-07) diff --git a/sdk/keyvault/azure-keyvault-secrets/README.md b/sdk/keyvault/azure-keyvault-secrets/README.md index 5d6f0a9de7b9..cbc375cfde58 100644 --- a/sdk/keyvault/azure-keyvault-secrets/README.md +++ b/sdk/keyvault/azure-keyvault-secrets/README.md @@ -17,6 +17,7 @@ create, manage, and deploy public and private SSL/TLS certificates ## _Disclaimer_ _Azure SDK Python packages support for Python 2.7 has ended 01 January 2022. For more information and questions, please refer to https://github.com/Azure/azure-sdk-for-python/issues/20691_. +_Python 3.7 or later is required to use this package. For more details, please refer to [Azure SDK for Python version support policy](https://github.com/Azure/azure-sdk-for-python/wiki/Azure-SDKs-Python-version-support-policy)._ ## Getting started ### Install packages From 3aa7cdc6fb31e046b1ce3a0b1341638dc46f4c59 Mon Sep 17 00:00:00 2001 From: Wonhyeong Seo Date: Sun, 11 Sep 2022 17:27:54 +0900 Subject: [PATCH 4/5] Update prerequesites section --- sdk/keyvault/azure-keyvault-administration/README.md | 2 +- sdk/keyvault/azure-keyvault-certificates/README.md | 2 +- sdk/keyvault/azure-keyvault-secrets/README.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/sdk/keyvault/azure-keyvault-administration/README.md b/sdk/keyvault/azure-keyvault-administration/README.md index cf804e1913dc..eeb2f65a9f71 100644 --- a/sdk/keyvault/azure-keyvault-administration/README.md +++ b/sdk/keyvault/azure-keyvault-administration/README.md @@ -33,7 +33,7 @@ authentication as demonstrated below. ### Prerequisites * An [Azure subscription][azure_sub] -* Python 3.6 or later +* Python 3.7 or later * An existing [Key Vault Managed HSM][managed_hsm]. If you need to create one, you can do so using the Azure CLI by following the steps in [this document][managed_hsm_cli]. ### Authenticate the client diff --git a/sdk/keyvault/azure-keyvault-certificates/README.md b/sdk/keyvault/azure-keyvault-certificates/README.md index d9539f007db0..000218f276ae 100644 --- a/sdk/keyvault/azure-keyvault-certificates/README.md +++ b/sdk/keyvault/azure-keyvault-certificates/README.md @@ -28,7 +28,7 @@ authentication as demonstrated below. ### Prerequisites * An [Azure subscription][azure_sub] -* Python 3.6 or later +* Python 3.7 or later * An existing [Azure Key Vault][azure_keyvault]. If you need to create one, you can do so using the Azure CLI by following the steps in [this document][azure_keyvault_cli]. ### Authenticate the client diff --git a/sdk/keyvault/azure-keyvault-secrets/README.md b/sdk/keyvault/azure-keyvault-secrets/README.md index cbc375cfde58..a50cb2d63b56 100644 --- a/sdk/keyvault/azure-keyvault-secrets/README.md +++ b/sdk/keyvault/azure-keyvault-secrets/README.md @@ -31,7 +31,7 @@ authentication as demonstrated below. ### Prerequisites * An [Azure subscription][azure_sub] -* Python 3.6 or later +* Python 3.7 or later * An existing [Azure Key Vault][azure_keyvault]. If you need to create one, you can do so using the Azure CLI by following the steps in [this document][azure_keyvault_cli]. ### Authenticate the client From 104c64e250f2d3c8c56f4cb00a155767fe84ca88 Mon Sep 17 00:00:00 2001 From: Wonhyeong Seo Date: Sat, 24 Sep 2022 12:51:21 +0900 Subject: [PATCH 5/5] Move python 3.6 drop alerts to newest unreleased version --- sdk/keyvault/azure-keyvault-administration/CHANGELOG.md | 2 +- sdk/keyvault/azure-keyvault-certificates/CHANGELOG.md | 2 +- sdk/keyvault/azure-keyvault-secrets/CHANGELOG.md | 2 +- sdk/keyvault/azure-mgmt-keyvault/CHANGELOG.md | 9 +++++---- 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/sdk/keyvault/azure-keyvault-administration/CHANGELOG.md b/sdk/keyvault/azure-keyvault-administration/CHANGELOG.md index e8771d4d24d6..61fac402806d 100644 --- a/sdk/keyvault/azure-keyvault-administration/CHANGELOG.md +++ b/sdk/keyvault/azure-keyvault-administration/CHANGELOG.md @@ -11,6 +11,7 @@ ### Other Changes - Updated minimum `azure-core` version to 1.24.0 - Updated minimum `msrest` version to 0.7.1 +- Python 3.6 is no longer supported. Please use Python version 3.7 or later. ## 4.2.0 (2022-09-19) @@ -24,7 +25,6 @@ ### Other Changes - Documentation improvements ([#25039](https://github.com/Azure/azure-sdk-for-python/issues/25039)) -- Python 3.6 is no longer supported. Please use Python version 3.7 or later. ## 4.1.0 (2022-03-28) diff --git a/sdk/keyvault/azure-keyvault-certificates/CHANGELOG.md b/sdk/keyvault/azure-keyvault-certificates/CHANGELOG.md index a1db56a05e27..b246dff3535c 100644 --- a/sdk/keyvault/azure-keyvault-certificates/CHANGELOG.md +++ b/sdk/keyvault/azure-keyvault-certificates/CHANGELOG.md @@ -9,6 +9,7 @@ ### Bugs Fixed ### Other Changes +- Python 3.6 is no longer supported. Please use Python version 3.7 or later. ## 4.6.0 (2022-09-19) @@ -22,7 +23,6 @@ ### Other Changes - Documentation improvements ([#25039](https://github.com/Azure/azure-sdk-for-python/issues/25039)) -- Python 3.6 is no longer supported. Please use Python version 3.7 or later. ## 4.5.0b1 (2022-06-07) diff --git a/sdk/keyvault/azure-keyvault-secrets/CHANGELOG.md b/sdk/keyvault/azure-keyvault-secrets/CHANGELOG.md index b65604ea647c..a25a58dce816 100644 --- a/sdk/keyvault/azure-keyvault-secrets/CHANGELOG.md +++ b/sdk/keyvault/azure-keyvault-secrets/CHANGELOG.md @@ -9,6 +9,7 @@ ### Bugs Fixed ### Other Changes +- Python 3.6 is no longer supported. Please use Python version 3.7 or later. ## 4.6.0 (2022-09-19) @@ -22,7 +23,6 @@ ### Other Changes - Documentation improvements ([#25039](https://github.com/Azure/azure-sdk-for-python/issues/25039)) -- Python 3.6 is no longer supported. Please use Python version 3.7 or later. ## 4.5.0b1 (2022-06-07) diff --git a/sdk/keyvault/azure-mgmt-keyvault/CHANGELOG.md b/sdk/keyvault/azure-mgmt-keyvault/CHANGELOG.md index 09eb0b6bfccd..88b1e600719c 100644 --- a/sdk/keyvault/azure-mgmt-keyvault/CHANGELOG.md +++ b/sdk/keyvault/azure-mgmt-keyvault/CHANGELOG.md @@ -1,5 +1,10 @@ # Release History +## 10.2.0b1 (Unreleased) +### Other Changes + + - Python 3.6 is no longer supported. Please use Python version 3.7 or later. + ## 10.1.0 (2022-08-10) ### Features Added @@ -12,10 +17,6 @@ - Model MHSMPrivateEndpointConnectionItem has a new parameter etag - Model MHSMPrivateEndpointConnectionItem has a new parameter id -### Other Changes - - - Python 3.6 is no longer supported. Please use Python version 3.7 or later. - ## 10.0.0 (2022-05-24) **Breaking changes**