[Python-checkins] cpython (2.7): Issue #12718: Add documentation on using custom importers.

vinay.sajip python-checkins at python.org
Thu Aug 11 14:47:07 CEST 2011


http://hg.python.org/cpython/rev/0fbd44e3f342
changeset:   71813:0fbd44e3f342
branch:      2.7
parent:      71805:d5b274a0b0a5
user:        Vinay Sajip <vinay_sajip at yahoo.co.uk>
date:        Thu Aug 11 13:39:52 2011 +0100
summary:
  Issue #12718: Add documentation on using custom importers.

files:
  Doc/library/logging.config.rst |  25 ++++++++++++++++++++++
  1 files changed, 25 insertions(+), 0 deletions(-)


diff --git a/Doc/library/logging.config.rst b/Doc/library/logging.config.rst
--- a/Doc/library/logging.config.rst
+++ b/Doc/library/logging.config.rst
@@ -516,6 +516,31 @@
 to ``config_dict['handlers']['myhandler']['mykey']['123']`` if that
 fails.
 
+
+.. _logging-import-resolution:
+
+Import resolution and custom importers
+""""""""""""""""""""""""""""""""""""""
+
+Import resolution, by default, uses the builtin :func:`__import__` function
+to do its importing. You may want to replace this with your own importing
+mechanism: if so, you can replace the :attr:`importer` attribute of the
+:class:`DictConfigurator` or its superclass, the
+:class:`BaseConfigurator` class. However, you need to be
+careful because of the way functions are accessed from classes via
+descriptors. If you are using a Python callable to do your imports, and you
+want to define it at class level rather than instance level, you need to wrap
+it with :func:`staticmethod`. For example::
+
+   from importlib import import_module
+   from logging.config import BaseConfigurator
+
+   BaseConfigurator.importer = staticmethod(import_module)
+
+You don't need to wrap with :func:`staticmethod` if you're setting the import
+callable on a configurator *instance*.
+
+
 .. _logging-config-fileformat:
 
 Configuration file format

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list