[Python-checkins] r66074 - python/trunk/Doc/whatsnew/2.6.rst

andrew.kuchling python-checkins at python.org
Sat Aug 30 18:44:55 CEST 2008


Author: andrew.kuchling
Date: Sat Aug 30 18:44:54 2008
New Revision: 66074

Log:
Edit four more sections

Modified:
   python/trunk/Doc/whatsnew/2.6.rst

Modified: python/trunk/Doc/whatsnew/2.6.rst
==============================================================================
--- python/trunk/Doc/whatsnew/2.6.rst	(original)
+++ python/trunk/Doc/whatsnew/2.6.rst	Sat Aug 30 18:44:54 2008
@@ -498,12 +498,15 @@
 When you ran a module that was located inside a package, relative
 imports didn't work correctly.
 
-The fix in Python 2.6 adds a :attr:`__package__` attribute to modules.
-When present, relative imports will be relative to the value of this
-attribute instead of the :attr:`__name__` attribute.  PEP 302-style
-importers can then set :attr:`__package__`.  The :mod:`runpy` module
-that implements the :option:`-m` switch now does this, so relative imports
-can now be used in scripts running from inside a package.
+The fix for Python 2.6 adds a :attr:`__package__` attribute to
+modules.  When this attribute is present, relative imports will be
+relative to the value of this attribute instead of the
+:attr:`__name__` attribute.
+
+PEP 302-style importers can then set :attr:`__package__` as necessary.
+The :mod:`runpy` module that implements the :option:`-m` switch now
+does this, so relative imports will now work correctly in scripts
+running from inside a package.
 
 .. ======================================================================
 
@@ -512,10 +515,10 @@
 PEP 370: Per-user ``site-packages`` Directory
 =====================================================
 
-When you run Python, the module search path ``sys.modules`` usually
+When you run Python, the module search path ``sys.path`` usually
 includes a directory whose path ends in ``"site-packages"``.  This
 directory is intended to hold locally-installed packages available to
-all users on a machine or using a particular site installation.
+all users using a machine or a particular site installation.
 
 Python 2.6 introduces a convention for user-specific site directories.
 The directory varies depending on the platform:
@@ -568,8 +571,8 @@
 and the :meth:`join` method to wait for the process to exit.
 
 Here's a simple example where the subprocess will calculate a
-factorial.  The function doing the calculation is a bit strange; it's
-written to take significantly longer when the input argument is a
+factorial.  The function doing the calculation is written strangely so
+that it takes significantly longer when the input argument is a
 multiple of 4.
 
 ::
@@ -604,28 +607,31 @@
 	result = queue.get()
 	print 'Factorial', N, '=', result
 
-A :class:`Queue` object is created and stored as a global.  The child
-process will use the value of the variable when the child was created;
-because it's a :class:`Queue`, parent and child can use the object to
-communicate.  (If the parent were to change the value of the global
-variable, the child's value would be unaffected, and vice versa.)
+A :class:`Queue` is used to communicate the input parameter *N* and
+the result.  The :class:`Queue` object is stored in a global variable.
+The child process will use the value of the variable when the child
+was created; because it's a :class:`Queue`, parent and child can use
+the object to communicate.  (If the parent were to change the value of
+the global variable, the child's value would be unaffected, and vice
+versa.)
 
 Two other classes, :class:`Pool` and :class:`Manager`, provide
 higher-level interfaces.  :class:`Pool` will create a fixed number of
 worker processes, and requests can then be distributed to the workers
-by calling :meth:`apply` or `apply_async`, adding a single request,
-and :meth:`map` or :meth:`map_async` to distribute a number of
+by calling :meth:`apply` or `apply_async` to add a single request,
+and :meth:`map` or :meth:`map_async` to add a number of
 requests.  The following code uses a :class:`Pool` to spread requests
-across 5 worker processes, receiving a list of results back.
+across 5 worker processes and retrieve a list of results::
 
-::
-
-   from multiprocessing import Pool
+    from multiprocessing import Pool
 
+    def factorial(N, dictionary):
+	"Compute a factorial."
+	...
     p = Pool(5)
     result = p.map(factorial, range(1, 1000, 10))
     for v in result:
-        print v
+	print v
 
 This produces the following output::
 
@@ -636,14 +642,15 @@
     33452526613163807108170062053440751665152000000000
     ...
 
-The :class:`Manager` class creates a separate server process that can
-hold master copies of Python data structures.  Other processes can
-then access and modify these data structures by using proxy objects.
-The following example creates a shared dictionary by calling the
-:meth:`dict` method; the worker processes then insert values into the
-dictionary.  (No locking is done automatically, which doesn't matter
-in this example.  :class:`Manager`'s methods also include
-:meth:`Lock`, :meth:`RLock`, and :meth:`Semaphore` to create shared locks.
+The other high-level interface, the :class:`Manager` class, creates a
+separate server process that can hold master copies of Python data
+structures.  Other processes can then access and modify these data
+structures using proxy objects.  The following example creates a
+shared dictionary by calling the :meth:`dict` method; the worker
+processes then insert values into the dictionary.  (Locking is not
+done for you automatically, which doesn't matter in this example.
+:class:`Manager`'s methods also include :meth:`Lock`, :meth:`RLock`,
+and :meth:`Semaphore` to create shared locks.)
 
 ::
 
@@ -686,7 +693,7 @@
     21 51090942171709440000
     31 8222838654177922817725562880000000
     41 33452526613163807108170062053440751665152000000000
-    51 1551118753287382280224243016469303211063259720016986112000000000000
+    51 15511187532873822802242430164693032110632597200169861120000...
 
 .. seealso::
 
@@ -716,9 +723,8 @@
      "User ID: {0}".format("root") -> "User ID: root"
 
      # Use the named keyword arguments
-     uid = 'root'
-
-     'User ID: {uid}   Last seen: {last_login}'.format(uid='root',
+     'User ID: {uid}   Last seen: {last_login}'.format(
+            uid='root',
             last_login = '5 Mar 2008 07:20') ->
        'User ID: root   Last seen: 5 Mar 2008 07:20'
 
@@ -736,9 +742,9 @@
          Python version: 2.6a1+ (trunk:61261M, Mar  5 2008, 20:29:41) \n
          [GCC 4.0.1 (Apple Computer, Inc. build 5367)]'
 
-     import mimetypes
-     'Content-type: {0[.mp4]}'.format(mimetypes.types_map) ->
-       'Content-type: video/mp4'
+    import mimetypes
+    'Content-type: {0[.mp4]}'.format(mimetypes.types_map) ->
+        'Content-type: video/mp4'
 
 Note that when using dictionary-style notation such as ``[.mp4]``, you
 don't need to put any quotation marks around the string; it will look
@@ -753,18 +759,24 @@
      # Field 0: left justify, pad to 15 characters
      # Field 1: right justify, pad to 6 characters
      fmt = '{0:15} ${1:>6}'
+
      fmt.format('Registration', 35) ->
        'Registration    $    35'
+
      fmt.format('Tutorial', 50) ->
        'Tutorial        $    50'
+
      fmt.format('Banquet', 125) ->
        'Banquet         $   125'
 
 Format specifiers can reference other fields through nesting::
 
     fmt = '{0:{1}}'
-    fmt.format('Invoice #1234', 15) ->
+
+    width = 15
+    fmt.format('Invoice #1234', width) ->
       'Invoice #1234  '
+
     width = 35
     fmt.format('Invoice #1234', width) ->
       'Invoice #1234                      '
@@ -819,8 +831,9 @@
        else:
            return str(self)
 
-There's also a format() built-in that will format a single value.  It calls
-the type's :meth:`__format__` method with the provided specifier::
+There's also a :func:`format` built-in that will format a single
+value.  It calls the type's :meth:`__format__` method with the
+provided specifier::
 
     >>> format(75.6564, '.2f')
     '75.66'
@@ -829,7 +842,7 @@
 .. seealso::
 
    :ref:`formatstrings`
-      The reference format fields.
+      The reference documentation for format fields.
 
    :pep:`3101` - Advanced String Formatting
       PEP written by Talin. Implemented by Eric Smith.


More information about the Python-checkins mailing list