commit
1d175f7768
@ -22,7 +22,8 @@ is detected, or when :func:`os._exit` is called.
|
|||||||
|
|
||||||
Register *func* as a function to be executed at termination. Any optional
|
Register *func* as a function to be executed at termination. Any optional
|
||||||
arguments that are to be passed to *func* must be passed as arguments to
|
arguments that are to be passed to *func* must be passed as arguments to
|
||||||
:func:`register`.
|
:func:`register`. It is possible to register the same function and arguments
|
||||||
|
more than once.
|
||||||
|
|
||||||
At normal program termination (for instance, if :func:`sys.exit` is called or
|
At normal program termination (for instance, if :func:`sys.exit` is called or
|
||||||
the main module's execution completes), all functions registered are called in
|
the main module's execution completes), all functions registered are called in
|
||||||
@ -35,15 +36,17 @@ is detected, or when :func:`os._exit` is called.
|
|||||||
saved. After all exit handlers have had a chance to run the last exception to
|
saved. After all exit handlers have had a chance to run the last exception to
|
||||||
be raised is re-raised.
|
be raised is re-raised.
|
||||||
|
|
||||||
This function returns *func* which makes it possible to use it as a decorator
|
This function returns *func*, which makes it possible to use it as a
|
||||||
without binding the original name to ``None``.
|
decorator.
|
||||||
|
|
||||||
|
|
||||||
.. function:: unregister(func)
|
.. function:: unregister(func)
|
||||||
|
|
||||||
Remove a function *func* from the list of functions to be run at interpreter-
|
Remove *func* from the list of functions to be run at interpreter
|
||||||
shutdown. After calling :func:`unregister`, *func* is guaranteed not to be
|
shutdown. After calling :func:`unregister`, *func* is guaranteed not to be
|
||||||
called when the interpreter shuts down.
|
called when the interpreter shuts down, even if it was registered more than
|
||||||
|
once. :func:`unregister` silently does nothing if *func* was not previously
|
||||||
|
registered.
|
||||||
|
|
||||||
|
|
||||||
.. seealso::
|
.. seealso::
|
||||||
@ -100,6 +103,4 @@ Usage as a :term:`decorator`::
|
|||||||
def goodbye():
|
def goodbye():
|
||||||
print("You are now leaving the Python sector.")
|
print("You are now leaving the Python sector.")
|
||||||
|
|
||||||
This obviously only works with functions that don't take arguments.
|
This only works with functions that can be called without arguments.
|
||||||
|
|
||||||
|
|
||||||
|
@ -165,8 +165,7 @@ class build_ext(Command):
|
|||||||
if plat_py_include != py_include:
|
if plat_py_include != py_include:
|
||||||
self.include_dirs.append(plat_py_include)
|
self.include_dirs.append(plat_py_include)
|
||||||
|
|
||||||
if isinstance(self.libraries, str):
|
self.ensure_string_list('libraries')
|
||||||
self.libraries = [self.libraries]
|
|
||||||
|
|
||||||
# Life is easier if we're not forever checking for None, so
|
# Life is easier if we're not forever checking for None, so
|
||||||
# simplify these options to empty lists if unset
|
# simplify these options to empty lists if unset
|
||||||
|
@ -178,21 +178,21 @@ class BuildExtTestCase(TempdirManager,
|
|||||||
# make sure cmd.libraries is turned into a list
|
# make sure cmd.libraries is turned into a list
|
||||||
# if it's a string
|
# if it's a string
|
||||||
cmd = build_ext(dist)
|
cmd = build_ext(dist)
|
||||||
cmd.libraries = 'my_lib'
|
cmd.libraries = 'my_lib, other_lib lastlib'
|
||||||
cmd.finalize_options()
|
cmd.finalize_options()
|
||||||
self.assertEqual(cmd.libraries, ['my_lib'])
|
self.assertEqual(cmd.libraries, ['my_lib', 'other_lib', 'lastlib'])
|
||||||
|
|
||||||
# make sure cmd.library_dirs is turned into a list
|
# make sure cmd.library_dirs is turned into a list
|
||||||
# if it's a string
|
# if it's a string
|
||||||
cmd = build_ext(dist)
|
cmd = build_ext(dist)
|
||||||
cmd.library_dirs = 'my_lib_dir'
|
cmd.library_dirs = 'my_lib_dir%sother_lib_dir' % os.pathsep
|
||||||
cmd.finalize_options()
|
cmd.finalize_options()
|
||||||
self.assertTrue('my_lib_dir' in cmd.library_dirs)
|
self.assertEqual(cmd.library_dirs, ['my_lib_dir', 'other_lib_dir'])
|
||||||
|
|
||||||
# make sure rpath is turned into a list
|
# make sure rpath is turned into a list
|
||||||
# if it's a list of os.pathsep's paths
|
# if it's a string
|
||||||
cmd = build_ext(dist)
|
cmd = build_ext(dist)
|
||||||
cmd.rpath = os.pathsep.join(['one', 'two'])
|
cmd.rpath = 'one%stwo' % os.pathsep
|
||||||
cmd.finalize_options()
|
cmd.finalize_options()
|
||||||
self.assertEqual(cmd.rpath, ['one', 'two'])
|
self.assertEqual(cmd.rpath, ['one', 'two'])
|
||||||
|
|
||||||
|
@ -472,6 +472,9 @@ Library
|
|||||||
- Issue #13015: Fix a possible reference leak in defaultdict.__repr__.
|
- Issue #13015: Fix a possible reference leak in defaultdict.__repr__.
|
||||||
Patch by Suman Saha.
|
Patch by Suman Saha.
|
||||||
|
|
||||||
|
- Issue #1326113: distutils' build_ext command --libraries option now
|
||||||
|
correctly parses multiple values separated by whitespace or commas.
|
||||||
|
|
||||||
- Issue #10287: nntplib now queries the server's CAPABILITIES first before
|
- Issue #10287: nntplib now queries the server's CAPABILITIES first before
|
||||||
sending MODE READER, and only sends it if not already in READER mode.
|
sending MODE READER, and only sends it if not already in READER mode.
|
||||||
Patch by Hynek Schlawack.
|
Patch by Hynek Schlawack.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user