From fe769c72e4f9d613b2ce066325d2fb28317833d5 Mon Sep 17 00:00:00 2001 From: Lumir Balhar Date: Thu, 18 May 2023 14:09:34 +0200 Subject: [PATCH 1/2] Check for cert_file attribute before accessing it In Python 3.12, HTTPSConnection no longer has cert_file attribute so unless something adds it to the subclass, the attribute doesn't exist by default. CPython change: https://github.com/python/cpython/commit/ef0e72b31d22f780d3a165d7d0471806061fe380#diff-3cf29d90eb758d0fe5ec013bbfda9b0bb60be4f7d899583bd5f490a7a5a5dc5f --- distlib/util.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/distlib/util.py b/distlib/util.py index dd01849..ddfc992 100644 --- a/distlib/util.py +++ b/distlib/util.py @@ -1435,7 +1435,7 @@ def connect(self): context = ssl.SSLContext(ssl.PROTOCOL_SSLv23) if hasattr(ssl, 'OP_NO_SSLv2'): context.options |= ssl.OP_NO_SSLv2 - if self.cert_file: + if hasattr(self, "cert_file") and self.cert_file: context.load_cert_chain(self.cert_file, self.key_file) kwargs = {} if self.ca_certs: From 440a7b57b9521ba2eca749e26945eaf16bc7c472 Mon Sep 17 00:00:00 2001 From: Vinay Sajip Date: Wed, 24 May 2023 15:50:44 +0100 Subject: [PATCH 2/2] Use single quotes. --- distlib/util.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/distlib/util.py b/distlib/util.py index ddfc992..d1ec58a 100644 --- a/distlib/util.py +++ b/distlib/util.py @@ -1435,7 +1435,7 @@ def connect(self): context = ssl.SSLContext(ssl.PROTOCOL_SSLv23) if hasattr(ssl, 'OP_NO_SSLv2'): context.options |= ssl.OP_NO_SSLv2 - if hasattr(self, "cert_file") and self.cert_file: + if hasattr(self, 'cert_file') and self.cert_file: context.load_cert_chain(self.cert_file, self.key_file) kwargs = {} if self.ca_certs: