From ee803a8d2ccf50e60d18ca1bb46f7a1cf3db66f5 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Sat, 19 Mar 2016 10:33:25 +0100 Subject: Issue #26567: enhance ResourceWarning example --- Doc/whatsnew/3.6.rst | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/Doc/whatsnew/3.6.rst b/Doc/whatsnew/3.6.rst index b709917..1129cb3 100644 --- a/Doc/whatsnew/3.6.rst +++ b/Doc/whatsnew/3.6.rst @@ -272,24 +272,27 @@ used to try to retrieve the traceback where the detroyed object was allocated. Example with the script ``example.py``:: + import warnings + def func(): - f = open(__file__) - f = None + return open(__file__) - func() + f = func() + f = None Output of the command ``python3.6 -Wd -X tracemalloc=5 example.py``:: - example.py:3: ResourceWarning: unclosed file <...> + example.py:7: ResourceWarning: unclosed file <_io.TextIOWrapper name='example.py' mode='r' encoding='UTF-8'> f = None Object allocated at (most recent call first): - File "example.py", lineno 2 - f = open(__file__) - File "example.py", lineno 5 - func() + File "example.py", lineno 4 + return open(__file__) + File "example.py", lineno 6 + f = func() The "Object allocated at" traceback is new and only displayed if -:mod:`tracemalloc` is tracing Python memory allocations. +:mod:`tracemalloc` is tracing Python memory allocations and if the +:mod:`warnings` was already imported. zipfile -- cgit v0.12