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

andrew.kuchling python-checkins at python.org
Fri Jun 20 13:39:54 CEST 2008


Author: andrew.kuchling
Date: Fri Jun 20 13:39:54 2008
New Revision: 64425

Log:
Various items

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	Fri Jun 20 13:39:54 2008
@@ -1496,6 +1496,25 @@
 Jython, or IronPython.  If either option is used with Python 2.6, the
 interpreter will report that the option isn't currently used.
 
+It's now possible to prevent Python from writing :file:`.pyc` or
+:file:`.pyo` files on importing a module by supplying the :option:`-B`
+switch to the Python interpreter, or by setting the
+:envvar:`PYTHONDONTWRITEBYTECODE` environment variable before running
+the interpreter.  This setting is available to Python programs as the
+``sys.dont_write_bytecode`` variable, and can be changed by Python
+code to modify the interpreter's behaviour.  (Contributed by Neal
+Norwitz and Georg Brandl.)
+
+The encoding used for standard input, output, and standard error can
+be specified by setting the :envvar:`PYTHONIOENCODING` environment
+variable before running the interpreter.  The value should be a string 
+in the form ``**encoding**`` or ``**encoding**:**errorhandler**``.  
+The **encoding** part specifies the encoding's name, e.g. ``utf-8`` or
+``latin-1``; the optional **errorhandler** part specifies 
+what to do with characters that can't be handled by the encoding,
+and  should be one of "error", "ignore", or "replace".   (Contributed
+by Martin von Loewis.)
+
 .. ======================================================================
 
 New, Improved, and Deprecated Modules
@@ -2276,6 +2295,11 @@
   the corresponding method. (Contributed by Erik Demaine;
   :issue:`1533909`.)
 
+* The :mod:`Tkinter` module now accepts lists and tuples for options,
+  separating the elements by spaces before passing the resulting value to 
+  Tcl/Tk.
+  (Contributed by XXX; :issue:`2906`.)
+
 * The :mod:`turtle` module for turtle graphics was greatly enhanced by
   Gregor Lingl.  New features in the module include:
 
@@ -2366,6 +2390,93 @@
 .. ======================================================================
 .. whole new modules get described in subsections here
 
+The :mod:`ast` module
+----------------------
+
+The :mod:`ast` module provides an Abstract Syntax Tree representation
+of Python code.  For Python 2.6, Armin Ronacher contributed a set of
+helper functions that perform various common tasks.  These will be useful
+for HTML templating packages, code analyzers, and similar tools that
+process Python code. 
+
+The :func:`parse` function takes an expression and returns an AST.
+The :func:`dump` function outputs a representation of a tree, suitable
+for debugging::
+
+    import ast
+
+    t = ast.parse("""
+    d = {}
+    for i in 'abcdefghijklm':
+	d[i + i] = ord(i) - ord('a') + 1
+    print d
+    """)
+    print ast.dump(t)
+
+This outputs::
+
+    Module(body=[Assign(targets=[Name(id='d', ctx=Store())],
+    value=Dict(keys=[], values=[])), For(target=Name(id='i',
+    ctx=Store()), iter=Str(s='abcdefghijklm'),
+    body=[Assign(targets=[Subscript(value=Name(id='d', ctx=Load()),
+    slice=Index(value=BinOp(left=Name(id='i', ctx=Load()), op=Add(),
+    right=Name(id='i', ctx=Load()))), ctx=Store())],
+    value=BinOp(left=BinOp(left=Call(func=Name(id='ord', ctx=Load()),
+    args=[Name(id='i', ctx=Load())], keywords=[], starargs=None,
+    kwargs=None), op=Sub(), right=Call(func=Name(id='ord',
+    ctx=Load()), args=[Str(s='a')], keywords=[], starargs=None,
+    kwargs=None)), op=Add(), right=Num(n=1)))], orelse=[]),
+    Print(dest=None, values=[Name(id='d', ctx=Load())], nl=True)])
+
+The :func:`literal_eval` method takes a string or an AST
+representing a literal expression, one that contains a Python
+expression containing only strings, numbers, dictionaries, etc. but no
+statements or function calls, and returns the resulting value.  If you
+need to unserialize an expression but need to worry about security 
+and can't risk using an :func:`eval` call, :func:`literal_eval` will
+handle it safely::
+
+    >>> literal = '("a", "b", {2:4, 3:8, 1:2})'
+    >>> print ast.literal_eval(literal)
+    ('a', 'b', {1: 2, 2: 4, 3: 8})
+    >>> print ast.literal_eval('"a" + "b"')
+    Traceback (most recent call last):
+      ...
+    ValueError: malformed string
+
+The module also includes 
+:class:`NodeVisitor` and :class:`NodeTransformer` classes 
+for traversing and modifying an AST, and functions for common transformations such as changing line numbers.
+
+.. ======================================================================
+
+The :mod:`future_builtins` module
+--------------------------------------
+
+Python 3.0 makes various changes to the repertoire of built-in
+functions, and most of the changes can't be introduced in the Python
+2.x series because they would break compatibility.
+The :mod:`future_builtins` module provides versions 
+of these built-in functions that can be imported when writing 
+3.0-compatible code.
+
+The functions in this module currently include:
+
+* ``ascii(**obj**)``: equivalent to :func:`repr`.  In Python 3.0, 
+  :func:`repr` will return a Unicode string, while :func:`ascii` will 
+  return a pure ASCII bytestring.
+
+* ``filter(**predicate**, **iterable**)``, 
+  ``map(**func**, **iterable1**, ...)``: the 3.0 versions 
+  return iterators, differing from the 2.x built-ins that return lists.
+
+* ``hex(**value**)``, ``oct(**value**)``: instead of calling the 
+  :meth:`__hex__` or :meth:`__oct__` methods, these versions will 
+  call the :meth:`__index__` method and convert the result to hexadecimal
+  or octal.
+
+.. ======================================================================
+
 The :mod:`json` module
 ----------------------
 
@@ -2391,28 +2502,6 @@
 :mod:`json` (originally called simplejson) was written by Bob Ippolito.
 
 
-Improved SSL Support
---------------------------------------------------
-
-Bill Janssen made extensive improvements to Python 2.6's support for
-the Secure Sockets Layer by adding a new module, :mod:`ssl`, on top of
-the `OpenSSL <http://www.openssl.org/>`__ library.  This new module
-provides more control over the protocol negotiated, the X.509
-certificates used, and has better support for writing SSL servers (as
-opposed to clients) in Python.  The existing SSL support in the
-:mod:`socket` module hasn't been removed and continues to work,
-though it will be removed in Python 3.0.
-
-To use the new module, first you must create a TCP connection in the
-usual way and then pass it to the :func:`ssl.wrap_socket` function.
-It's possible to specify whether a certificate is required, and to
-obtain certificate info by calling the :meth:`getpeercert` method.
-
-.. seealso::
-
-   The documentation for the :mod:`ssl` module.
-
-
 .. ======================================================================
 
 plistlib: A Property-List Parser
@@ -2452,31 +2541,28 @@
     # read/writePlist accepts file-like objects as well as paths.
     plistlib.writePlist(data_struct, sys.stdout)
 
+.. ======================================================================
 
-The :mod:`future_builtins` module
---------------------------------------
-
-Python 3.0 makes various changes to the repertoire of built-in
-functions, and most of the changes can't be introduced in the Python
-2.x series because they would break compatibility.
-The :mod:`future_builtins` module provides versions 
-of these built-in functions that can be imported when writing 
-3.0-compatible code.
+Improved SSL Support
+--------------------------------------------------
 
-The functions in this module currently include:
+Bill Janssen made extensive improvements to Python 2.6's support for
+the Secure Sockets Layer by adding a new module, :mod:`ssl`, on top of
+the `OpenSSL <http://www.openssl.org/>`__ library.  This new module
+provides more control over the protocol negotiated, the X.509
+certificates used, and has better support for writing SSL servers (as
+opposed to clients) in Python.  The existing SSL support in the
+:mod:`socket` module hasn't been removed and continues to work,
+though it will be removed in Python 3.0.
 
-* ``ascii(**obj**)``: equivalent to :func:`repr`.  In Python 3.0, 
-  :func:`repr` will return a Unicode string, while :func:`ascii` will 
-  return a pure ASCII bytestring.
+To use the new module, first you must create a TCP connection in the
+usual way and then pass it to the :func:`ssl.wrap_socket` function.
+It's possible to specify whether a certificate is required, and to
+obtain certificate info by calling the :meth:`getpeercert` method.
 
-* ``filter(**predicate**, **iterable**)``, 
-  ``map(**func**, **iterable1**, ...)``: the 3.0 versions 
-  return iterators, differing from the 2.x built-ins that return lists.
+.. seealso::
 
-* ``hex(**value**)``, ``oct(**value**)``: instead of calling the 
-  :meth:`__hex__` or :meth:`__oct__` methods, these versions will 
-  call the :meth:`__index__` method and convert the result to hexadecimal
-  or octal.
+   The documentation for the :mod:`ssl` module.
 
 .. ======================================================================
 
@@ -2632,6 +2718,11 @@
   registry reflection for 32-bit processes running on 64-bit systems.
   (:issue:`1753245`)
 
+* The :mod:`msilib` module's :class:`Record` object 
+  gained :meth:`GetInteger` and :meth:`GetString` methods that 
+  return field values as an integer or a string.  
+  (Contributed by XXX; :issue:`2125`.)
+
 * The new default compiler on Windows is Visual Studio 2008 (VS 9.0). The
   build directories for Visual Studio 2003 (VS7.1) and 2005 (VS8.0)
   were moved into the PC/ directory. The new PCbuild directory supports


More information about the Python-checkins mailing list