[Checkins] SVN: zope.deferredimport/trunk/ Added module reference documentation.

Shane Hathaway shane at hathawaymix.org
Tue Feb 3 00:30:29 EST 2009


Log message for revision 96014:
  Added module reference documentation.
  

Changed:
  U   zope.deferredimport/trunk/README.txt
  U   zope.deferredimport/trunk/src/zope/deferredimport/__init__.py
  U   zope.deferredimport/trunk/src/zope/deferredimport/deferredmodule.py

-=-
Modified: zope.deferredimport/trunk/README.txt
===================================================================
--- zope.deferredimport/trunk/README.txt	2009-02-03 04:53:51 UTC (rev 96013)
+++ zope.deferredimport/trunk/README.txt	2009-02-03 05:30:28 UTC (rev 96014)
@@ -15,7 +15,9 @@
 
 - Added support to bootstrap on Jython.
 
+- Added reference documentation.
 
+
 3.4.0 (2007/07/19)
 ------------------
 

Modified: zope.deferredimport/trunk/src/zope/deferredimport/__init__.py
===================================================================
--- zope.deferredimport/trunk/src/zope/deferredimport/__init__.py	2009-02-03 04:53:51 UTC (rev 96013)
+++ zope.deferredimport/trunk/src/zope/deferredimport/__init__.py	2009-02-03 05:30:28 UTC (rev 96014)
@@ -1,3 +1,5 @@
 from zope.deferredimport.deferredmodule import initialize
 from zope.deferredimport.deferredmodule import define, defineFrom
 from zope.deferredimport.deferredmodule import deprecated, deprecatedFrom
+
+__all__ = tuple(name for name in globals() if not name.startswith('_'))

Modified: zope.deferredimport/trunk/src/zope/deferredimport/deferredmodule.py
===================================================================
--- zope.deferredimport/trunk/src/zope/deferredimport/deferredmodule.py	2009-02-03 04:53:51 UTC (rev 96013)
+++ zope.deferredimport/trunk/src/zope/deferredimport/deferredmodule.py	2009-02-03 05:30:28 UTC (rev 96014)
@@ -73,6 +73,24 @@
         return v
 
 def initialize(level=1):
+    """Prepare a module to support deferred imports.
+
+    Modules do not need to call this directly, because the
+    `define*` and `deprecated*` functions call it.
+
+    This is intended to be called from the module to be prepared.
+    The implementation wraps a proxy around the module and replaces
+    the entry in sys.modules with the proxy.  It does no harm to
+    call this function more than once for a given module, because
+    this function does not re-wrap a proxied module.
+
+    The level parameter specifies a relative stack depth.
+    When this function is called directly by the module, level should be 1.
+    When this function is called by a helper function, level should
+    increase with the depth of the stack.
+
+    Returns nothing when level is 1; otherwise returns the proxied module.
+    """
     __name__ = sys._getframe(level).f_globals['__name__']
     module = sys.modules[__name__]
     if not (type(module) is ModuleProxy):
@@ -84,12 +102,23 @@
     return module
 
 def define(**names):
+    """Define deferred imports using keyword parameters.
+
+    Each parameter specifies the importable name and how to import it.
+    Use `module:name` syntax to import a name from a module, or `module`
+    (no colon) to import a module.
+    """
     module = initialize(2)
     __deferred_definitions__ = module.__deferred_definitions__
     for name, specifier in names.iteritems():
         __deferred_definitions__[name] = Deferred(name, specifier)
 
 def defineFrom(from_name, *names):
+    """Define deferred imports from a particular module.
+
+    The from_name specifies which module to import.
+    The rest of the parameters specify names to import from that module.
+    """
     module = initialize(2)
     __deferred_definitions__ = module.__deferred_definitions__
     for name in names:
@@ -97,6 +126,15 @@
         __deferred_definitions__[name] = Deferred(name, specifier)
 
 def deprecated(message, **names):
+    """Define deferred and deprecated imports using keyword parameters.
+
+    The first use of each name will generate a deprecation warning with
+    the given message.
+
+    Each parameter specifies the importable name and how to import it.
+    Use `module:name` syntax to import a name from a module, or `module`
+    (no colon) to import a module.
+    """
     module = initialize(2)
     __deferred_definitions__ = module.__deferred_definitions__
     for name, specifier in names.iteritems():
@@ -104,6 +142,14 @@
             name, specifier, message)
 
 def deprecatedFrom(message, from_name, *names):
+    """Define deferred and deprecated imports from a particular module.
+
+    The first use of each name will generate a deprecation warning with
+    the given message.
+
+    The from_name specifies which module to import.
+    The rest of the parameters specify names to import from that module.
+    """
     module = initialize(2)
     __deferred_definitions__ = module.__deferred_definitions__
     for name in names:



More information about the Checkins mailing list