[Python-checkins] r68247 - in python/branches/py3k: Doc/ACKS.txt Doc/c-api/arg.rst Doc/c-api/structures.rst Doc/distutils/apiref.rst Doc/howto/functional.rst Doc/howto/urllib2.rst Doc/install/index.rst Doc/library/email.mime.rst Doc/library/gzip.rst Doc/library/http.cookiejar.rst Doc/library/json.rst Doc/library/multiprocessing.rst Doc/library/numbers.rst Doc/library/parser.rst Doc/library/smtplib.rst Doc/library/urllib.parse.rst Doc/tutorial/inputoutput.rst Doc/using/cmdline.rst Doc/whatsnew/2.4.rst Doc/whatsnew/2.5.rst Doc/whatsnew/2.7.rst Makefile.pre.in Parser/asdl.py
georg.brandl
python-checkins at python.org
Sat Jan 3 23:47:40 CET 2009
Author: georg.brandl
Date: Sat Jan 3 23:47:39 2009
New Revision: 68247
Log:
Merged revisions 68162,68166,68171,68176,68195-68196,68210,68232 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r68162 | ronald.oussoren | 2009-01-02 16:06:00 +0100 (Fri, 02 Jan 2009) | 3 lines
Fix for issue 4472 is incompatible with Cygwin, this patch
should fix that.
........
r68166 | benjamin.peterson | 2009-01-02 19:26:23 +0100 (Fri, 02 Jan 2009) | 1 line
document PyMemberDef
........
r68171 | georg.brandl | 2009-01-02 21:25:14 +0100 (Fri, 02 Jan 2009) | 3 lines
#4811: fix markup glitches (mostly remains of the conversion),
found by Gabriel Genellina.
........
r68176 | andrew.kuchling | 2009-01-02 22:00:35 +0100 (Fri, 02 Jan 2009) | 1 line
Add various items
........
r68195 | georg.brandl | 2009-01-03 14:45:15 +0100 (Sat, 03 Jan 2009) | 2 lines
Remove useless string literal.
........
r68196 | georg.brandl | 2009-01-03 15:29:53 +0100 (Sat, 03 Jan 2009) | 2 lines
Fix indentation.
........
r68210 | georg.brandl | 2009-01-03 20:10:12 +0100 (Sat, 03 Jan 2009) | 2 lines
Set eol-style correctly for mp_distributing.py.
........
r68232 | georg.brandl | 2009-01-03 22:52:16 +0100 (Sat, 03 Jan 2009) | 2 lines
Grammar fix.
........
Modified:
python/branches/py3k/ (props changed)
python/branches/py3k/Doc/ACKS.txt
python/branches/py3k/Doc/c-api/arg.rst
python/branches/py3k/Doc/c-api/structures.rst
python/branches/py3k/Doc/distutils/apiref.rst
python/branches/py3k/Doc/howto/functional.rst
python/branches/py3k/Doc/howto/urllib2.rst
python/branches/py3k/Doc/install/index.rst
python/branches/py3k/Doc/library/email.mime.rst
python/branches/py3k/Doc/library/gzip.rst
python/branches/py3k/Doc/library/http.cookiejar.rst
python/branches/py3k/Doc/library/json.rst
python/branches/py3k/Doc/library/multiprocessing.rst
python/branches/py3k/Doc/library/numbers.rst
python/branches/py3k/Doc/library/parser.rst
python/branches/py3k/Doc/library/smtplib.rst
python/branches/py3k/Doc/library/urllib.parse.rst
python/branches/py3k/Doc/tutorial/inputoutput.rst
python/branches/py3k/Doc/using/cmdline.rst
python/branches/py3k/Doc/whatsnew/2.4.rst
python/branches/py3k/Doc/whatsnew/2.5.rst
python/branches/py3k/Doc/whatsnew/2.7.rst
python/branches/py3k/Makefile.pre.in
python/branches/py3k/Parser/asdl.py
Modified: python/branches/py3k/Doc/ACKS.txt
==============================================================================
--- python/branches/py3k/Doc/ACKS.txt (original)
+++ python/branches/py3k/Doc/ACKS.txt Sat Jan 3 23:47:39 2009
@@ -60,6 +60,7 @@
* Peter Funk
* Lele Gaifax
* Matthew Gallagher
+ * Gabriel Genellina
* Ben Gertzfield
* Nadim Ghaznavi
* Jonathan Giddy
Modified: python/branches/py3k/Doc/c-api/arg.rst
==============================================================================
--- python/branches/py3k/Doc/c-api/arg.rst (original)
+++ python/branches/py3k/Doc/c-api/arg.rst Sat Jan 3 23:47:39 2009
@@ -53,8 +53,9 @@
string may contain embedded null bytes. Unicode objects pass back a pointer
to the default encoded string version of the object if such a conversion is
possible. All other read-buffer compatible objects pass back a reference to
- the raw internal data representation. Since this format doesn't allow writable buffer compatible objects like byte
- arrays, ``s*`` is to be preferred.
+ the raw internal data representation. Since this format doesn't allow
+ writable buffer compatible objects like byte arrays, ``s*`` is to be
+ preferred.
The type of the length argument (int or :ctype:`Py_ssize_t`) is controlled by
defining the macro :cmacro:`PY_SSIZE_T_CLEAN` before including
Modified: python/branches/py3k/Doc/c-api/structures.rst
==============================================================================
--- python/branches/py3k/Doc/c-api/structures.rst (original)
+++ python/branches/py3k/Doc/c-api/structures.rst Sat Jan 3 23:47:39 2009
@@ -198,3 +198,64 @@
object and will co-exist with the slot. This is helpful because calls to
PyCFunctions are optimized more than wrapper object calls.
+
+.. ctype:: PyMemberDef
+
+ Structure which describes an attribute of a type which corresponds to a C
+ struct member. Its fields are:
+
+ +------------------+-------------+-------------------------------+
+ | Field | C Type | Meaning |
+ +==================+=============+===============================+
+ | :attr:`name` | char \* | name of the member |
+ +------------------+-------------+-------------------------------+
+ | :attr:`type` | int | the type of the member in the |
+ | | | C struct |
+ +------------------+-------------+-------------------------------+
+ | :attr:`offset` | Py_ssize_t | the offset in bytes that the |
+ | | | member is located on the |
+ | | | type's object struct |
+ +------------------+-------------+-------------------------------+
+ | :attr:`flags` | int | flag bits indicating if the |
+ | | | field should be read-only or |
+ | | | writable |
+ +------------------+-------------+-------------------------------+
+ | :attr:`doc` | char \* | points to the contents of the |
+ | | | docstring |
+ +------------------+-------------+-------------------------------+
+
+ :attr:`type` can be one of many ``T_`` macros corresponding to various C
+ types. When the member is accessed in Python, it will be converted to the
+ equivalent Python type.
+
+ =============== ==================
+ Macro name C type
+ =============== ==================
+ T_SHORT short
+ T_INT int
+ T_LONG long
+ T_FLOAT float
+ T_DOUBLE double
+ T_STRING char \*
+ T_OBJECT PyObject \*
+ T_OBJECT_EX PyObject \*
+ T_CHAR char
+ T_BYTE char
+ T_UNBYTE unsigned char
+ T_UINT unsigned int
+ T_USHORT unsigned short
+ T_ULONG unsigned long
+ T_BOOL char
+ T_LONGLONG long long
+ T_ULONGLONG unsigned long long
+ T_PYSSIZET Py_ssize_t
+ =============== ==================
+
+ :cmacro:`T_OBJECT` and :cmacro:`T_OBJECT_EX` differ in that
+ :cmacro:`T_OBJECT` returns ``None`` if the member is *NULL* and
+ :cmacro:`T_OBJECT_EX` raises an :exc:`AttributeError`.
+
+ :attr:`flags` can be 0 for write and read access or :cmacro:`READONLY` for
+ read-only access. Using :cmacro:`T_STRING` for :attr:`type` implies
+ :cmacro:`READONLY`. Only :cmacro:`T_OBJECT` and :cmacro:`T_OBJECT_EX`
+ members can be deleted. (They are set to *NULL*).
Modified: python/branches/py3k/Doc/distutils/apiref.rst
==============================================================================
--- python/branches/py3k/Doc/distutils/apiref.rst (original)
+++ python/branches/py3k/Doc/distutils/apiref.rst Sat Jan 3 23:47:39 2009
@@ -188,9 +188,10 @@
| | for C/C++ header files (in | |
| | Unix form for portability) | |
+------------------------+--------------------------------+---------------------------+
- | *define_macros* | list of macros to define; each | (string,string) tuple or |
- | | macro is defined using a | (name,``None``) |
- | | 2-tuple, where 'value' is | |
+ | *define_macros* | list of macros to define; each | (string, string) tuple or |
+ | | macro is defined using a | (name, ``None``) |
+ | | 2-tuple ``(name, value)``, | |
+ | | where *value* is | |
| | either the string to define it | |
| | to or ``None`` to define it | |
| | without a particular value | |
Modified: python/branches/py3k/Doc/howto/functional.rst
==============================================================================
--- python/branches/py3k/Doc/howto/functional.rst (original)
+++ python/branches/py3k/Doc/howto/functional.rst Sat Jan 3 23:47:39 2009
@@ -586,7 +586,7 @@
9
>>> next(it)
Traceback (most recent call last):
- File ``t.py'', line 15, in ?
+ File "t.py", line 15, in ?
it.next()
StopIteration
Modified: python/branches/py3k/Doc/howto/urllib2.rst
==============================================================================
--- python/branches/py3k/Doc/howto/urllib2.rst (original)
+++ python/branches/py3k/Doc/howto/urllib2.rst Sat Jan 3 23:47:39 2009
@@ -475,7 +475,7 @@
password_mgr = urllib.request.HTTPPasswordMgrWithDefaultRealm()
# Add the username and password.
- # If we knew the realm, we could use it instead of ``None``.
+ # If we knew the realm, we could use it instead of None.
top_level_url = "http://example.com/foo/"
password_mgr.add_password(None, top_level_url, username, password)
Modified: python/branches/py3k/Doc/install/index.rst
==============================================================================
--- python/branches/py3k/Doc/install/index.rst (original)
+++ python/branches/py3k/Doc/install/index.rst Sat Jan 3 23:47:39 2009
@@ -584,7 +584,7 @@
$ python
Python 2.2 (#11, Oct 3 2002, 13:31:27)
[GCC 2.96 20000731 (Red Hat Linux 7.3 2.96-112)] on linux2
- Type ``help'', ``copyright'', ``credits'' or ``license'' for more information.
+ Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path
['', '/usr/local/lib/python2.3', '/usr/local/lib/python2.3/plat-linux2',
Modified: python/branches/py3k/Doc/library/email.mime.rst
==============================================================================
--- python/branches/py3k/Doc/library/email.mime.rst (original)
+++ python/branches/py3k/Doc/library/email.mime.rst Sat Jan 3 23:47:39 2009
@@ -55,14 +55,14 @@
.. currentmodule:: email.mime.multipart
-.. class:: MIMEMultipart([subtype[, boundary[, _subparts[, _params]]]])
+.. class:: MIMEMultipart([_subtype[, boundary[, _subparts[, _params]]]])
Module: :mod:`email.mime.multipart`
A subclass of :class:`MIMEBase`, this is an intermediate base class for MIME
messages that are :mimetype:`multipart`. Optional *_subtype* defaults to
:mimetype:`mixed`, but can be used to specify the subtype of the message. A
- :mailheader:`Content-Type` header of :mimetype:`multipart/`*_subtype* will be
+ :mailheader:`Content-Type` header of :mimetype:`multipart/_subtype` will be
added to the message object. A :mailheader:`MIME-Version` header will also be
added.
Modified: python/branches/py3k/Doc/library/gzip.rst
==============================================================================
--- python/branches/py3k/Doc/library/gzip.rst (original)
+++ python/branches/py3k/Doc/library/gzip.rst Sat Jan 3 23:47:39 2009
@@ -7,7 +7,7 @@
This module provides a simple interface to compress and decompress files just
like the GNU programs :program:`gzip` and :program:`gunzip` would.
-The data compression is provided by the :mod:``zlib`` module.
+The data compression is provided by the :mod:`zlib` module.
The :mod:`gzip` module provides the :class:`GzipFile` class which is modeled
after Python's File Object. The :class:`GzipFile` class reads and writes
Modified: python/branches/py3k/Doc/library/http.cookiejar.rst
==============================================================================
--- python/branches/py3k/Doc/library/http.cookiejar.rst (original)
+++ python/branches/py3k/Doc/library/http.cookiejar.rst Sat Jan 3 23:47:39 2009
@@ -704,7 +704,7 @@
The :class:`Cookie` class also defines the following method:
-.. method:: Cookie.is_expired([now=:const:`None`])
+.. method:: Cookie.is_expired([now=None])
True if cookie has passed the time at which the server requested it should
expire. If *now* is given (in seconds since the epoch), return whether the
Modified: python/branches/py3k/Doc/library/json.rst
==============================================================================
--- python/branches/py3k/Doc/library/json.rst (original)
+++ python/branches/py3k/Doc/library/json.rst Sat Jan 3 23:47:39 2009
@@ -151,7 +151,7 @@
*default(obj)* is a function that should return a serializable version of
*obj* or raise :exc:`TypeError`. The default simply raises :exc:`TypeError`.
- To use a custom :class:`JSONEncoder`` subclass (e.g. one that overrides the
+ To use a custom :class:`JSONEncoder` subclass (e.g. one that overrides the
:meth:`default` method to serialize additional types), specify it with the
*cls* kwarg.
Modified: python/branches/py3k/Doc/library/multiprocessing.rst
==============================================================================
--- python/branches/py3k/Doc/library/multiprocessing.rst (original)
+++ python/branches/py3k/Doc/library/multiprocessing.rst Sat Jan 3 23:47:39 2009
@@ -107,12 +107,12 @@
def f(q):
q.put([42, None, 'hello'])
- if __name__ == '__main__':
- q = Queue()
- p = Process(target=f, args=(q,))
- p.start()
- print(q.get()) # prints "[42, None, 'hello']"
- p.join()
+ if __name__ == '__main__':
+ q = Queue()
+ p = Process(target=f, args=(q,))
+ p.start()
+ print(q.get()) # prints "[42, None, 'hello']"
+ p.join()
Queues are thread and process safe.
@@ -1136,18 +1136,18 @@
Returns a :class:`Server` object which represents the actual server under
the control of the Manager. The :class:`Server` object supports the
- :meth:`serve_forever` method::
+ :meth:`serve_forever` method:
- >>> from multiprocessing.managers import BaseManager
- >>> m = BaseManager(address=('', 50000), authkey='abc'))
- >>> server = m.get_server()
- >>> s.serve_forever()
+ >>> from multiprocessing.managers import BaseManager
+ >>> m = BaseManager(address=('', 50000), authkey='abc'))
+ >>> server = m.get_server()
+ >>> s.serve_forever()
- :class:`Server` additionally have an :attr:`address` attribute.
+ :class:`Server` additionally have an :attr:`address` attribute.
.. method:: connect()
- Connect a local manager object to a remote manager process::
+ Connect a local manager object to a remote manager process:
>>> from multiprocessing.managers import BaseManager
>>> m = BaseManager(address='127.0.0.1', authkey='abc))
@@ -1293,7 +1293,7 @@
>>>>>>>>>>>>>>>>>>>
To create one's own manager, one creates a subclass of :class:`BaseManager` and
-use the :meth:`~BaseManager.resgister` classmethod to register new types or
+use the :meth:`~BaseManager.register` classmethod to register new types or
callables with the manager class. For example::
from multiprocessing.managers import BaseManager
@@ -1809,7 +1809,7 @@
* An ``'AF_PIPE'`` address is a string of the form
:samp:`r'\\\\.\\pipe\\{PipeName}'`. To use :func:`Client` to connect to a named
- pipe on a remote computer called ServerName* one should use an address of the
+ pipe on a remote computer called *ServerName* one should use an address of the
form :samp:`r'\\\\{ServerName}\\pipe\\{PipeName}'`` instead.
Note that any string beginning with two backslashes is assumed by default to be
Modified: python/branches/py3k/Doc/library/numbers.rst
==============================================================================
--- python/branches/py3k/Doc/library/numbers.rst (original)
+++ python/branches/py3k/Doc/library/numbers.rst Sat Jan 3 23:47:39 2009
@@ -49,14 +49,14 @@
:func:`round`, :func:`math.floor`, :func:`math.ceil`, :func:`divmod`, ``//``,
``%``, ``<``, ``<=``, ``>``, and ``>=``.
- Real also provides defaults for :func:`complex`, :attr:`Complex.real`,
- :attr:`Complex.imag`, and :meth:`Complex.conjugate`.
+ Real also provides defaults for :func:`complex`, :attr:`~Complex.real`,
+ :attr:`~Complex.imag`, and :meth:`~Complex.conjugate`.
.. class:: Rational
Subtypes :class:`Real` and adds
- :attr:`Rational.numerator` and :attr:`Rational.denominator` properties, which
+ :attr:`~Rational.numerator` and :attr:`~Rational.denominator` properties, which
should be in lowest terms. With these, it provides a default for
:func:`float`.
@@ -72,8 +72,8 @@
.. class:: Integral
Subtypes :class:`Rational` and adds a conversion to :class:`int`.
- Provides defaults for :func:`float`, :attr:`Rational.numerator`, and
- :attr:`Rational.denominator`, and bit-string operations: ``<<``,
+ Provides defaults for :func:`float`, :attr:`~Rational.numerator`, and
+ :attr:`~Rational.denominator`, and bit-string operations: ``<<``,
``>>``, ``&``, ``^``, ``|``, ``~``.
@@ -169,7 +169,7 @@
knowledge of ``A``, so it can handle those instances before
delegating to :class:`Complex`.
-If ``A<:Complex`` and ``B<:Real`` without sharing any other knowledge,
+If ``A <: Complex`` and ``B <: Real`` without sharing any other knowledge,
then the appropriate shared operation is the one involving the built
in :class:`complex`, and both :meth:`__radd__` s land there, so ``a+b
== b+a``.
Modified: python/branches/py3k/Doc/library/parser.rst
==============================================================================
--- python/branches/py3k/Doc/library/parser.rst (original)
+++ python/branches/py3k/Doc/library/parser.rst Sat Jan 3 23:47:39 2009
@@ -635,7 +635,7 @@
while the long form uses an indented block and allows nested definitions::
def make_power(exp):
- "Make a function that raises an argument to the exponent `exp'."
+ "Make a function that raises an argument to the exponent `exp`."
def raiser(x, y=exp):
return x ** y
return raiser
Modified: python/branches/py3k/Doc/library/smtplib.rst
==============================================================================
--- python/branches/py3k/Doc/library/smtplib.rst (original)
+++ python/branches/py3k/Doc/library/smtplib.rst Sat Jan 3 23:47:39 2009
@@ -200,7 +200,7 @@
previous ``EHLO`` or ``HELO`` command this session. It tries ESMTP ``EHLO``
first.
- :exc:SMTPHeloError
+ :exc:`SMTPHeloError`
The server didn't reply properly to the ``HELO`` greeting.
.. method:: SMTP.has_extn(name)
Modified: python/branches/py3k/Doc/library/urllib.parse.rst
==============================================================================
--- python/branches/py3k/Doc/library/urllib.parse.rst (original)
+++ python/branches/py3k/Doc/library/urllib.parse.rst Sat Jan 3 23:47:39 2009
@@ -365,7 +365,7 @@
'http://www.Python.org/doc/'
-The following classes provide the implementations of the parse results::
+The following classes provide the implementations of the parse results:
.. class:: BaseResult
Modified: python/branches/py3k/Doc/tutorial/inputoutput.rst
==============================================================================
--- python/branches/py3k/Doc/tutorial/inputoutput.rst (original)
+++ python/branches/py3k/Doc/tutorial/inputoutput.rst Sat Jan 3 23:47:39 2009
@@ -151,7 +151,7 @@
other='Georg'))
The story of Bill, Manfred, and Georg.
-An optional ``':``` and format specifier can follow the field name. This also
+An optional ``':'`` and format specifier can follow the field name. This also
greater control over how the value is formatted. The following example
truncates the Pi to three places after the decimal.
Modified: python/branches/py3k/Doc/using/cmdline.rst
==============================================================================
--- python/branches/py3k/Doc/using/cmdline.rst (original)
+++ python/branches/py3k/Doc/using/cmdline.rst Sat Jan 3 23:47:39 2009
@@ -343,7 +343,7 @@
compiled form). Extension modules cannot be imported from zipfiles.
The default search path is installation dependent, but generally begins with
- :file:`{prefix}/lib/python{version}`` (see :envvar:`PYTHONHOME` above). It
+ :file:`{prefix}/lib/python{version}` (see :envvar:`PYTHONHOME` above). It
is *always* appended to :envvar:`PYTHONPATH`.
An additional directory will be inserted in the search path in front of
Modified: python/branches/py3k/Doc/whatsnew/2.4.rst
==============================================================================
--- python/branches/py3k/Doc/whatsnew/2.4.rst (original)
+++ python/branches/py3k/Doc/whatsnew/2.4.rst Sat Jan 3 23:47:39 2009
@@ -1428,7 +1428,7 @@
you get the following output::
**********************************************************************
- File ``t.py'', line 15, in g
+ File "t.py", line 15, in g
Failed example:
g(4)
Differences (unified diff with -expected +actual):
Modified: python/branches/py3k/Doc/whatsnew/2.5.rst
==============================================================================
--- python/branches/py3k/Doc/whatsnew/2.5.rst (original)
+++ python/branches/py3k/Doc/whatsnew/2.5.rst Sat Jan 3 23:47:39 2009
@@ -485,7 +485,7 @@
9
>>> print it.next()
Traceback (most recent call last):
- File ``t.py'', line 15, in ?
+ File "t.py", line 15, in ?
print it.next()
StopIteration
Modified: python/branches/py3k/Doc/whatsnew/2.7.rst
==============================================================================
--- python/branches/py3k/Doc/whatsnew/2.7.rst (original)
+++ python/branches/py3k/Doc/whatsnew/2.7.rst Sat Jan 3 23:47:39 2009
@@ -103,7 +103,23 @@
:file:`Misc/NEWS` file in the source tree for a more complete list of
changes, or look through the Subversion logs for all the details.
-* To be written.
+* A new function in the :mod:`subprocess` module,
+ :func:`check_output`, runs a command with a specified set of arguments
+ and returns the command's output as a string if the command runs without
+ error, or raises a :exc:`CalledProcessError` exception otherwise.
+
+ ::
+
+ >>> subprocess.check_output(['df', '-h', '.'])
+ 'Filesystem Size Used Avail Capacity Mounted on\n
+ /dev/disk0s2 52G 49G 3.0G 94% /\n'
+
+ >>> subprocess.check_output(['df', '-h', '/bogus'])
+ ...
+ subprocess.CalledProcessError: Command '['df', '-h', '/bogus']' returned non-zero exit status 1
+
+ (Contributed by Gregory P. Smith.)
+
.. ======================================================================
.. whole new modules get described in subsections here
@@ -116,13 +132,22 @@
Changes to Python's build process and to the C API include:
-* To be written.
+* If you use the :file:`.gdbinit` file provided with Python,
+ the "pyo" macro in the 2.7 version will now work when the thread being
+ debugged doesn't hold the GIL; the macro will now acquire it before printing.
+ (Contributed by haypo XXX; :issue:`3632`.)
.. ======================================================================
Port-Specific Changes: Windows
-----------------------------------
+* The :mod:`msvcrt` module now contains some constants from
+ the :file:`crtassem.h` header file:
+ :data:`CRT_ASSEMBLY_VERSION`,
+ :data:`VC_ASSEMBLY_PUBLICKEYTOKEN`,
+ and :data:`LIBRARIES_ASSEMBLY_NAME_PREFIX`.
+ (Added by Martin von Loewis (XXX check); :issue:`4365`.)
.. ======================================================================
Modified: python/branches/py3k/Makefile.pre.in
==============================================================================
--- python/branches/py3k/Makefile.pre.in (original)
+++ python/branches/py3k/Makefile.pre.in Sat Jan 3 23:47:39 2009
@@ -777,8 +777,8 @@
done
$(INSTALL_PROGRAM) $(BUILDPYTHON) $(DESTDIR)$(BINDIR)/python$(VERSION)$(EXE)
if test -f $(LDLIBRARY); then \
- if test "$(SO)" = .dll; then \
- $(INSTALL_SHARED) $(LDLIBRARY) $(DESTDIR)$(BINDIR); \
+ if test -n "$(DLLLIBRARY)" ; then \
+ $(INSTALL_SHARED) $(DLLLIBRARY) $(DESTDIR)$(BINDIR); \
else \
$(INSTALL_SHARED) $(LDLIBRARY) $(DESTDIR)$(LIBDIR)/$(INSTSONAME); \
if test $(LDLIBRARY) != $(INSTSONAME); then \
Modified: python/branches/py3k/Parser/asdl.py
==============================================================================
--- python/branches/py3k/Parser/asdl.py (original)
+++ python/branches/py3k/Parser/asdl.py Sat Jan 3 23:47:39 2009
@@ -176,7 +176,7 @@
return Product(fields)
def p_sum_0(self, constructor):
- " sum ::= constructor """
+ " sum ::= constructor "
return [constructor[0]]
def p_sum_1(self, info):
More information about the Python-checkins
mailing list