From f66107937e49b066ed14082062942dfab96eae63 Mon Sep 17 00:00:00 2001 From: Michael Droettboom Date: Wed, 5 Oct 2022 16:20:48 -0400 Subject: [PATCH 1/2] Python 3.11: Remove uses of inspect.getargspec inspect.getargspec has been deprecated since 3.0 in favor of its replacement inspect.getfullargspec. --- .../azure/cli/testsdk/scenario_tests/utilities.py | 6 +++--- .../azure_keyvault_t1/key_vault_authentication.py | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/azure-cli-testsdk/azure/cli/testsdk/scenario_tests/utilities.py b/src/azure-cli-testsdk/azure/cli/testsdk/scenario_tests/utilities.py index 98be0bccebc..c45e6e97a95 100644 --- a/src/azure-cli-testsdk/azure/cli/testsdk/scenario_tests/utilities.py +++ b/src/azure-cli-testsdk/azure/cli/testsdk/scenario_tests/utilities.py @@ -70,9 +70,9 @@ def trim_kwargs_from_test_function(fn, kwargs): # the next function is the actual test function. the kwargs need to be trimmed so # that parameters which are not required will not be passed to it. if not is_preparer_func(fn): - args, _, kw, _ = inspect.getargspec(fn) # pylint: disable=deprecated-method - if kw is None: - args = set(args) + spec = inspect.getfullargspec(fn) + if spec.varkw is None: + args = set(spec.args) for key in [k for k in kwargs if k not in args]: del kwargs[key] diff --git a/src/azure-cli/azure/cli/command_modules/keyvault/vendored_sdks/azure_keyvault_t1/key_vault_authentication.py b/src/azure-cli/azure/cli/command_modules/keyvault/vendored_sdks/azure_keyvault_t1/key_vault_authentication.py index 095645afe07..523c218545f 100644 --- a/src/azure-cli/azure/cli/command_modules/keyvault/vendored_sdks/azure_keyvault_t1/key_vault_authentication.py +++ b/src/azure-cli/azure/cli/command_modules/keyvault/vendored_sdks/azure_keyvault_t1/key_vault_authentication.py @@ -59,7 +59,7 @@ def __init__(self, authorization_callback): # for backwards compatibility we need to support callbacks which don't accept the scheme def _auth_callback_compat(self, server, resource, scope, scheme): return self._user_callback(server, resource, scope) \ - if len(inspect.getargspec(self._user_callback).args) == 3 \ + if len(inspect.getfullargspec(self._user_callback).args) == 3 \ else self._user_callback(server, resource, scope, scheme) def __call__(self, request): From 209b0d586becbd1e833213eee9dce5a9329d7071 Mon Sep 17 00:00:00 2001 From: Michael Droettboom Date: Thu, 6 Oct 2022 10:39:41 -0400 Subject: [PATCH 2/2] Use inspect.signature instead --- .../azure/cli/testsdk/scenario_tests/utilities.py | 7 ++++--- .../azure_keyvault_t1/key_vault_authentication.py | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/azure-cli-testsdk/azure/cli/testsdk/scenario_tests/utilities.py b/src/azure-cli-testsdk/azure/cli/testsdk/scenario_tests/utilities.py index c45e6e97a95..976c22f76de 100644 --- a/src/azure-cli-testsdk/azure/cli/testsdk/scenario_tests/utilities.py +++ b/src/azure-cli-testsdk/azure/cli/testsdk/scenario_tests/utilities.py @@ -70,9 +70,10 @@ def trim_kwargs_from_test_function(fn, kwargs): # the next function is the actual test function. the kwargs need to be trimmed so # that parameters which are not required will not be passed to it. if not is_preparer_func(fn): - spec = inspect.getfullargspec(fn) - if spec.varkw is None: - args = set(spec.args) + sig = inspect.signature(fn) + if not any(param.kind == inspect.Parameter.VAR_KEYWORD + for param in sig.parameters.values()): + args = set(sig.parameters.keys()) for key in [k for k in kwargs if k not in args]: del kwargs[key] diff --git a/src/azure-cli/azure/cli/command_modules/keyvault/vendored_sdks/azure_keyvault_t1/key_vault_authentication.py b/src/azure-cli/azure/cli/command_modules/keyvault/vendored_sdks/azure_keyvault_t1/key_vault_authentication.py index 523c218545f..6ac13675915 100644 --- a/src/azure-cli/azure/cli/command_modules/keyvault/vendored_sdks/azure_keyvault_t1/key_vault_authentication.py +++ b/src/azure-cli/azure/cli/command_modules/keyvault/vendored_sdks/azure_keyvault_t1/key_vault_authentication.py @@ -59,7 +59,7 @@ def __init__(self, authorization_callback): # for backwards compatibility we need to support callbacks which don't accept the scheme def _auth_callback_compat(self, server, resource, scope, scheme): return self._user_callback(server, resource, scope) \ - if len(inspect.getfullargspec(self._user_callback).args) == 3 \ + if len(inspect.signature(self._user_callback).parameters) == 3 \ else self._user_callback(server, resource, scope, scheme) def __call__(self, request):