]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-91539: Small performance improvement of urrlib.request.getproxies_environment...
authorRaphaël Marinier <raphael.marinier@gmail.com>
Mon, 15 Jan 2024 23:45:01 +0000 (00:45 +0100)
committerGitHub <noreply@github.com>
Mon, 15 Jan 2024 23:45:01 +0000 (15:45 -0800)
 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.

Lib/urllib/request.py
Misc/NEWS.d/next/Library/2023-09-01-15-33-18.gh-issue-91539.xoNLEI.rst [new file with mode: 0644]

index 1d03259b918c33ed4b0e38c3e5432d8501166e47..bca594420f6d9d2a44967c9fde1872d05a206d11 100644 (file)
@@ -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 (file)
index 0000000..a1af479
--- /dev/null
@@ -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.