From 5abdd24c5715e9bf917897748da7040fa08e8a5d Mon Sep 17 00:00:00 2001 From: "Gregory P. Smith" Date: Sun, 22 Dec 2024 01:47:41 -0800 Subject: [PATCH] gh-126664: revert: Use `else` instead of `finally` in docs explaining "with" (GH-128169) Revert "gh-126664: Use `else` instead of `finally` in "The with statement" documentation. (GH-126665)" This reverts commit 25257d61cfccc3b4189f96390a5c4db73fd5302c. (cherry picked from commit 228f275737615cc9be713a8c3f9325b359bf8aec) Co-authored-by: Gregory P. Smith --- Doc/reference/compound_stmts.rst | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Doc/reference/compound_stmts.rst b/Doc/reference/compound_stmts.rst index 69c47686dd6784..c7e43ef773907a 100644 --- a/Doc/reference/compound_stmts.rst +++ b/Doc/reference/compound_stmts.rst @@ -534,15 +534,18 @@ is semantically equivalent to:: enter = type(manager).__enter__ exit = type(manager).__exit__ value = enter(manager) + hit_except = False try: TARGET = value SUITE except: + hit_except = True if not exit(manager, *sys.exc_info()): raise - else: - exit(manager, None, None, None) + finally: + if not hit_except: + exit(manager, None, None, None) With more than one item, the context managers are processed as if multiple :keyword:`with` statements were nested::