summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGeorg Brandl <georg@python.org>2006-11-16 16:50:59 (GMT)
committerGeorg Brandl <georg@python.org>2006-11-16 16:50:59 (GMT)
commit540821183b0a6105d5cf262db837332b14e0e259 (patch)
treee502037389efb145f06efb27e88bb98a1c80bdb1
parentadff8eb8d69718023e1443a8835bf5b99c87d5d5 (diff)
downloadcpython-540821183b0a6105d5cf262db837332b14e0e259.zip
cpython-540821183b0a6105d5cf262db837332b14e0e259.tar.gz
cpython-540821183b0a6105d5cf262db837332b14e0e259.tar.bz2
Bug #1597824: return the registered function from atexit.register()
to facilitate usage as a decorator.
-rw-r--r--Doc/lib/libatexit.tex16
-rw-r--r--Lib/atexit.py3
-rw-r--r--Misc/NEWS3
3 files changed, 22 insertions, 0 deletions
diff --git a/Doc/lib/libatexit.tex b/Doc/lib/libatexit.tex
index 33dc7dd..9798b57 100644
--- a/Doc/lib/libatexit.tex
+++ b/Doc/lib/libatexit.tex
@@ -44,6 +44,10 @@ If an exception is raised during execution of the exit handlers, a
traceback is printed (unless \exception{SystemExit} is raised) and the
exception information is saved. After all exit handlers have had a
chance to run the last exception to be raised is re-raised.
+
+\versionchanged[This function now returns \var{func} which makes it
+ possible to use it as a decorator without binding the
+ original name to \code{None}]{2.6}
\end{funcdesc}
@@ -92,3 +96,15 @@ atexit.register(goodbye, 'Donny', 'nice')
# or:
atexit.register(goodbye, adjective='nice', name='Donny')
\end{verbatim}
+
+Usage as a decorator:
+
+\begin{verbatim}
+import atexit
+
+@atexit.register
+def goodbye():
+ print "You are now leaving the Python sector."
+\end{verbatim}
+
+This obviously only works with functions that don't take arguments.
diff --git a/Lib/atexit.py b/Lib/atexit.py
index c9f4cc6..93fddf7 100644
--- a/Lib/atexit.py
+++ b/Lib/atexit.py
@@ -40,8 +40,11 @@ def register(func, *targs, **kargs):
func - function to be called at exit
targs - optional arguments to pass to func
kargs - optional keyword arguments to pass to func
+
+ func is returned to facilitate usage as a decorator.
"""
_exithandlers.append((func, targs, kargs))
+ return func
if hasattr(sys, "exitfunc"):
# Assume it's another registered exit function - append it to our list
diff --git a/Misc/NEWS b/Misc/NEWS
index 2d4e31d..32cdb1f 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -98,6 +98,9 @@ Core and builtins
Library
-------
+- Bug #1597824: return the registered function from atexit.register()
+ to facilitate usage as a decorator.
+
- Patch #1360200: Use unmangled_version RPM spec field to deal with
file name mangling.