Close #13266: Add inspect.unwrap
Initial patch by Daniel Urban and Aaron Iles
diff --git a/Doc/whatsnew/3.4.rst b/Doc/whatsnew/3.4.rst
index 40b8243..b5be568 100644
--- a/Doc/whatsnew/3.4.rst
+++ b/Doc/whatsnew/3.4.rst
@@ -185,6 +185,15 @@
New :func:`functools.singledispatch` decorator: see the :pep:`443`.
+
+inspect
+-------
+
+:func:`~inspect.unwrap` makes it easy to unravel wrapper function chains
+created by :func:`functools.wraps` (and any other API that sets the
+``__wrapped__`` attribute on a wrapper function).
+
+
smtplib
-------
@@ -327,6 +336,5 @@
wrapped attribute set. This means ``__wrapped__`` attributes now correctly
link a stack of decorated functions rather than every ``__wrapped__``
attribute in the chain referring to the innermost function. Introspection
- libraries that assumed the previous behaviour was intentional will need to
- be updated to walk the chain of ``__wrapped__`` attributes to find the
- innermost function.
+ libraries that assumed the previous behaviour was intentional can use
+ :func:`inspect.unwrap` to gain equivalent behaviour.