From: Raphaƫl Marinier Date: Mon, 15 Jan 2024 23:45:01 +0000 (+0100) Subject: gh-91539: Small performance improvement of urrlib.request.getproxies_environment... X-Git-Tag: v3.13.0a3~36 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5094690efd7f663f2e0c1a2a633d3344a0557095;p=thirdparty%2FPython%2Fcpython.git gh-91539: Small performance improvement of urrlib.request.getproxies_environment() (#108771) Small performance improvement of getproxies_environment() when there are many environment variables. In a benchmark with 5k environment variables not related to proxies, and 5 specifying proxies, we get a 10% walltime improvement. --- diff --git a/Lib/urllib/request.py b/Lib/urllib/request.py index 1d03259b918c..bca594420f6d 100644 --- a/Lib/urllib/request.py +++ b/Lib/urllib/request.py @@ -2490,7 +2490,7 @@ def getproxies_environment(): # select only environment variables which end in (after making lowercase) _proxy proxies = {} environment = [] - for name in os.environ.keys(): + for name in os.environ: # fast screen underscore position before more expensive case-folding if len(name) > 5 and name[-6] == "_" and name[-5:].lower() == "proxy": value = os.environ[name] diff --git a/Misc/NEWS.d/next/Library/2023-09-01-15-33-18.gh-issue-91539.xoNLEI.rst b/Misc/NEWS.d/next/Library/2023-09-01-15-33-18.gh-issue-91539.xoNLEI.rst new file mode 100644 index 000000000000..a1af479459d7 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2023-09-01-15-33-18.gh-issue-91539.xoNLEI.rst @@ -0,0 +1 @@ +Small (10 - 20%) and trivial performance improvement of :func:`urrlib.request.getproxies_environment`, typically useful when there are many environment variables to go over.