From 1ac54eff7b7427a4470f642a7e827fe0cd5e5472 Mon Sep 17 00:00:00 2001 From: Fabian von Feilitzsch Date: Tue, 22 Nov 2022 09:55:19 -0500 Subject: [PATCH] Only use `usedforsecurity` if supported Fixes #1944 This was only added in Python 3.9, will fall back to the old behavior if `usedforsecurity` is not available. --- kubernetes/base/dynamic/discovery.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/kubernetes/base/dynamic/discovery.py b/kubernetes/base/dynamic/discovery.py index 4acf7cf240..eeac6120e1 100644 --- a/kubernetes/base/dynamic/discovery.py +++ b/kubernetes/base/dynamic/discovery.py @@ -45,7 +45,11 @@ def __init__(self, client, cache_file): default_cache_id = self.client.configuration.host if six.PY3: default_cache_id = default_cache_id.encode('utf-8') - default_cachefile_name = 'osrcp-{0}.json'.format(hashlib.md5(default_cache_id, usedforsecurity=False).hexdigest()) + try: + default_cachefile_name = 'osrcp-{0}.json'.format(hashlib.md5(default_cache_id, usedforsecurity=False).hexdigest()) + except TypeError: + # usedforsecurity is only supported in 3.9+ + default_cachefile_name = 'osrcp-{0}.json'.format(hashlib.md5(default_cache_id).hexdigest()) self.__cache_file = cache_file or os.path.join(tempfile.gettempdir(), default_cachefile_name) self.__init_cache()