diff -u python2.6-2.6.2/debian/control python2.6-2.6.2/debian/control
--- python2.6-2.6.2/debian/control
+++ python2.6-2.6.2/debian/control
@@ -1,20 +1,18 @@
Source: python2.6
Section: python
Priority: optional
-Maintainer: Ubuntu Core Developers
-XSBC-Original-Maintainer: Matthias Klose
-Build-Depends: debhelper (>= 5), autoconf, automake1.10, libreadline5-dev, libncursesw5-dev (>= 5.3), tk8.5-dev, zlib1g-dev, blt-dev (>= 2.4z), libssl-dev, sharutils, libbz2-dev, libbluetooth-dev [!hurd-i386 !kfreebsd-i386 !kfreebsd-amd64], locales [!armel !hppa !ia64 !mipsel], libsqlite3-dev, libffi-dev (>= 3.0.5), mime-support, libgpm2 [!hurd-i386 !kfreebsd-i386 !kfreebsd-amd64], netbase, lsb-release, bzip2, libdb-dev
-Build-Depends-Indep: python-sphinx
+Maintainer: Matthias Klose
+Build-Depends: debhelper (>= 5.0.42~), autoconf, automake1.10, libreadline5-dev, libncursesw5-dev (>= 5.3), tk8.4-dev, zlib1g-dev, blt-dev (>= 2.4z), libssl-dev, sharutils, libbz2-dev, libbluetooth-dev [!hurd-i386 !kfreebsd-i386 !kfreebsd-amd64], locales [!armel !hppa !ia64 !mipsel], libsqlite3-dev, libffi4-dev (>= 3.0.5), mime-support, libgpmg1 [!hurd-i386 !kfreebsd-i386 !kfreebsd-amd64], netbase, lsb-release, bzip2, libdb-dev
Build-Conflicts: tcl8.3-dev, tk8.3-dev, python2.6-xml, python-xml, libgdbm-dev
XS-Python-Version: 2.6
-Standards-Version: 3.8.0
+Standards-Version: 3.8.2
Vcs-Browser: https://code.launchpad.net/~doko/python/pkg2.6
Vcs-Bzr: http://bazaar.launchpad.net/~doko/python/pkg2.6
Package: python2.6
Architecture: any
Priority: optional
-Depends: python2.6-minimal (= ${binary:Version}), mime-support, ${shlibs:Depends}
+Depends: python2.6-minimal (= ${binary:Version}), mime-support, ${shlibs:Depends}, ${misc:Depends}
Suggests: python2.6-doc, python2.6-profiler, binutils
Provides: python2.6-cjkcodecs, python2.6-ctypes, python2.6-elementtree, python2.6-celementtree, python2.6-wsgiref
XB-Python-Version: 2.6
@@ -26,11 +24,11 @@
Package: python2.6-minimal
Architecture: any
Priority: required
-Depends: ${shlibs:Depends}
+Depends: ${shlibs:Depends}, ${misc:Depends}
Recommends: python2.6
Suggests: binfmt-support
Replaces: python2.6 (<< 2.6)
-Conflicts: binfmt-support (<< 1.1.2), python-central (<< 0.6.11ubuntu6)
+Conflicts: binfmt-support (<< 1.1.2)
XB-Python-Runtime: python2.6
XB-Python-Version: 2.6
Description: A minimal subset of the Python language (version 2.6)
@@ -43,7 +41,7 @@
Architecture: any
Section: libs
Priority: optional
-Depends: python2.6 (= ${binary:Version}), ${shlibs:Depends}
+Depends: python2.6 (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
Replaces: python2.6 (<< 2.6)
Description: Shared Python runtime library (version 2.6)
Version 2.6 of the high-level, interactive object oriented language,
@@ -55,16 +53,16 @@
Package: python2.6-examples
Architecture: all
-Depends: python2.6 (>= ${source:Version})
+Depends: python2.6 (>= ${source:Version}), ${misc:Depends}
Description: Examples for the Python language (v2.6)
Examples, Demos and Tools for Python (v2.6). These are files included in
the upstream Python distribution (v2.6).
Package: python2.6-dev
Architecture: any
-Depends: python2.6 (= ${binary:Version}), libpython2.6 (= ${binary:Version}), ${shlibs:Depends}
+Depends: python2.6 (= ${binary:Version}), libpython2.6 (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
Recommends: libc6-dev | libc-dev
-Replaces: python2.6 (<< 2.6.2~rc1-0ubuntu2)
+Replaces: python2.6 (<< 2.6.2-1)
Description: Header files and a static library for Python (v2.6)
Header files, a static library and development tools for building
Python (v2.6) modules, extending the Python interpreter or embedding
@@ -74,7 +72,7 @@
Package: idle-python2.6
Architecture: all
-Depends: python2.6, python-tk (>= 2.6~a3), python2.6-tk
+Depends: python2.6, python-tk (>= 2.6~a3), python2.6-tk, ${misc:Depends}
Enhances: python2.6
Replaces: python2.6 (<< 2.6.1-2)
XB-Python-Version: 2.6
@@ -85,6 +83,7 @@
Package: python2.6-doc
Section: doc
Architecture: all
+Depends: libjs-jquery, ${misc:Depends}
Suggests: python2.6
Description: Documentation for the high-level object-oriented language Python (v2.6)
These is the official set of documentation for the interactive high-level
@@ -103,9 +102,10 @@
* Distributing Python Modules
Package: python2.6-dbg
+Section: debug
Architecture: any
Priority: extra
-Depends: python2.6 (>= ${binary:Version}), ${shlibs:Depends}
+Depends: python2.6 (>= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
Suggests: python-gdbm-dbg, python-tk-dbg
Description: Debug Build of the Python Interpreter (version 2.6)
Python interpreter configured with --pydebug. Dynamically loaded modules are
diff -u python2.6-2.6.2/debian/control.in python2.6-2.6.2/debian/control.in
--- python2.6-2.6.2/debian/control.in
+++ python2.6-2.6.2/debian/control.in
@@ -2,18 +2,17 @@
Section: python
Priority: optional
Maintainer: Matthias Klose
-Build-Depends: debhelper (>= 5), autoconf, automake1.10, libreadline5-dev, libncursesw5-dev (>= 5.3), tk8.5-dev, zlib1g-dev, blt-dev (>= 2.4z), libssl-dev, sharutils, libbz2-dev, libbluetooth-dev [!hurd-i386 !kfreebsd-i386 !kfreebsd-amd64], locales [!armel !hppa !ia64 !mipsel], libsqlite3-dev, libffi-dev (>= 3.0.5), mime-support, libgpm2 [!hurd-i386 !kfreebsd-i386 !kfreebsd-amd64], netbase, lsb-release, bzip2, libdb-dev
-Build-Depends-Indep: python-sphinx
+Build-Depends: debhelper (>= 5.0.42~), autoconf, automake1.10, libreadline5-dev, libncursesw5-dev (>= 5.3), tk8.4-dev, zlib1g-dev, blt-dev (>= 2.4z), libssl-dev, sharutils, libbz2-dev, libbluetooth-dev [!hurd-i386 !kfreebsd-i386 !kfreebsd-amd64], locales [!armel !hppa !ia64 !mipsel], libsqlite3-dev, libffi4-dev (>= 3.0.5), mime-support, libgpmg1 [!hurd-i386 !kfreebsd-i386 !kfreebsd-amd64], netbase, lsb-release, bzip2, libdb-dev
Build-Conflicts: tcl8.3-dev, tk8.3-dev, @PVER@-xml, python-xml, libgdbm-dev
XS-Python-Version: @VER@
-Standards-Version: 3.8.0
+Standards-Version: 3.8.2
Vcs-Browser: https://code.launchpad.net/~doko/python/pkg@VER@
Vcs-Bzr: http://bazaar.launchpad.net/~doko/python/pkg@VER@
Package: @PVER@
Architecture: any
Priority: @PRIO@
-Depends: @PVER@-minimal (= ${binary:Version}), mime-support, ${shlibs:Depends}
+Depends: @PVER@-minimal (= ${binary:Version}), mime-support, ${shlibs:Depends}, ${misc:Depends}
Suggests: @PVER@-doc, @PVER@-profiler, binutils
Provides: @PVER@-cjkcodecs, @PVER@-ctypes, @PVER@-elementtree, @PVER@-celementtree, @PVER@-wsgiref
XB-Python-Version: @VER@
@@ -25,11 +24,11 @@
Package: @PVER@-minimal
Architecture: any
Priority: @MINPRIO@
-Depends: ${shlibs:Depends}
+Depends: ${shlibs:Depends}, ${misc:Depends}
Recommends: @PVER@
Suggests: binfmt-support
Replaces: @PVER@ (<< 2.6)
-Conflicts: binfmt-support (<< 1.1.2), python-central (<< 0.6.11ubuntu6)
+Conflicts: binfmt-support (<< 1.1.2)
XB-Python-Runtime: @PVER@
XB-Python-Version: @VER@
Description: A minimal subset of the Python language (version @VER@)
@@ -42,7 +41,7 @@
Architecture: any
Section: libs
Priority: @PRIO@
-Depends: @PVER@ (= ${binary:Version}), ${shlibs:Depends}
+Depends: @PVER@ (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
Replaces: @PVER@ (<< 2.6)
Description: Shared Python runtime library (version @VER@)
Version @VER@ of the high-level, interactive object oriented language,
@@ -54,16 +53,16 @@
Package: @PVER@-examples
Architecture: all
-Depends: @PVER@ (>= ${source:Version})
+Depends: @PVER@ (>= ${source:Version}), ${misc:Depends}
Description: Examples for the Python language (v@VER@)
Examples, Demos and Tools for Python (v@VER@). These are files included in
the upstream Python distribution (v@VER@).
Package: @PVER@-dev
Architecture: any
-Depends: @PVER@ (= ${binary:Version}), lib@PVER@ (= ${binary:Version}), ${shlibs:Depends}
+Depends: @PVER@ (= ${binary:Version}), lib@PVER@ (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
Recommends: libc6-dev | libc-dev
-Replaces: @PVER@ (<< 2.6.2~rc1-0ubuntu2)
+Replaces: @PVER@ (<< 2.6.2-1)
Description: Header files and a static library for Python (v@VER@)
Header files, a static library and development tools for building
Python (v@VER@) modules, extending the Python interpreter or embedding
@@ -73,7 +72,7 @@
Package: idle-@PVER@
Architecture: all
-Depends: @PVER@, python-tk (>= 2.6~a3), @PVER@-tk
+Depends: @PVER@, python-tk (>= 2.6~a3), @PVER@-tk, ${misc:Depends}
Enhances: @PVER@
Replaces: @PVER@ (<< 2.6.1-2)
XB-Python-Version: @VER@
@@ -84,6 +83,7 @@
Package: @PVER@-doc
Section: doc
Architecture: all
+Depends: libjs-jquery, ${misc:Depends}
Suggests: @PVER@
Description: Documentation for the high-level object-oriented language Python (v@VER@)
These is the official set of documentation for the interactive high-level
@@ -102,9 +102,10 @@
* Distributing Python Modules
Package: @PVER@-dbg
+Section: debug
Architecture: any
Priority: extra
-Depends: @PVER@ (>= ${binary:Version}), ${shlibs:Depends}
+Depends: @PVER@ (>= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
Suggests: python-gdbm-dbg, python-tk-dbg
Description: Debug Build of the Python Interpreter (version @VER@)
Python interpreter configured with --pydebug. Dynamically loaded modules are
diff -u python2.6-2.6.2/debian/PVER-minimal.postinst.in python2.6-2.6.2/debian/PVER-minimal.postinst.in
--- python2.6-2.6.2/debian/PVER-minimal.postinst.in
+++ python2.6-2.6.2/debian/PVER-minimal.postinst.in
@@ -45,10 +45,10 @@
fi
)
bc=no
- if [ -z "$2" ] || dpkg --compare-versions "$2" lt 2.6.1-1ubuntu8 \
- || [ -f /var/lib/python/@PVER@_installed ]; then
- bc=yes
- fi
+ #if [ -z "$2" ] || dpkg --compare-versions "$2" lt 2.6.1-1ubuntu8 \
+ # || [ -f /var/lib/python/@PVER@_installed ]; then
+ # bc=yes
+ #fi
if grep -sq '^unsupported-versions[^#]*@PVER@' /usr/share/python/debian_defaults
then
# FIXME: byte compile anyway?
diff -u python2.6-2.6.2/debian/libpython.symbols.in python2.6-2.6.2/debian/libpython.symbols.in
--- python2.6-2.6.2/debian/libpython.symbols.in
+++ python2.6-2.6.2/debian/libpython.symbols.in
@@ -104,6 +104,7 @@
PyDictIterKey_Type@Base @VER@
PyDictIterValue_Type@Base @VER@
PyDictProxy_New@Base @VER@
+ PyDictProxy_Type@Base 2.6.2
PyDict_Clear@Base @VER@
PyDict_Contains@Base @VER@
PyDict_Copy@Base @VER@
@@ -124,6 +125,7 @@
PyDict_Type@Base @VER@
PyDict_Update@Base @VER@
PyDict_Values@Base @VER@
+ PyEllipsis_Type@Base 2.6.2
PyEnum_Type@Base @VER@
PyErr_BadArgument@Base @VER@
PyErr_BadInternalCall@Base @VER@
@@ -232,9 +234,6 @@
PyExc_ValueError@Base @VER@
PyExc_Warning@Base @VER@
PyExc_ZeroDivisionError@Base @VER@
- PyFPE_counter@Base @VER@
- PyFPE_dummy@Base @VER@
- PyFPE_jbuf@Base @VER@
PyFile_AsFile@Base @VER@
PyFile_DecUseCount@Base @VER@
PyFile_FromFile@Base @VER@
@@ -288,6 +287,7 @@
PyGen_NeedsFinalizing@Base @VER@
PyGen_New@Base @VER@
PyGen_Type@Base @VER@
+ PyGetSetDescr_Type@Base 2.6.2
PyGrammar_AddAccelerators@Base @VER@
PyGrammar_FindDFA@Base @VER@
PyGrammar_LabelRepr@Base @VER@
@@ -386,6 +386,7 @@
PyMem_Free@Base @VER@
PyMem_Malloc@Base @VER@
PyMem_Realloc@Base @VER@
+ PyMemberDescr_Type@Base 2.6.2
PyMember_Get@Base @VER@
PyMember_GetOne@Base @VER@
PyMember_Set@Base @VER@
@@ -1137,6 +1138,10 @@
_Py_translatelabels@Base @VER@
_Py_upper__doc__@Base @VER@
+ PyFPE_counter@Base @VER@
+ PyFPE_dummy@Base @VER@
+ PyFPE_jbuf@Base @VER@
+
# don't check for the following symbols, found in extensions
# which either can be built as builtin or extension.
diff -u python2.6-2.6.2/debian/rules python2.6-2.6.2/debian/rules
--- python2.6-2.6.2/debian/rules
+++ python2.6-2.6.2/debian/rules
@@ -82,6 +82,7 @@
with_fpectl = yes
else
PY_MINPRIO = $(PY_PRIO)
+ with_fpectl = yes
endif
CC = gcc
@@ -466,7 +467,7 @@
touch stamp-doc-html
build-doc: patch-stamp stamp-build-doc
-stamp-build-doc: stamp-doc-html
+stamp-build-doc: #stamp-doc-html
touch stamp-build-doc
control-file:
@@ -498,8 +499,8 @@
rm -f patch-stamp* pxxx
rm -f debian/test_results
- -$(MAKE) -C Doc clean
- -$(MAKE) -f Makefile.pre.in srcdir=. distclean
+ $(MAKE) -C Doc clean
+ sed 's/^@/#/' Makefile.pre.in | $(MAKE) -f - srcdir=. distclean
rm -rf Lib/test/db_home
rm -rf $(buildd_static) $(buildd_shared) $(buildd_debug) $(buildd_shdebug)
find -name '*.py[co]' | xargs -r rm -f
@@ -558,6 +559,9 @@
rm -f $(d)/usr/bin/smtpd.py
rm -rf $(d)/usr/lib/python$(VER)/ctypes/macholib
+ : # fix some file permissions
+ chmod a-x $(d)/$(scriptdir)/{fractions,lib-tk/Tix}.py
+
: # move manpages to new names
if [ -d $(d)/usr/man/man1 ]; then \
mkdir -p $(d)/usr/share/man; \
@@ -848,20 +852,24 @@
touch stamp-install
+dh_args = -N$(p_doc)
+
# Build architecture-independent files here.
binary-indep: $(install_target) $(build_target) stamp-build-doc stamp-control
dh_testdir -i
dh_testroot -i
+ifeq (0,1)
: # $(p_doc) package
dh_installdirs -p$(p_doc) \
usr/share/doc/$(p_base) \
usr/share/doc/$(p_doc)
dh_installdocs -p$(p_doc)
cp -a Doc/build/html $(d_doc)/usr/share/doc/$(p_base)/
-
+ rm -f $(d_doc)/usr/share/doc/$(p_base)/html/_static/jquery.js
dh_link -p$(p_doc) \
- /usr/share/doc/$(p_base)/html /usr/share/doc/$(p_doc)/html
+ /usr/share/doc/$(p_base)/html /usr/share/doc/$(p_doc)/html \
+ /usr/share/javacript/jquery.js /usr/share/doc/$(p_base)/html/_static/jquery.js
: # devhelp docs
python debian/pyhtml2devhelp.py \
@@ -870,11 +878,11 @@
gzip -9v $(d_doc)/usr/share/doc/$(p_base)/html/$(PVER).devhelp
dh_link -p$(p_doc) \
/usr/share/doc/$(p_base)/html /usr/share/devhelp/books/$(PVER)
+endif
dh_installdebconf -i $(dh_args)
dh_installexamples -i $(dh_args)
dh_installmenu -i $(dh_args)
- dh_desktop -i $(dh_args)
-dh_icons -i $(dh_args) || dh_iconcache -i $(dh_args)
dh_installchangelogs -i $(dh_args)
dh_link -i $(dh_args)
@@ -902,7 +910,6 @@
# dh_installdebconf -a
dh_installexamples -a
dh_installmenu -a
- dh_desktop -a
-dh_icons -a || dh_iconcache -a
# dh_installmime -a
dh_installchangelogs -a
diff -u python2.6-2.6.2/debian/changelog python2.6-2.6.2/debian/changelog
--- python2.6-2.6.2/debian/changelog
+++ python2.6-2.6.2/debian/changelog
@@ -1,158 +1,64 @@
-python2.6 (2.6.2-0ubuntu2) karmic; urgency=low
+python2.6 (2.6.2-2~hardy1) hardy; urgency=low
- * Update to 20090619, taken from the 2.6 release branch.
- * distutils: Always install into `/usr/local/lib/python2.6/dist-packages'
- if an option `--prefix=/usr/local' is present (except for virtualenv
- and PYTHONUSERBASE installations). LP: #362570.
-
- -- Matthias Klose Fri, 19 Jun 2009 14:40:09 +0200
-
-python2.6 (2.6.2-0ubuntu1) jaunty; urgency=low
-
- * Final Python 2.6.2 release (no code changes compared to last upload).
- * Always use `site-packages' as site directory name in virtualenv.
-
- -- Matthias Klose Wed, 15 Apr 2009 14:18:36 +0200
-
-python2.6 (2.6.2~rc1-0ubuntu2) jaunty; urgency=low
-
- * Update to 20090414, taken from the 2.6 release branch.
- - No numbered table of contents for the docs, not in sphinx-0.5.
- - Fix issues #5731, #5741.
- * Revert the change to interpret an unexpanded prefix in get_python_lib().
- * Fix build failure on ia64.
- * Move the bdist_wininst files into the -dev package (only needed to build
- windows installers).
- * Document changes to the site directory name in the installation manual.
-
- -- Matthias Klose Tue, 14 Apr 2009 08:09:24 +0200
-
-python2.6 (2.6.2~rc1-0ubuntu1) jaunty; urgency=low
-
- * Update to the 2.6.2 release candidate.
- * Work around an automake m4 expansion bug ('${prefix}' and '${exec_prefix}'
- are passed unexpanded to get_python_lib()). Assume in this case, that the
- expansion is '/usr/local', it's not safe to assume '/usr' in this case.
- This is really, really ugly, just hoping that the automake maintainers are
- punished for this bug by one hell level deeper than me for this hack.
- LP: #350016.
-
- -- Matthias Klose Wed, 08 Apr 2009 02:29:05 +0200
-
-python2.6 (2.6.1-1ubuntu11) jaunty; urgency=low
-
- * Update to 20090405, taken from the 2.6 release branch.
- - Fix issue #1651995, _convert_ref for non-ASCII characters. LP: #240929.
- - Fix issue #3845, in PyRun_SimpleFileExFlags avoid invalid memory access
- with short file names. LP: #234798.
- - Fix issues #5190, #5444, #5471, #5615, #5617, #5631, #1326077, #1726172.
- - Fix documentation issues #3427, #4411, #4882, #5018, #5298, #5370,
- #5432, #5563, #5580, #5598, #5601, #5618, #5635, #5642, #5655, #1096310,
- #1530012, #1675026, #1718017, #1742837,
- * Fix issue #1113244: Py_XINCREF, Py_DECREF, Py_XDECREF: Add
- `do { ... } while (0)' to avoid compiler warnings. Closes: #516956.
-
- -- Matthias Klose Mon, 06 Apr 2009 00:36:01 +0200
-
-python2.6 (2.6.1-1ubuntu10) jaunty; urgency=low
-
- [Matthias Klose]
- * Always use the `unix_prefix' scheme for setup.py install in a virtualenv
- setup. LP: #339904.
-
- [Marc Deslauriers]
- * debian/pyhtml2devhelp.py: Update parsing logic.
+ * Update to 20090719, taken from the 2.6 release branch.
+ * Build for Ubutu 8.04, don't run the rtinstall/rtremove scripts
+ for python2.6.
+ * Don't build the python2.6-doc package (dependencies not available in hardy).
- -- Matthias Klose Sat, 04 Apr 2009 11:11:32 +0200
+ -- Matthias Klose Sun, 19 Jul 2009 12:58:14 -0400
-python2.6 (2.6.1-1ubuntu9) jaunty; urgency=low
+python2.6 (2.6.2-2) experimental; urgency=low
- * debian/control.in:
- Add conflict with the intrepid version of python-central
- to ensure clean upgrades (LP: #354228).
- * debian/PVER-minimal.postinst.in:
- - Run the rtinstall scripts again for versions less than
- 2.6.1-1ubuntu8 to ensure the byte compiliation is done
- for all python packages.
+ * Symbol _Py_force_double@Base is i386 only. Closes: #534208.
- -- Michael Vogt Fri, 03 Apr 2009 10:41:02 +0200
+ -- Matthias Klose Tue, 23 Jun 2009 06:14:40 +0200
-python2.6 (2.6.1-1ubuntu8) jaunty; urgency=low
+python2.6 (2.6.2-1) experimental; urgency=low
- [Matthias Klose]
- * Update to 20090402, taken from the 2.6 release branch.
- - Fix issues #2625, #5068, #5387, #5536, #5561, #5619, #5632.
+ * Final Python 2.6.2 release.
+ - Update Doc/tools/sphinxext/download.html. Closes: #526797.
+ * Update to 20090621, taken from the 2.6 release branch.
+
* Address issues when working with PYTHONUSERBASE and non standard prefix
(pointed out by Larry Hastings):
- distutils.sysconfig.get_python_lib(): Only return ".../dist-packages" if
prefix is the default prefix and if PYTHONUSERBASE is not set in the
environment.
- site.addusersitepackages(): Add USER_BASE/.../dist-packages to sys.path.
- * Do not add /usr/lib/pythonXY.zip on sys.path.
-
- [Marc Deslauriers]
- * debian/pyhtml2devhelp.py: update for python 2.6
- * debian/rules: re-enable documentation files for devhelp. LP: #338791.
-
- [Michael Vogt]
- * Fix missing rtinstall calls by inverting the supported/unsupported
- check. LP: #353251.
-
- -- Matthias Klose Thu, 02 Apr 2009 17:34:21 +0200
-
-python2.6 (2.6.1-1ubuntu7) jaunty; urgency=low
-
- * Fix symbols file for 64bit architectures.
-
- -- Matthias Klose Sat, 28 Mar 2009 16:05:37 +0100
-
-python2.6 (2.6.1-1ubuntu6) jaunty; urgency=low
+ * Always use the `unix_prefix' scheme for setup.py install in a virtualenv
+ setup. LP: #339904.
+ * Don't make the setup.py install options --install-layout=deb and --prefix
+ conflict with each other.
+ * distutils: Always install into `/usr/local/lib/python2.6/dist-packages'
+ if an option `--prefix=/usr/local' is present (except for virtualenv
+ and PYTHONUSERBASE installations). LP: #362570.
+ * Always use `site-packages' as site directory name in virtualenv.
- * Configure with --enable-unicode=ucs4, accidentially removed in
- 2.6.1-1ubuntu5.
+ * Do not add /usr/lib/pythonXY.zip on sys.path.
* Add symbols files for libpython2.6 and python2.6-dbg, don't include symbols
from builtins, which can either be built as builtins or extensions.
* Keep an empty lib-dynload in python2.6-minimal to avoid a warning on
startup.
- * Revert changes from 2.6.1-1ubuntu5.1.
-
- -- Matthias Klose Fri, 27 Mar 2009 19:47:17 +0100
-
-python2.6 (2.6.1-1ubuntu5.1) jaunty; urgency=low
-
- * revert to 2.6.1-1ubuntu4 because the -1ubuntu5 upload breaks
- the entire pygtk and makes important apps like update-manager
- no longer start (LP: #349467)
-
- -- Michael Vogt Fri, 27 Mar 2009 11:26:41 +0100
-
-python2.6 (2.6.1-1ubuntu5) jaunty; urgency=low
-
- * Update to 20090322, taken from the 2.6 release branch.
- - Fix issue #4258: Use 30-bit digits for Python longs, on 64-bit platforms.
- - Fix comment macro in python manpage.
* Build a shared library configured --with-pydebug. LP: #322580.
* Fix some lintian warnings.
-
- -- Matthias Klose Sun, 22 Mar 2009 14:27:24 +0100
-
-python2.6 (2.6.1-1ubuntu4) jaunty; urgency=low
-
- * Don't make the setup.py install options --install-layout=deb and --prefix
- conflict with each other.
-
- -- Matthias Klose Thu, 19 Mar 2009 14:00:12 +0100
-
-python2.6 (2.6.1-1ubuntu3) jaunty; urgency=low
-
* Use the information in /etc/lsb-release for platform.dist(). LP: #196526.
- * Fix typo in installation scheme, introduced in previous upload.
+ * Move the bdist_wininst files into the -dev package (only needed to build
+ windows installers).
+ * Document changes to the site directory name in the installation manual.
+ * Fix issue #1113244: Py_XINCREF, Py_DECREF, Py_XDECREF: Add
+ `do { ... } while (0)' to avoid compiler warnings. Closes: #516956.
+ * debian/pyhtml2devhelp.py: update for python 2.6 (Marc Deslauriers).
+ * debian/rules: re-enable documentation files for devhelp. LP: #338791.
+ * python2.6-doc: Depend on libjs-jquery, use jquery.js from this package.
+ Closes: #523482.
- -- Matthias Klose Wed, 18 Mar 2009 19:44:34 +0100
+ -- Matthias Klose Sun, 21 Jun 2009 16:12:15 +0200
-python2.6 (2.6.1-1ubuntu2) jaunty; urgency=low
+python2.6 (2.6.1-3) experimental; urgency=low
- * Update installation schemes: LP: #338395.
+ * Update to 20090318, taken from the 2.6 release branch.
+ * Use the information in /etc/lsb-release for platform.dist().
+ * Update installation schemes: LP: #338395. Closes: #520278.
- When the --prefix option is used for setup.py install, Use the
`unix_prefix' scheme.
- Use the `deb_system' scheme if --install-layout=deb is specified.
@@ -161,16 +67,18 @@
- The options --install-layout=deb and --prefix are exclusive.
* Don't fail installation/removal if directories in /usr/local cannot
be created. LP: #338227.
+ * Don't try to move away the site-packages directory. There never was a
+ python2.6 upload using site-packages. Closes: #518780.
+ * Fix build failure on mips/mipsel. Closes: #519386.
- -- Matthias Klose Wed, 18 Mar 2009 12:12:34 +0100
+ -- Matthias Klose Wed, 18 Mar 2009 22:17:20 +0100
-python2.6 (2.6.1-1ubuntu1) jaunty; urgency=low
+python2.6 (2.6.1-2) experimental; urgency=low
- * Update to 20090302, taken from the 2.6 release branch.
* Move libpython2.6.a into the python2.6-dev package.
* Move idlelib into the idle-python2.6 package.
- -- Matthias Klose Wed, 25 Feb 2009 18:42:19 +0100
+ -- Matthias Klose Wed, 25 Feb 2009 18:42:19 +0100
python2.6 (2.6.1-1) experimental; urgency=low
diff -u python2.6-2.6.2/debian/patches/svn-updates.dpatch python2.6-2.6.2/debian/patches/svn-updates.dpatch
--- python2.6-2.6.2/debian/patches/svn-updates.dpatch
+++ python2.6-2.6.2/debian/patches/svn-updates.dpatch
@@ -1,6 +1,6 @@
#! /bin/sh -e
-# DP: SVN updates of the release26-maint branch (until 2009-06-19).
+# DP: SVN updates of the release26-maint branch (until 2009-07-19).
dir=
if [ $# -eq 3 -a "$2" = '-d' ]; then
@@ -31,8 +31,8 @@
Index: Python/ceval.c
===================================================================
---- Python/ceval.c (.../tags/r262) (Revision 73476)
-+++ Python/ceval.c (.../branches/release26-maint) (Revision 73476)
+--- Python/ceval.c (.../tags/r262) (Revision 74094)
++++ Python/ceval.c (.../branches/release26-maint) (Revision 74094)
@@ -3911,10 +3911,17 @@
PCALL(PCALL_METHOD);
else if (PyType_Check(func))
@@ -73,8 +73,8 @@
Py_XDECREF(kwdict);
Index: Python/pymath.c
===================================================================
---- Python/pymath.c (.../tags/r262) (Revision 73476)
-+++ Python/pymath.c (.../branches/release26-maint) (Revision 73476)
+--- Python/pymath.c (.../tags/r262) (Revision 74094)
++++ Python/pymath.c (.../branches/release26-maint) (Revision 74094)
@@ -1,5 +1,18 @@
#include "Python.h"
@@ -103,10 +103,27 @@
copysign(double x, double y)
{
/* use atan2 to distinguish -0. from 0. */
+Index: Python/import.c
+===================================================================
+--- Python/import.c (.../tags/r262) (Revision 74094)
++++ Python/import.c (.../branches/release26-maint) (Revision 74094)
+@@ -879,7 +879,11 @@
+ {
+ FILE *fp;
+ time_t mtime = srcstat->st_mtime;
+- mode_t mode = srcstat->st_mode;
++#ifdef MS_WINDOWS /* since Windows uses different permissions */
++ mode_t mode = srcstat->st_mode & ~S_IEXEC;
++#else
++ mode_t mode = srcstat->st_mode & ~S_IXUSR & ~S_IXGRP & ~S_IXOTH;
++#endif
+
+ fp = open_exclusive(cpathname, mode);
+ if (fp == NULL) {
Index: Python/marshal.c
===================================================================
---- Python/marshal.c (.../tags/r262) (Revision 73476)
-+++ Python/marshal.c (.../branches/release26-maint) (Revision 73476)
+--- Python/marshal.c (.../tags/r262) (Revision 74094)
++++ Python/marshal.c (.../branches/release26-maint) (Revision 74094)
@@ -1179,6 +1179,20 @@
return Py_None;
}
@@ -230,8 +247,8 @@
PyModule_AddIntConstant(mod, "version", Py_MARSHAL_VERSION);
Index: Python/pystrtod.c
===================================================================
---- Python/pystrtod.c (.../tags/r262) (Revision 73476)
-+++ Python/pystrtod.c (.../branches/release26-maint) (Revision 73476)
+--- Python/pystrtod.c (.../tags/r262) (Revision 74094)
++++ Python/pystrtod.c (.../branches/release26-maint) (Revision 74094)
@@ -229,7 +229,7 @@
/* Ensure that any exponent, if present, is at least MIN_EXPONENT_DIGITS
in length. */
@@ -250,10 +267,139 @@
/* If format_char is 'Z', make sure we have at least one character
after the decimal point (and make sure we have a decimal point). */
+Index: Python/bltinmodule.c
+===================================================================
+--- Python/bltinmodule.c (.../tags/r262) (Revision 74094)
++++ Python/bltinmodule.c (.../branches/release26-maint) (Revision 74094)
+@@ -1556,14 +1556,40 @@
+ builtin_print(PyObject *self, PyObject *args, PyObject *kwds)
+ {
+ static char *kwlist[] = {"sep", "end", "file", 0};
+- static PyObject *dummy_args;
++ static PyObject *dummy_args = NULL;
++ static PyObject *unicode_newline = NULL, *unicode_space = NULL;
++ static PyObject *str_newline = NULL, *str_space = NULL;
++ PyObject *newline, *space;
+ PyObject *sep = NULL, *end = NULL, *file = NULL;
+- int i, err;
++ int i, err, use_unicode = 0;
+
+ if (dummy_args == NULL) {
+ if (!(dummy_args = PyTuple_New(0)))
+ return NULL;
+ }
++ if (str_newline == NULL) {
++ str_newline = PyString_FromString("\n");
++ if (str_newline == NULL)
++ return NULL;
++ str_space = PyString_FromString(" ");
++ if (str_space == NULL) {
++ Py_CLEAR(str_newline);
++ return NULL;
++ }
++ unicode_newline = PyUnicode_FromString("\n");
++ if (unicode_newline == NULL) {
++ Py_CLEAR(str_newline);
++ Py_CLEAR(str_space);
++ return NULL;
++ }
++ unicode_space = PyUnicode_FromString(" ");
++ if (unicode_space == NULL) {
++ Py_CLEAR(str_newline);
++ Py_CLEAR(str_space);
++ Py_CLEAR(unicode_space);
++ return NULL;
++ }
++ }
+ if (!PyArg_ParseTupleAndKeywords(dummy_args, kwds, "|OOO:print",
+ kwlist, &sep, &end, &file))
+ return NULL;
+@@ -1573,26 +1599,56 @@
+ if (file == Py_None)
+ Py_RETURN_NONE;
+ }
++ if (sep == Py_None) {
++ sep = NULL;
++ }
++ else if (sep) {
++ if (PyUnicode_Check(sep)) {
++ use_unicode = 1;
++ }
++ else if (!PyString_Check(sep)) {
++ PyErr_Format(PyExc_TypeError,
++ "sep must be None, str or unicode, not %.200s",
++ sep->ob_type->tp_name);
++ return NULL;
++ }
++ }
++ if (end == Py_None)
++ end = NULL;
++ else if (end) {
++ if (PyUnicode_Check(end)) {
++ use_unicode = 1;
++ }
++ else if (!PyString_Check(end)) {
++ PyErr_Format(PyExc_TypeError,
++ "end must be None, str or unicode, not %.200s",
++ end->ob_type->tp_name);
++ return NULL;
++ }
++ }
+
+- if (sep && sep != Py_None && !PyString_Check(sep) &&
+- !PyUnicode_Check(sep)) {
+- PyErr_Format(PyExc_TypeError,
+- "sep must be None, str or unicode, not %.200s",
+- sep->ob_type->tp_name);
+- return NULL;
++ if (!use_unicode) {
++ for (i = 0; i < PyTuple_Size(args); i++) {
++ if (PyUnicode_Check(PyTuple_GET_ITEM(args, i))) {
++ use_unicode = 1;
++ break;
++ }
++ }
+ }
+- if (end && end != Py_None && !PyString_Check(end) &&
+- !PyUnicode_Check(end)) {
+- PyErr_Format(PyExc_TypeError,
+- "end must be None, str or unicode, not %.200s",
+- end->ob_type->tp_name);
+- return NULL;
++ if (use_unicode) {
++ newline = unicode_newline;
++ space = unicode_space;
+ }
++ else {
++ newline = str_newline;
++ space = str_space;
++ }
+
+ for (i = 0; i < PyTuple_Size(args); i++) {
+ if (i > 0) {
+- if (sep == NULL || sep == Py_None)
+- err = PyFile_WriteString(" ", file);
++ if (sep == NULL)
++ err = PyFile_WriteObject(space, file,
++ Py_PRINT_RAW);
+ else
+ err = PyFile_WriteObject(sep, file,
+ Py_PRINT_RAW);
+@@ -1605,8 +1661,8 @@
+ return NULL;
+ }
+
+- if (end == NULL || end == Py_None)
+- err = PyFile_WriteString("\n", file);
++ if (end == NULL)
++ err = PyFile_WriteObject(newline, file, Py_PRINT_RAW);
+ else
+ err = PyFile_WriteObject(end, file, Py_PRINT_RAW);
+ if (err)
Index: Python/sysmodule.c
===================================================================
---- Python/sysmodule.c (.../tags/r262) (Revision 73476)
-+++ Python/sysmodule.c (.../branches/release26-maint) (Revision 73476)
+--- Python/sysmodule.c (.../tags/r262) (Revision 74094)
++++ Python/sysmodule.c (.../branches/release26-maint) (Revision 74094)
@@ -1161,7 +1161,7 @@
@@ -263,10 +409,23 @@
svn_revision = svnversion;
else if (istag) {
len = strlen(_patchlevel_revision);
+Index: Python/_warnings.c
+===================================================================
+--- Python/_warnings.c (.../tags/r262) (Revision 74094)
++++ Python/_warnings.c (.../branches/release26-maint) (Revision 74094)
+@@ -304,6 +304,8 @@
+ }
+ if (rc == 1) {
+ text = PyObject_Str(message);
++ if (text == NULL)
++ goto cleanup;
+ category = (PyObject*)message->ob_type;
+ }
+ else {
Index: Include/patchlevel.h
===================================================================
---- Include/patchlevel.h (.../tags/r262) (Revision 73476)
-+++ Include/patchlevel.h (.../branches/release26-maint) (Revision 73476)
+--- Include/patchlevel.h (.../tags/r262) (Revision 74094)
++++ Include/patchlevel.h (.../branches/release26-maint) (Revision 74094)
@@ -27,7 +27,7 @@
#define PY_RELEASE_SERIAL 0
@@ -278,8 +437,8 @@
/* Subversion Revision number of this file (not of the repository) */
Index: Include/pymath.h
===================================================================
---- Include/pymath.h (.../tags/r262) (Revision 73476)
-+++ Include/pymath.h (.../branches/release26-maint) (Revision 73476)
+--- Include/pymath.h (.../tags/r262) (Revision 74094)
++++ Include/pymath.h (.../branches/release26-maint) (Revision 74094)
@@ -77,6 +77,21 @@
#define Py_MATH_E 2.7182818284590452354
#endif
@@ -349,8 +508,8 @@
#define Py_IS_FINITE(X) (!Py_IS_INFINITY(X) && !Py_IS_NAN(X))
Index: Include/descrobject.h
===================================================================
---- Include/descrobject.h (.../tags/r262) (Revision 73476)
-+++ Include/descrobject.h (.../branches/release26-maint) (Revision 73476)
+--- Include/descrobject.h (.../tags/r262) (Revision 74094)
++++ Include/descrobject.h (.../branches/release26-maint) (Revision 74094)
@@ -68,6 +68,9 @@
} PyWrapperDescrObject;
@@ -363,8 +522,8 @@
PyAPI_FUNC(PyObject *) PyDescr_NewClassMethod(PyTypeObject *, PyMethodDef *);
Index: Include/pymacconfig.h
===================================================================
---- Include/pymacconfig.h (.../tags/r262) (Revision 73476)
-+++ Include/pymacconfig.h (.../branches/release26-maint) (Revision 73476)
+--- Include/pymacconfig.h (.../tags/r262) (Revision 74094)
++++ Include/pymacconfig.h (.../branches/release26-maint) (Revision 74094)
@@ -67,7 +67,19 @@
#define WORDS_BIGENDIAN 1
#endif /* __BIG_ENDIAN */
@@ -387,8 +546,8 @@
#endif /* PYMACCONFIG_H */
Index: Include/sliceobject.h
===================================================================
---- Include/sliceobject.h (.../tags/r262) (Revision 73476)
-+++ Include/sliceobject.h (.../branches/release26-maint) (Revision 73476)
+--- Include/sliceobject.h (.../tags/r262) (Revision 74094)
++++ Include/sliceobject.h (.../branches/release26-maint) (Revision 74094)
@@ -25,6 +25,7 @@
} PySliceObject;
@@ -397,10 +556,142 @@
#define PySlice_Check(op) (Py_TYPE(op) == &PySlice_Type)
+Index: Demo/turtle/tdemo_chaos.py
+===================================================================
+--- Demo/turtle/tdemo_chaos.py (.../tags/r262) (Revision 74094)
++++ Demo/turtle/tdemo_chaos.py (.../branches/release26-maint) (Revision 74094)
+@@ -1,11 +1,13 @@
+-# Datei: chaosplotter.py
+-# Autor: Gregor Lingl
+-# Datum: 31. 5. 2008
++# File: tdemo_chaos.py
++# Author: Gregor Lingl
++# Date: 2009-06-24
+
+-# Ein einfaches Programm zur Demonstration von "chaotischem Verhalten".
++# A demonstration of chaos
+
+ from turtle import *
+
++N = 80
++
+ def f(x):
+ return 3.9*x*(1-x)
+
+@@ -15,47 +17,41 @@
+ def h(x):
+ return 3.9*x-3.9*x*x
+
+-def coosys():
+- penup()
+- goto(-1,0)
++def jumpto(x, y):
++ penup(); goto(x,y)
++
++def line(x1, y1, x2, y2):
++ jumpto(x1, y1)
+ pendown()
+- goto(n+1,0)
+- penup()
+- goto(0, -0.1)
+- pendown()
+- goto(-0.1, 1.1)
++ goto(x2, y2)
+
+-def plot(fun, start, farbe):
++def coosys():
++ line(-1, 0, N+1, 0)
++ line(0, -0.1, 0, 1.1)
++
++def plot(fun, start, colour):
++ pencolor(colour)
+ x = start
+- pencolor(farbe)
+- penup()
+- goto(0, x)
++ jumpto(0, x)
+ pendown()
+ dot(5)
+- for i in range(n):
++ for i in range(N):
+ x=fun(x)
+ goto(i+1,x)
+ dot(5)
+
+ def main():
+- global n
+- n = 80
+- ox=-250.0
+- oy=-150.0
+- ex= -2.0*ox / n
+- ey=300.0
+-
+ reset()
+- setworldcoordinates(-1.0,-0.1, n+1, 1.1)
++ setworldcoordinates(-1.0,-0.1, N+1, 1.1)
+ speed(0)
+ hideturtle()
+ coosys()
+ plot(f, 0.35, "blue")
+ plot(g, 0.35, "green")
+ plot(h, 0.35, "red")
++ # Now zoom in:
+ for s in range(100):
+- setworldcoordinates(0.5*s,-0.1, n+1, 1.1)
+-
++ setworldcoordinates(0.5*s,-0.1, N+1, 1.1)
+ return "Done!"
+
+ if __name__ == "__main__":
+Index: Demo/tkinter/matt/menu-simple.py
+===================================================================
+--- Demo/tkinter/matt/menu-simple.py (.../tags/r262) (Revision 74094)
++++ Demo/tkinter/matt/menu-simple.py (.../branches/release26-maint) (Revision 74094)
+@@ -48,7 +48,7 @@
+ File_button.menu = Menu(File_button)
+
+ # add an item. The first param is a menu entry type,
+- # must be one of: "cascade", "checkbutton", "command", "radiobutton", "seperator"
++ # must be one of: "cascade", "checkbutton", "command", "radiobutton", "separator"
+ # see menu-demo-2.py for examples of use
+ File_button.menu.add_command(label='New...', underline=0,
+ command=new_file)
+Index: Demo/tkinter/matt/menu-all-types-of-entries.py
+===================================================================
+--- Demo/tkinter/matt/menu-all-types-of-entries.py (.../tags/r262) (Revision 74094)
++++ Demo/tkinter/matt/menu-all-types-of-entries.py (.../branches/release26-maint) (Revision 74094)
+@@ -110,12 +110,12 @@
+ Cascade_button.menu.choices = Menu(Cascade_button.menu)
+
+ # ...and this is a menu that cascades from that.
+- Cascade_button.menu.choices.wierdones = Menu(Cascade_button.menu.choices)
++ Cascade_button.menu.choices.weirdones = Menu(Cascade_button.menu.choices)
+
+ # then you define the menus from the deepest level on up.
+- Cascade_button.menu.choices.wierdones.add_command(label='avacado')
+- Cascade_button.menu.choices.wierdones.add_command(label='belgian endive')
+- Cascade_button.menu.choices.wierdones.add_command(label='beefaroni')
++ Cascade_button.menu.choices.weirdones.add_command(label='avacado')
++ Cascade_button.menu.choices.weirdones.add_command(label='belgian endive')
++ Cascade_button.menu.choices.weirdones.add_command(label='beefaroni')
+
+ # definition of the menu one level up...
+ Cascade_button.menu.choices.add_command(label='Chocolate')
+@@ -125,8 +125,8 @@
+ Cascade_button.menu.choices.add_command(label='Rocky Road')
+ Cascade_button.menu.choices.add_command(label='BubbleGum')
+ Cascade_button.menu.choices.add_cascade(
+- label='Wierd Flavors',
+- menu=Cascade_button.menu.choices.wierdones)
++ label='Weird Flavors',
++ menu=Cascade_button.menu.choices.weirdones)
+
+ # and finally, the definition for the top level
+ Cascade_button.menu.add_cascade(label='more choices',
Index: configure.in
===================================================================
---- configure.in (.../tags/r262) (Revision 73476)
-+++ configure.in (.../branches/release26-maint) (Revision 73476)
+--- configure.in (.../tags/r262) (Revision 74094)
++++ configure.in (.../branches/release26-maint) (Revision 74094)
@@ -767,7 +767,7 @@
then
SVNVERSION="svnversion \$(srcdir)"
@@ -478,8 +769,8 @@
Index: Objects/complexobject.c
===================================================================
---- Objects/complexobject.c (.../tags/r262) (Revision 73476)
-+++ Objects/complexobject.c (.../branches/release26-maint) (Revision 73476)
+--- Objects/complexobject.c (.../tags/r262) (Revision 74094)
++++ Objects/complexobject.c (.../branches/release26-maint) (Revision 74094)
@@ -785,7 +785,7 @@
complex_int(PyObject *v)
{
@@ -533,10 +824,23 @@
s=end;
if (*s=='J' || *s=='j') {
+Index: Objects/abstract.c
+===================================================================
+--- Objects/abstract.c (.../tags/r262) (Revision 74094)
++++ Objects/abstract.c (.../branches/release26-maint) (Revision 74094)
+@@ -2244,7 +2244,7 @@
+
+ /* Iterate over seq. Result depends on the operation:
+ PY_ITERSEARCH_COUNT: -1 if error, else # of times obj appears in seq.
+- PY_ITERSEARCH_INDEX: 0-based index of first occurence of obj in seq;
++ PY_ITERSEARCH_INDEX: 0-based index of first occurrence of obj in seq;
+ set ValueError and return -1 if none found; also return -1 on error.
+ Py_ITERSEARCH_CONTAINS: return 1 if obj in seq, else 0; -1 on error.
+ */
Index: Objects/object.c
===================================================================
---- Objects/object.c (.../tags/r262) (Revision 73476)
-+++ Objects/object.c (.../branches/release26-maint) (Revision 73476)
+--- Objects/object.c (.../tags/r262) (Revision 74094)
++++ Objects/object.c (.../branches/release26-maint) (Revision 74094)
@@ -2,6 +2,7 @@
/* Generic object operations; and implementation of None (NoObject) */
@@ -545,6 +849,15 @@
#ifdef __cplusplus
extern "C" {
+@@ -1959,7 +1960,7 @@
+ none_dealloc(PyObject* ignore)
+ {
+ /* This should never get called, but we also don't want to SEGV if
+- * we accidently decref None out of existance.
++ * we accidentally decref None out of existence.
+ */
+ Py_FatalError("deallocating None");
+ }
@@ -2022,28 +2023,132 @@
_Py_ReadyTypes(void)
{
@@ -686,10 +999,41 @@
}
+Index: Objects/methodobject.c
+===================================================================
+--- Objects/methodobject.c (.../tags/r262) (Revision 74094)
++++ Objects/methodobject.c (.../branches/release26-maint) (Revision 74094)
+@@ -230,12 +230,9 @@
+ PyObject *res;
+ int eq;
+
+- if ((op != Py_EQ && op != Py_NE) ||
+- !PyCFunction_Check(self) ||
+- !PyCFunction_Check(other))
+- {
+- /* Py3K warning if types are not equal and comparison isn't == or != */
+- if (PyErr_WarnPy3k("builtin_function_or_method inequality "
++ if (op != Py_EQ && op != Py_NE) {
++ /* Py3K warning if comparison isn't == or !=. */
++ if (PyErr_WarnPy3k("builtin_function_or_method order "
+ "comparisons not supported in 3.x", 1) < 0) {
+ return NULL;
+ }
+@@ -243,6 +240,10 @@
+ Py_INCREF(Py_NotImplemented);
+ return Py_NotImplemented;
+ }
++ else if (!PyCFunction_Check(self) || !PyCFunction_Check(other)) {
++ Py_INCREF(Py_NotImplemented);
++ return Py_NotImplemented;
++ }
+ a = (PyCFunctionObject *)self;
+ b = (PyCFunctionObject *)other;
+ eq = a->m_self == b->m_self;
Index: Objects/typeobject.c
===================================================================
---- Objects/typeobject.c (.../tags/r262) (Revision 73476)
-+++ Objects/typeobject.c (.../branches/release26-maint) (Revision 73476)
+--- Objects/typeobject.c (.../tags/r262) (Revision 74094)
++++ Objects/typeobject.c (.../branches/release26-maint) (Revision 74094)
@@ -928,6 +928,9 @@
assert(base);
}
@@ -712,8 +1056,8 @@
*/
Index: Objects/unicodeobject.c
===================================================================
---- Objects/unicodeobject.c (.../tags/r262) (Revision 73476)
-+++ Objects/unicodeobject.c (.../branches/release26-maint) (Revision 73476)
+--- Objects/unicodeobject.c (.../tags/r262) (Revision 74094)
++++ Objects/unicodeobject.c (.../branches/release26-maint) (Revision 74094)
@@ -616,15 +616,25 @@
count = vargs;
#endif
@@ -818,10 +1162,32 @@
break;
}
case 'U':
+@@ -1704,7 +1688,7 @@
+ charsleft = (charsleft << 16) | ch;
+ /* out, charsleft, bitsleft = */ ENCODE(out, charsleft, bitsleft);
+
+- /* If the next character is special then we dont' need to terminate
++ /* If the next character is special then we don't need to terminate
+ the shift sequence. If the next character is not a BASE64 character
+ or '-' then the shift sequence will be terminated implicitly and we
+ don't have to insert a '-'. */
+Index: Objects/listsort.txt
+===================================================================
+--- Objects/listsort.txt (.../tags/r262) (Revision 74094)
++++ Objects/listsort.txt (.../branches/release26-maint) (Revision 74094)
+@@ -309,7 +309,7 @@
+ A:10000 B:20000 C:10000
+
+ we dare not merge A with C first, because if A, B and C happen to contain
+-a common element, it would get out of order wrt its occurence(s) in B. The
++a common element, it would get out of order wrt its occurrence(s) in B. The
+ merging must be done as (A+B)+C or A+(B+C) instead.
+
+ So merging is always done on two consecutive runs at a time, and in-place,
Index: Objects/descrobject.c
===================================================================
---- Objects/descrobject.c (.../tags/r262) (Revision 73476)
-+++ Objects/descrobject.c (.../branches/release26-maint) (Revision 73476)
+--- Objects/descrobject.c (.../tags/r262) (Revision 74094)
++++ Objects/descrobject.c (.../branches/release26-maint) (Revision 74094)
@@ -456,7 +456,7 @@
0, /* tp_descr_set */
};
@@ -918,8 +1284,8 @@
PyErr_Clear();
Index: Objects/unicodectype.c
===================================================================
---- Objects/unicodectype.c (.../tags/r262) (Revision 73476)
-+++ Objects/unicodectype.c (.../branches/release26-maint) (Revision 73476)
+--- Objects/unicodectype.c (.../tags/r262) (Revision 74094)
++++ Objects/unicodectype.c (.../branches/release26-maint) (Revision 74094)
@@ -76,13 +76,8 @@
Py_UNICODE _PyUnicode_ToTitlecase(register Py_UNICODE ch)
{
@@ -937,8 +1303,8 @@
Index: Objects/unicodetype_db.h
===================================================================
---- Objects/unicodetype_db.h (.../tags/r262) (Revision 73476)
-+++ Objects/unicodetype_db.h (.../branches/release26-maint) (Revision 73476)
+--- Objects/unicodetype_db.h (.../tags/r262) (Revision 74094)
++++ Objects/unicodetype_db.h (.../branches/release26-maint) (Revision 74094)
@@ -118,7 +118,7 @@
{0, 0, 0, 0, 7, 4},
{0, 0, 0, 0, 8, 4},
@@ -959,8 +1325,8 @@
};
Index: Objects/stringlib/string_format.h
===================================================================
---- Objects/stringlib/string_format.h (.../tags/r262) (Revision 73476)
-+++ Objects/stringlib/string_format.h (.../branches/release26-maint) (Revision 73476)
+--- Objects/stringlib/string_format.h (.../tags/r262) (Revision 74094)
++++ Objects/stringlib/string_format.h (.../branches/release26-maint) (Revision 74094)
@@ -329,8 +329,9 @@
*name_idx = get_integer(name);
break;
@@ -975,8 +1341,8 @@
Index: Objects/frameobject.c
===================================================================
---- Objects/frameobject.c (.../tags/r262) (Revision 73476)
-+++ Objects/frameobject.c (.../branches/release26-maint) (Revision 73476)
+--- Objects/frameobject.c (.../tags/r262) (Revision 74094)
++++ Objects/frameobject.c (.../branches/release26-maint) (Revision 74094)
@@ -70,7 +70,7 @@
int new_iblock = 0; /* The new value of f_iblock */
unsigned char *code = NULL; /* The bytecode for the frame... */
@@ -1022,8 +1388,8 @@
Index: Objects/sliceobject.c
===================================================================
---- Objects/sliceobject.c (.../tags/r262) (Revision 73476)
-+++ Objects/sliceobject.c (.../branches/release26-maint) (Revision 73476)
+--- Objects/sliceobject.c (.../tags/r262) (Revision 74094)
++++ Objects/sliceobject.c (.../branches/release26-maint) (Revision 74094)
@@ -22,7 +22,7 @@
return PyString_FromString("Ellipsis");
}
@@ -1035,8 +1401,8 @@
0, /* tp_basicsize */
Index: Objects/floatobject.c
===================================================================
---- Objects/floatobject.c (.../tags/r262) (Revision 73476)
-+++ Objects/floatobject.c (.../branches/release26-maint) (Revision 73476)
+--- Objects/floatobject.c (.../tags/r262) (Revision 74094)
++++ Objects/floatobject.c (.../branches/release26-maint) (Revision 74094)
@@ -1263,6 +1263,20 @@
>>> 3.14159.hex()\n\
'0x1.921f9f01b866ep+1'");
@@ -1162,11 +1528,37 @@
return PyFloat_FromString(x, NULL);
return PyNumber_Float(x);
}
+Index: Misc/HISTORY
+===================================================================
+--- Misc/HISTORY (.../tags/r262) (Revision 74094)
++++ Misc/HISTORY (.../branches/release26-maint) (Revision 74094)
+@@ -9862,7 +9862,7 @@
+ Also (quite separately, but strangely related to the philosophical
+ issue above) fix abspath() so that if win32api exists, it doesn't fail
+ when the path doesn't actually exist -- if GetFullPathName() fails,
+- fall back on the old strategy (join with getcwd() if neccessary, and
++ fall back on the old strategy (join with getcwd() if necessary, and
+ then use normpath()).
+
+ * configure.in, configure, config.h.in, acconfig.h:
+Index: Misc/AIX-NOTES
+===================================================================
+--- Misc/AIX-NOTES (.../tags/r262) (Revision 74094)
++++ Misc/AIX-NOTES (.../branches/release26-maint) (Revision 74094)
+@@ -22,7 +22,7 @@
+ (2) Stefan Esser (se@MI.Uni-Koeln.DE), in work done to compile Python
+ 1.0.0 on AIX 3.2.4, reports that AIX compilers don't like the LANG
+ environment varaiable set to European locales. This makes the compiler
+- generate floating point constants using "," as the decimal seperator,
++ generate floating point constants using "," as the decimal separator,
+ which the assembler doesn't understand (or perhaps it is the other way
+ around, with the assembler expecting, but not getting "," in float
+ numbers). "LANG=C; export LANG" solves the problem, as does
Index: Misc/NEWS
===================================================================
---- Misc/NEWS (.../tags/r262) (Revision 73476)
-+++ Misc/NEWS (.../branches/release26-maint) (Revision 73476)
-@@ -4,12 +4,145 @@
+--- Misc/NEWS (.../tags/r262) (Revision 74094)
++++ Misc/NEWS (.../branches/release26-maint) (Revision 74094)
+@@ -4,12 +4,170 @@
(editors: check NEWS.help for information about editing NEWS using ReST.)
@@ -1180,9 +1572,18 @@
+Core and Builtins
+-----------------
++- Issue #6070: On posix platforms import no longer copies the execute bit
++ from the .py file to the .pyc file if it is set.
++
+- Issue #4547: When debugging a very large function, it was not always
+ possible to update the lineno attribute of the current frame.
+
++- Issue #4618: When unicode arguments are passed to print(), the default
++ separator and end should be unicode also.
++
++- Issue #6119: Fixed a incorrect Py3k warning about order comparisons of builtin
++ functions and methods.
++
+- Issue #5330: C functions called with keyword arguments were not reported by
+ the various profiling modules (profile, cProfile). Patch by Hagen F�rstenau.
+
@@ -1224,6 +1625,16 @@
+Library
+-------
+
++- Issue #6415: Fixed warnings.warn sagfault on bad formatted string.
++
++- Issue #6344: Fixed a crash of mmap.read() when passed a negative argument.
++
++- Issue #5230: pydoc would report no documentation found if a module generated
++ a 'not found' import error when loaded; it now reports the import errors.
++ Thanks to Lucas Prado Melo for initial fix and collaboration on the tests.
++
++- Issue #6274: Fixed possible file descriptors leak in subprocess.py
++
+- Issue #6271: mmap tried to close invalid file handle (-1) when annonymous.
+ (On Unix)
+
@@ -1290,6 +1701,9 @@
+ makeunicodedata.py and regenerated the Unicode database (This fixes
+ u'\u1d79'.lower() == '\x00').
+
++- Issue #1202: zipfile module would cause a DeprecationWarning when storing
++ files with a CRC32 > 2**31-1.
++
+Extension Modules
+-----------------
+
@@ -1298,6 +1712,9 @@
+Build
+-----
+
++- Issue 5390: Add uninstall icon independent of whether file
++ extensions are installed.
++
+- Issue #6094: Build correctly with Subversion 1.7.
+
+- Issue #5726: Make Modules/ld_so_aix return the actual exit code of the
@@ -1314,10 +1731,17 @@
What's New in Python 2.6.2 rc 1
===============================
-@@ -109,10 +242,42 @@
+@@ -109,10 +267,49 @@
Library
-------
++- Issue #2622: Fixed an ImportError when importing email.messsage from a
++ standalone application built with py2exe or py2app.
++
++- Issue #6455: Fixed test_build_ext under win32.
++
++- Issue #6403: Fixed package path usage in build_ext.
++
+- Issue #6287: Added the license field in Distutils documentation.
+
+- Issue #6263: Fixed syntax error in distutils.cygwincompiler.
@@ -1358,7 +1782,7 @@
platforms. Initial patch by Paul Moore.
- Issue #1491431: Fixed distutils.filelist.glob_to_re for edge cases.
-@@ -135,10 +300,6 @@
+@@ -135,10 +332,6 @@
- Actually make the SimpleXMLRPCServer CGI handler work.
@@ -1369,7 +1793,7 @@
- Issue 2625: added missing iteritems() call to the for loop in
mailbox.MH.get_message().
-@@ -161,7 +322,7 @@
+@@ -161,7 +354,7 @@
- Issue #5261: Patch multiprocessing's semaphore.c to support context
manager use: "with multiprocessing.Lock()" works now.
@@ -1378,7 +1802,7 @@
socket.SO_REUSEADDR on all connections so that the user no longer needs
to wait 120 seconds for the socket to expire.
-@@ -433,6 +594,9 @@
+@@ -433,6 +626,9 @@
Build
-----
@@ -1388,7 +1812,7 @@
- Link the shared python library with $(MODLIBS).
- Issue #5134: Silence compiler warnings when compiling sqlite with VC++.
-@@ -459,7 +623,7 @@
+@@ -459,7 +655,7 @@
- Issue #5635: Fix running test_sys with tracing enabled.
- regrtest no longer treats ImportError as equivalent to SkipTest. Imports
@@ -1397,10 +1821,19 @@
from test support, which does the conversion.
- Issue #5083: New 'gui' resource for regrtest.
+@@ -909,7 +1105,7 @@
+ - Issue #3575: Incremental decoder's decode function now takes bytearray
+ by using 's*' instead of 't#'.
+
+-- Issue #2222: Fixed reference leak when occured os.rename()
++- Issue #2222: Fixed reference leak when occurred os.rename()
+ fails unicode conversion on 2nd parameter. (windows only)
+
+ - Issue 2464. urllib2 now supports a malformation in the URL received
Index: Misc/ACKS
===================================================================
---- Misc/ACKS (.../tags/r262) (Revision 73476)
-+++ Misc/ACKS (.../branches/release26-maint) (Revision 73476)
+--- Misc/ACKS (.../tags/r262) (Revision 74094)
++++ Misc/ACKS (.../branches/release26-maint) (Revision 74094)
@@ -12,6 +12,7 @@
David Abrahams
@@ -1433,7 +1866,15 @@
Sebastien Keim
Robert Kern
Randall Kern
-@@ -475,6 +479,7 @@
+@@ -460,6 +464,7 @@
+ Craig McPheeters
+ Lambert Meertens
+ Bill van Melle
++Lucas Prado Melo
+ Luke Mewburn
+ Mike Meyer
+ Steven Miale
+@@ -475,6 +480,7 @@
The Dragon De Monsyne
Skip Montanaro
Paul Moore
@@ -1441,7 +1882,7 @@
James A Morrison
Sjoerd Mullender
Sape Mullender
-@@ -527,6 +532,7 @@
+@@ -527,6 +533,7 @@
Samuele Pedroni
Marcel van der Peijl
Steven Pemberton
@@ -1449,7 +1890,7 @@
Mark Perrego
Trevor Perrin
Tim Peters
-@@ -678,6 +684,7 @@
+@@ -678,6 +685,7 @@
Kalle Svensson
Paul Swartz
Thenault Sylvain
@@ -1457,10 +1898,36 @@
Geoff Talvola
William Tanksley
Christian Tanzer
+Index: Misc/cheatsheet
+===================================================================
+--- Misc/cheatsheet (.../tags/r262) (Revision 74094)
++++ Misc/cheatsheet (.../branches/release26-maint) (Revision 74094)
+@@ -481,7 +481,7 @@
+ s.isupper() return True if all characters in s are uppercase, False (6)
+ otherwise.
+ s.join(seq) return a concatenation of the strings in the sequence
+- seq, seperated by 's's.
++ seq, separated by 's's.
+ s.ljust(width) return s left justified in a string of length width. (1),
+ (8)
+ s.lower() return a copy of s converted to lowercase.
+@@ -1556,10 +1556,10 @@
+ asctime(
+ timeTuple),
+ strftime(
+-format, return a formated string representing time.
++format, return a formatted string representing time.
+ timeTuple)
+ mktime(tuple) inverse of localtime(). Return a float.
+-strptime( parse a formated string representing time, return tuple as in
++strptime( parse a formatted string representing time, return tuple as in
+ string[, gmtime().
+ format])
+ sleep(secs) Suspend execution for seconds. can be a float.
Index: Tools/unicode/makeunicodedata.py
===================================================================
---- Tools/unicode/makeunicodedata.py (.../tags/r262) (Revision 73476)
-+++ Tools/unicode/makeunicodedata.py (.../branches/release26-maint) (Revision 73476)
+--- Tools/unicode/makeunicodedata.py (.../tags/r262) (Revision 74094)
++++ Tools/unicode/makeunicodedata.py (.../branches/release26-maint) (Revision 74094)
@@ -371,33 +371,32 @@
flags |= UPPER_MASK
# use delta predictor for upper/lower/title if it fits
@@ -1516,10 +1983,23 @@
flags |= NODELTA_MASK
# decimal digit, integer digit
decimal = 0
+Index: Tools/scripts/texi2html.py
+===================================================================
+--- Tools/scripts/texi2html.py (.../tags/r262) (Revision 74094)
++++ Tools/scripts/texi2html.py (.../branches/release26-maint) (Revision 74094)
+@@ -38,7 +38,7 @@
+ # rpyron 2002-05-07
+ # Robert Pyron
+ # 1. BUGFIX: In function makefile(), strip blanks from the nodename.
+-# This is necesary to match the behavior of parser.makeref() and
++# This is necessary to match the behavior of parser.makeref() and
+ # parser.do_node().
+ # 2. BUGFIX fixed KeyError in end_ifset (well, I may have just made
+ # it go away, rather than fix it)
Index: Tools/msi/msi.py
===================================================================
---- Tools/msi/msi.py (.../tags/r262) (Revision 73476)
-+++ Tools/msi/msi.py (.../branches/release26-maint) (Revision 73476)
+--- Tools/msi/msi.py (.../tags/r262) (Revision 74094)
++++ Tools/msi/msi.py (.../branches/release26-maint) (Revision 74094)
@@ -1007,6 +1007,7 @@
lib.add_file("test_difflib_expect.html")
lib.add_file("check_soundcard.vbs")
@@ -1528,10 +2008,32 @@
lib.glob("*.uue")
lib.glob("*.pem")
lib.glob("*.pck")
+@@ -1253,7 +1254,7 @@
+ "", r"[TARGETDIR]Python.exe", "REGISTRY.def"),
+ ("DisplayIcon", -1,
+ r"Software\Microsoft\Windows\CurrentVersion\Uninstall\%s" % product_code,
+- "DisplayIcon", "[TARGETDIR]python.exe", "REGISTRY.def")
++ "DisplayIcon", "[TARGETDIR]python.exe", "REGISTRY")
+ ])
+ # Shortcuts, see "Shortcut Table"
+ add_data(db, "Directory",
+Index: PC/os2vacpp/makefile.omk
+===================================================================
+--- PC/os2vacpp/makefile.omk (.../tags/r262) (Revision 74094)
++++ PC/os2vacpp/makefile.omk (.../branches/release26-maint) (Revision 74094)
+@@ -220,7 +220,7 @@
+
+ # zlibmodule.c -- Wrapper of ZLib Compression API (GZip Format)
+ # puremodule.c -- Wrapper of Purify Debugging API (Probably Non-OS/2)
+- # dlmodule.c -- Some Wierd Form of Data Processing Module
++ # dlmodule.c -- Some Weird Form of Data Processing Module
+ # xxmodule.c -- Template to Create Your Own Module
+
+ #
Index: PC/pyconfig.h
===================================================================
---- PC/pyconfig.h (.../tags/r262) (Revision 73476)
-+++ PC/pyconfig.h (.../branches/release26-maint) (Revision 73476)
+--- PC/pyconfig.h (.../tags/r262) (Revision 74094)
++++ PC/pyconfig.h (.../branches/release26-maint) (Revision 74094)
@@ -405,11 +405,11 @@
/* Define to 1 if you have the `copysign' function. */
#define HAVE_COPYSIGN 1
@@ -1547,10 +2049,35 @@
/* Define if on AIX 3.
System headers sometimes define this.
+Index: PC/_winreg.c
+===================================================================
+--- PC/_winreg.c (.../tags/r262) (Revision 74094)
++++ PC/_winreg.c (.../branches/release26-maint) (Revision 74094)
+@@ -25,7 +25,7 @@
+
+ /* The win32api module reports the function name that failed,
+ but this concept is not in the Python core.
+- Hopefully it will one day, and in the meantime I dont
++ Hopefully it will one day, and in the meantime I don't
+ want to lose this info...
+ */
+ #define PyErr_SetFromWindowsErrWithFunction(rc, fnname) \
+@@ -694,9 +694,9 @@
+ ** Note that fixupMultiSZ and countString have both had changes
+ ** made to support "incorrect strings". The registry specification
+ ** calls for strings to be terminated with 2 null bytes. It seems
+-** some commercial packages install strings which dont conform,
++** some commercial packages install strings which don't conform,
+ ** causing this code to fail - however, "regedit" etc still work
+-** with these strings (ie only we dont!).
++** with these strings (ie only we don't!).
+ */
+ static void
+ fixupMultiSZ(char **str, char *data, int len)
Index: Doc/TODO.txt
===================================================================
---- Doc/TODO.txt (.../tags/r262) (Revision 73476)
-+++ Doc/TODO.txt (.../branches/release26-maint) (Revision 73476)
+--- Doc/TODO.txt (.../tags/r262) (Revision 74094)
++++ Doc/TODO.txt (.../branches/release26-maint) (Revision 74094)
@@ -1,6 +0,0 @@
-To do
-=====
@@ -1560,8 +2087,8 @@
-* care about XXX comments
Index: Doc/about.rst
===================================================================
---- Doc/about.rst (.../tags/r262) (Revision 73476)
-+++ Doc/about.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/about.rst (.../tags/r262) (Revision 74094)
++++ Doc/about.rst (.../branches/release26-maint) (Revision 74094)
@@ -7,8 +7,8 @@
`_ sources by *Sphinx*, a document processor
specifically written for the Python documentation.
@@ -1585,21 +2112,21 @@
.. include:: ACKS.txt
Index: Doc/make.bat
===================================================================
---- Doc/make.bat (.../tags/r262) (Revision 73476)
-+++ Doc/make.bat (.../branches/release26-maint) (Revision 73476)
+--- Doc/make.bat (.../tags/r262) (Revision 74094)
++++ Doc/make.bat (.../branches/release26-maint) (Revision 74094)
@@ -34,7 +34,7 @@
goto end
:checkout
-svn co %SVNROOT%/doctools/trunk/sphinx tools/sphinx
-+svn co %SVNROOT%/external/Sphinx-0.6.1/sphinx tools/sphinx
++svn co %SVNROOT%/external/Sphinx-0.6.2/sphinx tools/sphinx
svn co %SVNROOT%/external/docutils-0.5/docutils tools/docutils
svn co %SVNROOT%/external/Jinja-2.1.1/jinja2 tools/jinja2
svn co %SVNROOT%/external/Pygments-0.11.1/pygments tools/pygments
Index: Doc/distutils/setupscript.rst
===================================================================
---- Doc/distutils/setupscript.rst (.../tags/r262) (Revision 73476)
-+++ Doc/distutils/setupscript.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/distutils/setupscript.rst (.../tags/r262) (Revision 74094)
++++ Doc/distutils/setupscript.rst (.../branches/release26-maint) (Revision 74094)
@@ -565,6 +565,8 @@
+----------------------+---------------------------+-----------------+--------+
| ``platforms`` | a list of platforms | list of strings | |
@@ -1625,8 +2152,8 @@
Index: Doc/distutils/apiref.rst
===================================================================
---- Doc/distutils/apiref.rst (.../tags/r262) (Revision 73476)
-+++ Doc/distutils/apiref.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/distutils/apiref.rst (.../tags/r262) (Revision 74094)
++++ Doc/distutils/apiref.rst (.../branches/release26-maint) (Revision 74094)
@@ -886,11 +886,9 @@
prefix of all files and directories in the archive. *root_dir* and *base_dir*
both default to the current directory. Returns the name of the archive file.
@@ -1698,8 +2225,8 @@
Index: Doc/using/cmdline.rst
===================================================================
---- Doc/using/cmdline.rst (.../tags/r262) (Revision 73476)
-+++ Doc/using/cmdline.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/using/cmdline.rst (.../tags/r262) (Revision 74094)
++++ Doc/using/cmdline.rst (.../branches/release26-maint) (Revision 74094)
@@ -351,7 +351,7 @@
Skip the first line of the source, allowing use of non-Unix forms of
``#!cmd``. This is intended for a DOS specific hack only.
@@ -1711,8 +2238,8 @@
.. cmdoption:: -3
Index: Doc/extending/extending.rst
===================================================================
---- Doc/extending/extending.rst (.../tags/r262) (Revision 73476)
-+++ Doc/extending/extending.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/extending/extending.rst (.../tags/r262) (Revision 74094)
++++ Doc/extending/extending.rst (.../branches/release26-maint) (Revision 74094)
@@ -47,7 +47,7 @@
which pulls in the Python API (you can add a comment describing the purpose of
the module and a copyright notice if you like).
@@ -1724,8 +2251,8 @@
headers on some systems, you *must* include :file:`Python.h` before any standard
Index: Doc/c-api/sequence.rst
===================================================================
---- Doc/c-api/sequence.rst (.../tags/r262) (Revision 73476)
-+++ Doc/c-api/sequence.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/c-api/sequence.rst (.../tags/r262) (Revision 74094)
++++ Doc/c-api/sequence.rst (.../branches/release26-maint) (Revision 74094)
@@ -13,6 +13,7 @@
@@ -1884,8 +2411,8 @@
Returns the length of *o*, assuming that *o* was returned by
Index: Doc/c-api/buffer.rst
===================================================================
---- Doc/c-api/buffer.rst (.../tags/r262) (Revision 73476)
-+++ Doc/c-api/buffer.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/c-api/buffer.rst (.../tags/r262) (Revision 74094)
++++ Doc/c-api/buffer.rst (.../branches/release26-maint) (Revision 74094)
@@ -13,9 +13,10 @@
single: buffer interface
@@ -2311,8 +2838,8 @@
+ changes in your code for properly supporting 64-bit systems.
Index: Doc/c-api/list.rst
===================================================================
---- Doc/c-api/list.rst (.../tags/r262) (Revision 73476)
-+++ Doc/c-api/list.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/c-api/list.rst (.../tags/r262) (Revision 74094)
++++ Doc/c-api/list.rst (.../branches/release26-maint) (Revision 74094)
@@ -17,8 +17,9 @@
.. index:: single: ListType (in module types)
@@ -2505,8 +3032,8 @@
.. cfunction:: int PyList_Reverse(PyObject *list)
Index: Doc/c-api/structures.rst
===================================================================
---- Doc/c-api/structures.rst (.../tags/r262) (Revision 73476)
-+++ Doc/c-api/structures.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/c-api/structures.rst (.../tags/r262) (Revision 74094)
++++ Doc/c-api/structures.rst (.../branches/release26-maint) (Revision 74094)
@@ -9,28 +9,29 @@
object types for Python. This section describes these structures and how they
are used.
@@ -2738,8 +3265,8 @@
+ :cfunc:`PyObject_GenericGetAttr` function.
Index: Doc/c-api/gcsupport.rst
===================================================================
---- Doc/c-api/gcsupport.rst (.../tags/r262) (Revision 73476)
-+++ Doc/c-api/gcsupport.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/c-api/gcsupport.rst (.../tags/r262) (Revision 74094)
++++ Doc/c-api/gcsupport.rst (.../branches/release26-maint) (Revision 74094)
@@ -9,7 +9,8 @@
references requires support from object types which are "containers" for other
objects which may also be containers. Types which do not store references to
@@ -2892,8 +3419,8 @@
+ in a reference cycle.
Index: Doc/c-api/intro.rst
===================================================================
---- Doc/c-api/intro.rst (.../tags/r262) (Revision 73476)
-+++ Doc/c-api/intro.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/c-api/intro.rst (.../tags/r262) (Revision 74094)
++++ Doc/c-api/intro.rst (.../branches/release26-maint) (Revision 74094)
@@ -44,7 +44,7 @@
````, ````, ````, and ```` (if
available).
@@ -2905,8 +3432,8 @@
headers on some systems, you *must* include :file:`Python.h` before any standard
Index: Doc/c-api/set.rst
===================================================================
---- Doc/c-api/set.rst (.../tags/r262) (Revision 73476)
-+++ Doc/c-api/set.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/c-api/set.rst (.../tags/r262) (Revision 74094)
++++ Doc/c-api/set.rst (.../branches/release26-maint) (Revision 74094)
@@ -116,7 +116,11 @@
``len(anyset)``. Raises a :exc:`PyExc_SystemError` if *anyset* is not a
:class:`set`, :class:`frozenset`, or an instance of a subtype.
@@ -2921,8 +3448,8 @@
Macro form of :cfunc:`PySet_Size` without error checking.
Index: Doc/c-api/slice.rst
===================================================================
---- Doc/c-api/slice.rst (.../tags/r262) (Revision 73476)
-+++ Doc/c-api/slice.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/c-api/slice.rst (.../tags/r262) (Revision 74094)
++++ Doc/c-api/slice.rst (.../branches/release26-maint) (Revision 74094)
@@ -22,35 +22,47 @@
.. cfunction:: PyObject* PySlice_New(PyObject *start, PyObject *stop, PyObject *step)
@@ -2990,8 +3517,8 @@
+ systems.
Index: Doc/c-api/long.rst
===================================================================
---- Doc/c-api/long.rst (.../tags/r262) (Revision 73476)
-+++ Doc/c-api/long.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/c-api/long.rst (.../tags/r262) (Revision 74094)
++++ Doc/c-api/long.rst (.../branches/release26-maint) (Revision 74094)
@@ -106,7 +106,11 @@
.. versionadded:: 1.6
@@ -3006,8 +3533,8 @@
Create a Python integer or long integer from the pointer *p*. The pointer value
Index: Doc/c-api/init.rst
===================================================================
---- Doc/c-api/init.rst (.../tags/r262) (Revision 73476)
-+++ Doc/c-api/init.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/c-api/init.rst (.../tags/r262) (Revision 74094)
++++ Doc/c-api/init.rst (.../branches/release26-maint) (Revision 74094)
@@ -419,10 +419,9 @@
The Python interpreter needs to keep some bookkeeping information separate per
thread --- for this it uses a data structure called :ctype:`PyThreadState`.
@@ -3045,8 +3572,8 @@
:cfunc:`PyGILState_\*` functions to do all of the above automatically. The
Index: Doc/c-api/string.rst
===================================================================
---- Doc/c-api/string.rst (.../tags/r262) (Revision 73476)
-+++ Doc/c-api/string.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/c-api/string.rst (.../tags/r262) (Revision 74094)
++++ Doc/c-api/string.rst (.../branches/release26-maint) (Revision 74094)
@@ -58,7 +58,11 @@
*len* on success, and *NULL* on failure. If *v* is *NULL*, the contents of the
string are uninitialized.
@@ -3128,8 +3655,8 @@
Encode a string object using the codec registered for *encoding* and return the
Index: Doc/c-api/object.rst
===================================================================
---- Doc/c-api/object.rst (.../tags/r262) (Revision 73476)
-+++ Doc/c-api/object.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/c-api/object.rst (.../tags/r262) (Revision 74094)
++++ Doc/c-api/object.rst (.../branches/release26-maint) (Revision 74094)
@@ -351,7 +351,11 @@
and mapping protocols, the sequence length is returned. On error, ``-1`` is
returned. This is the equivalent to the Python expression ``len(o)``.
@@ -3144,8 +3671,8 @@
Return element of *o* corresponding to the object *key* or *NULL* on failure.
Index: Doc/c-api/arg.rst
===================================================================
---- Doc/c-api/arg.rst (.../tags/r262) (Revision 73476)
-+++ Doc/c-api/arg.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/c-api/arg.rst (.../tags/r262) (Revision 74094)
++++ Doc/c-api/arg.rst (.../branches/release26-maint) (Revision 74094)
@@ -10,46 +10,48 @@
:ref:`extending-index`.
@@ -3860,8 +4387,8 @@
Index: Doc/c-api/typeobj.rst
===================================================================
---- Doc/c-api/typeobj.rst (.../tags/r262) (Revision 73476)
-+++ Doc/c-api/typeobj.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/c-api/typeobj.rst (.../tags/r262) (Revision 74094)
++++ Doc/c-api/typeobj.rst (.../branches/release26-maint) (Revision 74094)
@@ -64,7 +64,11 @@
This field is not inherited by subtypes.
@@ -3876,8 +4403,8 @@
This is the type's type, in other words its metatype. It is initialized by the
Index: Doc/c-api/type.rst
===================================================================
---- Doc/c-api/type.rst (.../tags/r262) (Revision 73476)
-+++ Doc/c-api/type.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/c-api/type.rst (.../tags/r262) (Revision 74094)
++++ Doc/c-api/type.rst (.../branches/release26-maint) (Revision 74094)
@@ -76,7 +76,11 @@
.. versionadded:: 2.2
@@ -3892,8 +4419,8 @@
.. versionadded:: 2.2
Index: Doc/c-api/dict.rst
===================================================================
---- Doc/c-api/dict.rst (.../tags/r262) (Revision 73476)
-+++ Doc/c-api/dict.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/c-api/dict.rst (.../tags/r262) (Revision 74094)
++++ Doc/c-api/dict.rst (.../branches/release26-maint) (Revision 74094)
@@ -19,8 +19,9 @@
single: DictType (in module types)
single: DictionaryType (in module types)
@@ -4112,8 +4639,8 @@
for key, value in seq2:
Index: Doc/c-api/allocation.rst
===================================================================
---- Doc/c-api/allocation.rst (.../tags/r262) (Revision 73476)
-+++ Doc/c-api/allocation.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/c-api/allocation.rst (.../tags/r262) (Revision 74094)
++++ Doc/c-api/allocation.rst (.../branches/release26-maint) (Revision 74094)
@@ -11,16 +11,21 @@
.. cfunction:: PyVarObject* _PyObject_NewVar(PyTypeObject *type, Py_ssize_t size)
@@ -4270,8 +4797,8 @@
+ object.
Index: Doc/c-api/unicode.rst
===================================================================
---- Doc/c-api/unicode.rst (.../tags/r262) (Revision 73476)
-+++ Doc/c-api/unicode.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/c-api/unicode.rst (.../tags/r262) (Revision 74094)
++++ Doc/c-api/unicode.rst (.../branches/release26-maint) (Revision 74094)
@@ -71,13 +71,21 @@
Return the size of the object. *o* has to be a :ctype:`PyUnicodeObject` (not
checked).
@@ -4648,8 +5175,8 @@
Compare two strings and return -1, 0, 1 for less than, equal, and greater than,
Index: Doc/c-api/marshal.rst
===================================================================
---- Doc/c-api/marshal.rst (.../tags/r262) (Revision 73476)
-+++ Doc/c-api/marshal.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/c-api/marshal.rst (.../tags/r262) (Revision 74094)
++++ Doc/c-api/marshal.rst (.../branches/release26-maint) (Revision 74094)
@@ -5,25 +5,26 @@
Data marshalling support
========================
@@ -4759,8 +5286,8 @@
+ changes in your code for properly supporting 64-bit systems.
Index: Doc/c-api/tuple.rst
===================================================================
---- Doc/c-api/tuple.rst (.../tags/r262) (Revision 73476)
-+++ Doc/c-api/tuple.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/c-api/tuple.rst (.../tags/r262) (Revision 74094)
++++ Doc/c-api/tuple.rst (.../branches/release26-maint) (Revision 74094)
@@ -42,7 +42,11 @@
Return a new tuple object of size *len*, or *NULL* on failure.
@@ -4871,8 +5398,8 @@
Clear the free list. Return the total number of freed items.
Index: Doc/c-api/mapping.rst
===================================================================
---- Doc/c-api/mapping.rst (.../tags/r262) (Revision 73476)
-+++ Doc/c-api/mapping.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/c-api/mapping.rst (.../tags/r262) (Revision 74094)
++++ Doc/c-api/mapping.rst (.../branches/release26-maint) (Revision 74094)
@@ -12,7 +12,8 @@
function always succeeds.
@@ -4897,8 +5424,8 @@
Remove the mapping for object *key* from the object *o*. Return ``-1`` on
Index: Doc/c-api/objbuffer.rst
===================================================================
---- Doc/c-api/objbuffer.rst (.../tags/r262) (Revision 73476)
-+++ Doc/c-api/objbuffer.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/c-api/objbuffer.rst (.../tags/r262) (Revision 74094)
++++ Doc/c-api/objbuffer.rst (.../branches/release26-maint) (Revision 74094)
@@ -2,31 +2,47 @@
.. _abstract-buffer:
@@ -4975,8 +5502,8 @@
+
Index: Doc/reference/datamodel.rst
===================================================================
---- Doc/reference/datamodel.rst (.../tags/r262) (Revision 73476)
-+++ Doc/reference/datamodel.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/reference/datamodel.rst (.../tags/r262) (Revision 74094)
++++ Doc/reference/datamodel.rst (.../branches/release26-maint) (Revision 74094)
@@ -1858,11 +1858,11 @@
reverse iteration. It should return a new iterator object that iterates
over all the objects in the container in reverse order.
@@ -4996,8 +5523,8 @@
Index: Doc/reference/compound_stmts.rst
===================================================================
---- Doc/reference/compound_stmts.rst (.../tags/r262) (Revision 73476)
-+++ Doc/reference/compound_stmts.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/reference/compound_stmts.rst (.../tags/r262) (Revision 74094)
++++ Doc/reference/compound_stmts.rst (.../branches/release26-maint) (Revision 74094)
@@ -1,4 +1,3 @@
-
.. _compound:
@@ -5032,8 +5559,8 @@
.. _finally:
Index: Doc/reference/expressions.rst
===================================================================
---- Doc/reference/expressions.rst (.../tags/r262) (Revision 73476)
-+++ Doc/reference/expressions.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/reference/expressions.rst (.../tags/r262) (Revision 74094)
++++ Doc/reference/expressions.rst (.../branches/release26-maint) (Revision 74094)
@@ -1177,6 +1177,7 @@
@@ -5054,8 +5581,8 @@
Expression lists
Index: Doc/reference/simple_stmts.rst
===================================================================
---- Doc/reference/simple_stmts.rst (.../tags/r262) (Revision 73476)
-+++ Doc/reference/simple_stmts.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/reference/simple_stmts.rst (.../tags/r262) (Revision 74094)
++++ Doc/reference/simple_stmts.rst (.../branches/release26-maint) (Revision 74094)
@@ -386,9 +386,10 @@
object is (converted and) written, unless the output system believes it is
positioned at the beginning of a line. This is the case (1) when no characters
@@ -5085,8 +5612,8 @@
The :keyword:`global` statement
Index: Doc/reference/executionmodel.rst
===================================================================
---- Doc/reference/executionmodel.rst (.../tags/r262) (Revision 73476)
-+++ Doc/reference/executionmodel.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/reference/executionmodel.rst (.../tags/r262) (Revision 74094)
++++ Doc/reference/executionmodel.rst (.../branches/release26-maint) (Revision 74094)
@@ -231,7 +231,7 @@
:keyword:`except` clause is selected by object identity. An arbitrary value can
be raised along with the identifying string which can be passed to the handler.
@@ -5098,8 +5625,8 @@
change from one version of Python to the next without warning and should not be
Index: Doc/reference/lexical_analysis.rst
===================================================================
---- Doc/reference/lexical_analysis.rst (.../tags/r262) (Revision 73476)
-+++ Doc/reference/lexical_analysis.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/reference/lexical_analysis.rst (.../tags/r262) (Revision 74094)
++++ Doc/reference/lexical_analysis.rst (.../branches/release26-maint) (Revision 74094)
@@ -339,8 +339,10 @@
The following identifiers are used as reserved words, or *keywords* of the
@@ -5114,8 +5641,20 @@
assert else if pass yield
Index: Doc/tools/sphinxext/indexsidebar.html
===================================================================
---- Doc/tools/sphinxext/indexsidebar.html (.../tags/r262) (Revision 73476)
-+++ Doc/tools/sphinxext/indexsidebar.html (.../branches/release26-maint) (Revision 73476)
+--- Doc/tools/sphinxext/indexsidebar.html (.../tags/r262) (Revision 74094)
++++ Doc/tools/sphinxext/indexsidebar.html (.../branches/release26-maint) (Revision 74094)
+@@ -2,9 +2,9 @@
+ Download these documents
+ Docs for other versions
+
+
@@ -12,12 +12,10 @@
{# XXX: many of these should probably be merged in the main docs #}
@@ -5131,8 +5670,8 @@
- Other Doc Collections
Index: Doc/tools/sphinxext/indexcontent.html
===================================================================
---- Doc/tools/sphinxext/indexcontent.html (.../tags/r262) (Revision 73476)
-+++ Doc/tools/sphinxext/indexcontent.html (.../branches/release26-maint) (Revision 73476)
+--- Doc/tools/sphinxext/indexcontent.html (.../tags/r262) (Revision 74094)
++++ Doc/tools/sphinxext/indexcontent.html (.../branches/release26-maint) (Revision 74094)
@@ -9,10 +9,10 @@
start here
Using Python
@@ -5148,8 +5687,8 @@
Index: Doc/tools/sphinxext/susp-ignored.csv
===================================================================
---- Doc/tools/sphinxext/susp-ignored.csv (.../tags/r262) (Revision 73476)
-+++ Doc/tools/sphinxext/susp-ignored.csv (.../branches/release26-maint) (Revision 73476)
+--- Doc/tools/sphinxext/susp-ignored.csv (.../tags/r262) (Revision 74094)
++++ Doc/tools/sphinxext/susp-ignored.csv (.../branches/release26-maint) (Revision 74094)
@@ -48,6 +48,8 @@
library/httplib,,:port,host:port
library/imaplib,,:MM,"""DD-Mmm-YYYY HH:MM:SS +HHMM"""
@@ -5161,8 +5700,8 @@
library/logging,,:package1,
Index: Doc/howto/doanddont.rst
===================================================================
---- Doc/howto/doanddont.rst (.../tags/r262) (Revision 73476)
-+++ Doc/howto/doanddont.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/howto/doanddont.rst (.../tags/r262) (Revision 74094)
++++ Doc/howto/doanddont.rst (.../branches/release26-maint) (Revision 74094)
@@ -30,7 +30,7 @@
``from module import *`` is *invalid* inside function definitions. While many
@@ -5206,8 +5745,8 @@
calculate_number(10, 20) != forbulate(500, 360):
Index: Doc/howto/regex.rst
===================================================================
---- Doc/howto/regex.rst (.../tags/r262) (Revision 73476)
-+++ Doc/howto/regex.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/howto/regex.rst (.../tags/r262) (Revision 74094)
++++ Doc/howto/regex.rst (.../branches/release26-maint) (Revision 74094)
@@ -264,7 +264,7 @@
>>> import re
>>> p = re.compile('ab*')
@@ -5219,8 +5758,8 @@
various special features and syntax variations. We'll go over the available
Index: Doc/howto/urllib2.rst
===================================================================
---- Doc/howto/urllib2.rst (.../tags/r262) (Revision 73476)
-+++ Doc/howto/urllib2.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/howto/urllib2.rst (.../tags/r262) (Revision 74094)
++++ Doc/howto/urllib2.rst (.../branches/release26-maint) (Revision 74094)
@@ -311,7 +311,7 @@
>>> req = urllib2.Request('http://www.python.org/fish.html')
>>> try:
@@ -5232,8 +5771,8 @@
>>>
Index: Doc/howto/functional.rst
===================================================================
---- Doc/howto/functional.rst (.../tags/r262) (Revision 73476)
-+++ Doc/howto/functional.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/howto/functional.rst (.../tags/r262) (Revision 74094)
++++ Doc/howto/functional.rst (.../branches/release26-maint) (Revision 74094)
@@ -472,7 +472,7 @@
>>> gen = generate_ints(3)
@@ -5243,10 +5782,53 @@
>>> gen.next()
0
>>> gen.next()
+Index: Doc/howto/webservers.rst
+===================================================================
+--- Doc/howto/webservers.rst (.../tags/r262) (Revision 74094)
++++ Doc/howto/webservers.rst (.../branches/release26-maint) (Revision 74094)
+@@ -426,7 +426,7 @@
+ user. Typically this component is represented by the templates.
+ * The *controller*. This is the layer between the user and the model. The
+ controller reacts on user actions (like opening some specific URL) and tells
+- the model to modify the data if neccessary.
++ the model to modify the data if necessary.
+
+ While one might think that MVC is a complex design pattern, in fact it is not.
+ It is used in Python because it has turned out to be useful for creating clean,
+@@ -435,9 +435,9 @@
+ .. note::
+
+ While not all Python frameworks explicitly support MVC, it is often trivial
+- to create a web site which uses the MVC pattern by seperating the data logic
++ to create a web site which uses the MVC pattern by separating the data logic
+ (the model) from the user interaction logic (the controller) and the
+- templates (the view). That's why it is important not to write unneccessary
++ templates (the view). That's why it is important not to write unnecessary
+ Python code in the templates -- it is against MVC and creates more chaos.
+
+ .. seealso::
+@@ -607,7 +607,7 @@
+ -----------------------
+
+ There is an incredible number of frameworks, so there is no way to describe them
+-all. It is not even neccessary, as most of these frameworks are nothing special
++all. It is not even necessary, as most of these frameworks are nothing special
+ and everything that can be done with these can also be done with one of the
+ popular ones.
+
+@@ -679,7 +679,7 @@
+ Another framework that's already been mentioned is `Pylons`_. Pylons is much
+ like TurboGears with ab even stronger emphasis on flexibility, which is bought
+ at the cost of being more difficult to use. Nearly every component can be
+-exchanged, which makes it neccessary to use the documentation of every single
++exchanged, which makes it necessary to use the documentation of every single
+ component, because there are so many Pylons combinations possible that can
+ satisfy every requirement. Pylons builds upon `Paste
+ `_, an extensive set of tools which are handy for WSGI.
Index: Doc/tutorial/errors.rst
===================================================================
---- Doc/tutorial/errors.rst (.../tags/r262) (Revision 73476)
-+++ Doc/tutorial/errors.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/tutorial/errors.rst (.../tags/r262) (Revision 74094)
++++ Doc/tutorial/errors.rst (.../branches/release26-maint) (Revision 74094)
@@ -216,7 +216,7 @@
The :keyword:`raise` statement allows the programmer to force a specified
exception to occur. For example::
@@ -5274,10 +5856,71 @@
Traceback (most recent call last):
File "", line 1, in ?
__main__.MyError: 'oops!'
+Index: Doc/tutorial/classes.rst
+===================================================================
+--- Doc/tutorial/classes.rst (.../tags/r262) (Revision 74094)
++++ Doc/tutorial/classes.rst (.../branches/release26-maint) (Revision 74094)
+@@ -470,7 +470,7 @@
+ only works if the base class is defined or imported directly in the global
+ scope.)
+
+-Python has two builtin functions that work with inheritance:
++Python has two built-in functions that work with inheritance:
+
+ * Use :func:`isinstance` to check an object's type: ``isinstance(obj, int)``
+ will be ``True`` only if ``obj.__class__`` is :class:`int` or some class
+Index: Doc/tutorial/datastructures.rst
+===================================================================
+--- Doc/tutorial/datastructures.rst (.../tags/r262) (Revision 74094)
++++ Doc/tutorial/datastructures.rst (.../branches/release26-maint) (Revision 74094)
+@@ -308,7 +308,7 @@
+ print row[i],
+ print
+
+-In real world, you should prefer builtin functions to complex flow statements.
++In real world, you should prefer built-in functions to complex flow statements.
+ The :func:`zip` function would do a great job for this use case::
+
+ >>> zip(*mat)
+Index: Doc/tutorial/floatingpoint.rst
+===================================================================
+--- Doc/tutorial/floatingpoint.rst (.../tags/r262) (Revision 74094)
++++ Doc/tutorial/floatingpoint.rst (.../branches/release26-maint) (Revision 74094)
+@@ -65,7 +65,7 @@
+ >>> 0.1
+ 0.1000000000000000055511151231257827021181583404541015625
+
+-instead! The Python prompt uses the builtin :func:`repr` function to obtain a
++instead! The Python prompt uses the built-in :func:`repr` function to obtain a
+ string version of everything it displays. For floats, ``repr(float)`` rounds
+ the true decimal value to 17 significant digits, giving ::
+
+@@ -81,7 +81,7 @@
+ (although some languages may not *display* the difference by default, or in all
+ output modes).
+
+-Python's builtin :func:`str` function produces only 12 significant digits, and
++Python's built-in :func:`str` function produces only 12 significant digits, and
+ you may wish to use that instead. It's unusual for ``eval(str(x))`` to
+ reproduce *x*, but the output may be more pleasant to look at::
+
+Index: Doc/tutorial/inputoutput.rst
+===================================================================
+--- Doc/tutorial/inputoutput.rst (.../tags/r262) (Revision 74094)
++++ Doc/tutorial/inputoutput.rst (.../branches/release26-maint) (Revision 74094)
+@@ -187,7 +187,7 @@
+ This is particularly useful in combination with the new built-in :func:`vars`
+ function, which returns a dictionary containing all local variables.
+
+-For a complete overview of string formating with :meth:`str.format`, see
++For a complete overview of string formatting with :meth:`str.format`, see
+ :ref:`formatstrings`.
+
+
Index: Doc/tutorial/introduction.rst
===================================================================
---- Doc/tutorial/introduction.rst (.../tags/r262) (Revision 73476)
-+++ Doc/tutorial/introduction.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/tutorial/introduction.rst (.../tags/r262) (Revision 74094)
++++ Doc/tutorial/introduction.rst (.../branches/release26-maint) (Revision 74094)
@@ -285,11 +285,11 @@
>>> word[0] = 'x'
Traceback (most recent call last):
@@ -5292,10 +5935,59 @@
However, creating a new string with the combined content is easy and efficient::
+Index: Doc/tutorial/stdlib.rst
+===================================================================
+--- Doc/tutorial/stdlib.rst (.../tags/r262) (Revision 74094)
++++ Doc/tutorial/stdlib.rst (.../branches/release26-maint) (Revision 74094)
+@@ -21,12 +21,12 @@
+ >>> os.chdir('/server/accesslogs')
+
+ Be sure to use the ``import os`` style instead of ``from os import *``. This
+-will keep :func:`os.open` from shadowing the builtin :func:`open` function which
++will keep :func:`os.open` from shadowing the built-in :func:`open` function which
+ operates much differently.
+
+ .. index:: builtin: help
+
+-The builtin :func:`dir` and :func:`help` functions are useful as interactive
++The built-in :func:`dir` and :func:`help` functions are useful as interactive
+ aids for working with large modules like :mod:`os`::
+
+ >>> import os
+Index: Doc/tutorial/stdlib2.rst
+===================================================================
+--- Doc/tutorial/stdlib2.rst (.../tags/r262) (Revision 74094)
++++ Doc/tutorial/stdlib2.rst (.../branches/release26-maint) (Revision 74094)
+@@ -360,7 +360,7 @@
+
+ >>> from decimal import *
+ >>> Decimal('0.70') * Decimal('1.05')
+- Decimal("0.7350")
++ Decimal('0.7350')
+ >>> .70 * 1.05
+ 0.73499999999999999
+
+@@ -373,7 +373,7 @@
+ calculations and equality tests that are unsuitable for binary floating point::
+
+ >>> Decimal('1.00') % Decimal('.10')
+- Decimal("0.00")
++ Decimal('0.00')
+ >>> 1.00 % 0.10
+ 0.09999999999999995
+
+@@ -386,6 +386,6 @@
+
+ >>> getcontext().prec = 36
+ >>> Decimal(1) / Decimal(7)
+- Decimal("0.142857142857142857142857142857142857")
++ Decimal('0.142857142857142857142857142857142857')
+
+
Index: Doc/library/aetypes.rst
===================================================================
---- Doc/library/aetypes.rst (.../tags/r262) (Revision 73476)
-+++ Doc/library/aetypes.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/library/aetypes.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/aetypes.rst (.../branches/release26-maint) (Revision 74094)
@@ -31,9 +31,9 @@
contains object specifiers for a number of common OSA classes such as
``Document``, ``Window``, ``Character``, etc.
@@ -5308,10 +6000,23 @@
+Index: Doc/library/pty.rst
+===================================================================
+--- Doc/library/pty.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/pty.rst (.../branches/release26-maint) (Revision 74094)
+@@ -13,7 +13,7 @@
+ concept: starting another process and being able to write to and read from its
+ controlling terminal programmatically.
+
+-Because pseudo-terminal handling is highly platform dependant, there is code to
++Because pseudo-terminal handling is highly platform dependent, there is code to
+ do it only for SGI and Linux. (The Linux code is supposed to work on other
+ platforms, but hasn't been tested yet.)
+
Index: Doc/library/email.mime.rst
===================================================================
---- Doc/library/email.mime.rst (.../tags/r262) (Revision 73476)
-+++ Doc/library/email.mime.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/library/email.mime.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/email.mime.rst (.../branches/release26-maint) (Revision 74094)
@@ -8,14 +8,15 @@
Ordinarily, you get a message object structure by passing a file or some text to
a parser, which parses the text and returns the root message object. However
@@ -5495,9 +6200,25 @@
The previously deprecated *_encoding* argument has been removed. Encoding
Index: Doc/library/subprocess.rst
===================================================================
---- Doc/library/subprocess.rst (.../tags/r262) (Revision 73476)
-+++ Doc/library/subprocess.rst (.../branches/release26-maint) (Revision 73476)
-@@ -102,6 +102,15 @@
+--- Doc/library/subprocess.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/subprocess.rst (.../branches/release26-maint) (Revision 74094)
+@@ -39,9 +39,12 @@
+ Arguments are:
+
+ *args* should be a string, or a sequence of program arguments. The program
+- to execute is normally the first item in the args sequence or the string if a
+- string is given, but can be explicitly set by using the *executable*
+- argument.
++ to execute is normally the first item in the args sequence or the string if
++ a string is given, but can be explicitly set by using the *executable*
++ argument. When *executable* is given, the first item in the args sequence
++ is still treated by most programs as the command name, which can then be
++ different from the actual executable name. On Unix, it becomes the display
++ name for the executing program in utilities such as :program:`ps`.
+
+ On Unix, with *shell=False* (default): In this case, the Popen class uses
+ :meth:`os.execvp` to execute the child program. *args* should normally be a
+@@ -102,6 +105,15 @@
variables for the new process; these are used instead of inheriting the current
process' environment, which is the default behavior.
@@ -5513,7 +6234,7 @@
If *universal_newlines* is :const:`True`, the file objects stdout and stderr are
opened as text files, but lines may be terminated by any of ``'\n'``, the Unix
end-of-line convention, ``'\r'``, the old Macintosh convention or ``'\r\n'``, the
-@@ -267,10 +276,10 @@
+@@ -267,10 +279,10 @@
.. warning::
@@ -5528,10 +6249,86 @@
.. attribute:: Popen.stdin
+@@ -345,8 +357,8 @@
+ output = p2.communicate()[0]
+
+
+-Replacing os.system()
+-^^^^^^^^^^^^^^^^^^^^^
++Replacing :func:`os.system`
++^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ ::
+
+@@ -373,8 +385,8 @@
+ print >>sys.stderr, "Execution failed:", e
+
+
+-Replacing the os.spawn family
+-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
++Replacing the :func:`os.spawn ` family
++^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ P_NOWAIT example::
+
+@@ -401,8 +413,8 @@
+ Popen(["/bin/mycmd", "myarg"], env={"PATH": "/usr/bin"})
+
+
+-Replacing os.popen, os.popen2, os.popen3
+-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
++Replacing :func:`os.popen`, :func:`os.popen2`, :func:`os.popen3`
++^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ ::
+
+@@ -444,10 +456,24 @@
+ stdin=PIPE, stdout=PIPE, stderr=STDOUT, close_fds=True)
+ (child_stdin, child_stdout_and_stderr) = (p.stdin, p.stdout)
+
++Return code handling translates as follows::
+
+-Replacing functions from the popen2 module
+-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
++ pipe = os.popen(cmd, 'w')
++ ...
++ rc = pipe.close()
++ if rc != None and rc % 256:
++ print "There were some errors"
++ ==>
++ process = Popen(cmd, 'w', stdin=PIPE)
++ ...
++ process.stdin.close()
++ if process.wait() != 0:
++ print "There were some errors"
+
++
++Replacing functions from the :mod:`popen2` module
++^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
++
+ .. note::
+
+ If the cmd argument to popen2 functions is a string, the command is executed
+Index: Doc/library/stringio.rst
+===================================================================
+--- Doc/library/stringio.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/stringio.rst (.../branches/release26-maint) (Revision 74094)
+@@ -72,8 +72,9 @@
+ instead.
+
+ Since this module provides a factory function which returns objects of built-in
+-types, there's no way to build your own version using subclassing. Use the
+-original :mod:`StringIO` module in that case.
++types, there's no way to build your own version using subclassing. It's not
++possible to set attributes on it. Use the original :mod:`StringIO` module in
++those cases.
+
+ Unlike the memory files implemented by the :mod:`StringIO` module, those
+ provided by this module are not able to accept Unicode strings that cannot be
Index: Doc/library/aifc.rst
===================================================================
---- Doc/library/aifc.rst (.../tags/r262) (Revision 73476)
-+++ Doc/library/aifc.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/library/aifc.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/aifc.rst (.../branches/release26-maint) (Revision 74094)
@@ -1,4 +1,3 @@
-
:mod:`aifc` --- Read and write AIFF and AIFC files
@@ -5553,8 +6350,8 @@
sampling rate or frame rate is the number of times per second the sound is
Index: Doc/library/carbon.rst
===================================================================
---- Doc/library/carbon.rst (.../tags/r262) (Revision 73476)
-+++ Doc/library/carbon.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/library/carbon.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/carbon.rst (.../branches/release26-maint) (Revision 74094)
@@ -22,9 +22,9 @@
from Carbon import AE
@@ -5569,8 +6366,8 @@
:mod:`Carbon.AE` --- Apple Events
Index: Doc/library/ctypes.rst
===================================================================
---- Doc/library/ctypes.rst (.../tags/r262) (Revision 73476)
-+++ Doc/library/ctypes.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/library/ctypes.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/ctypes.rst (.../branches/release26-maint) (Revision 74094)
@@ -341,9 +341,9 @@
>>> printf("Hello, %s\n", "World!")
Hello, World!
@@ -5607,8 +6404,8 @@
If you have defined your own classes which you pass to function calls, you have
Index: Doc/library/macostools.rst
===================================================================
---- Doc/library/macostools.rst (.../tags/r262) (Revision 73476)
-+++ Doc/library/macostools.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/library/macostools.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/macostools.rst (.../branches/release26-maint) (Revision 74094)
@@ -13,9 +13,9 @@
:class:`FSSpec` objects. This module expects a filesystem which supports forked
files, so it should not be used on UFS partitions.
@@ -5623,8 +6420,8 @@
Index: Doc/library/framework.rst
===================================================================
---- Doc/library/framework.rst (.../tags/r262) (Revision 73476)
-+++ Doc/library/framework.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/library/framework.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/framework.rst (.../branches/release26-maint) (Revision 74094)
@@ -16,9 +16,9 @@
dialog window in a non-standard way it is not necessary to override the complete
event handling.
@@ -5639,8 +6436,8 @@
available for full Cocoa access from Python, and the documentation describes
Index: Doc/library/inspect.rst
===================================================================
---- Doc/library/inspect.rst (.../tags/r262) (Revision 73476)
-+++ Doc/library/inspect.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/library/inspect.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/inspect.rst (.../branches/release26-maint) (Revision 74094)
@@ -510,7 +510,7 @@
the function name, a list of lines of context from the source code, and the
index of the current line within that list.
@@ -5652,8 +6449,8 @@
records these functions return, can cause your program to create reference
Index: Doc/library/plistlib.rst
===================================================================
---- Doc/library/plistlib.rst (.../tags/r262) (Revision 73476)
-+++ Doc/library/plistlib.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/library/plistlib.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/plistlib.rst (.../branches/release26-maint) (Revision 74094)
@@ -75,20 +75,19 @@
Read a plist from the resource with type *restype* from the resource fork of
*path*. Availability: Mac OS X.
@@ -5681,8 +6478,8 @@
Index: Doc/library/aepack.rst
===================================================================
---- Doc/library/aepack.rst (.../tags/r262) (Revision 73476)
-+++ Doc/library/aepack.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/library/aepack.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/aepack.rst (.../branches/release26-maint) (Revision 74094)
@@ -14,9 +14,9 @@
AppleEvent descriptor is handled by Python objects of built-in type
:class:`AEDesc`, defined in module :mod:`Carbon.AE`.
@@ -5697,8 +6494,8 @@
The :mod:`aepack` module defines the following functions:
Index: Doc/library/decimal.rst
===================================================================
---- Doc/library/decimal.rst (.../tags/r262) (Revision 73476)
-+++ Doc/library/decimal.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/library/decimal.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/decimal.rst (.../branches/release26-maint) (Revision 74094)
@@ -1803,7 +1803,7 @@
>>> Decimal('3.214').quantize(TWOPLACES, context=Context(traps=[Inexact]))
Traceback (most recent call last):
@@ -5710,8 +6507,8 @@
throughout an application?
Index: Doc/library/string.rst
===================================================================
---- Doc/library/string.rst (.../tags/r262) (Revision 73476)
-+++ Doc/library/string.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/library/string.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/string.rst (.../branches/release26-maint) (Revision 74094)
@@ -388,7 +388,7 @@
``'f'`` and ``'F'``, or before and after the decimal point for a floating point
value formatted with ``'g'`` or ``'G'``. For non-number types the field
@@ -5732,8 +6529,8 @@
arguments; in some locales, these don't have the same length. For case
Index: Doc/library/itertools.rst
===================================================================
---- Doc/library/itertools.rst (.../tags/r262) (Revision 73476)
-+++ Doc/library/itertools.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/library/itertools.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/itertools.rst (.../branches/release26-maint) (Revision 74094)
@@ -366,7 +366,7 @@
# izip('ABCD', 'xy') --> Ax By
iterables = map(iter, iterables)
@@ -5757,8 +6554,8 @@
return (d for d, s in izip(data, selectors) if s)
Index: Doc/library/sched.rst
===================================================================
---- Doc/library/sched.rst (.../tags/r262) (Revision 73476)
-+++ Doc/library/sched.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/library/sched.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/sched.rst (.../branches/release26-maint) (Revision 74094)
@@ -100,7 +100,7 @@
.. method:: scheduler.cancel(event)
@@ -5770,8 +6567,8 @@
.. method:: scheduler.empty()
Index: Doc/library/turtle.rst
===================================================================
---- Doc/library/turtle.rst (.../tags/r262) (Revision 73476)
-+++ Doc/library/turtle.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/library/turtle.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/turtle.rst (.../branches/release26-maint) (Revision 74094)
@@ -6,6 +6,11 @@
:synopsis: Turtle graphics for Tk
.. sectionauthor:: Gregor Lingl
@@ -6726,7 +7523,7 @@
.. function:: resizemode(rmode=None)
:param rmode: one of the strings "auto", "user", "noresize"
-@@ -921,11 +1130,15 @@
+@@ -921,12 +1130,17 @@
resizemode("user") is called by :func:`shapesize` when used with arguments.
@@ -6743,9 +7540,11 @@
+
.. function:: shapesize(stretch_wid=None, stretch_len=None, outline=None)
++ turtlesize(stretch_wid=None, stretch_len=None, outline=None)
:param stretch_wid: positive number
-@@ -939,11 +1152,19 @@
+ :param stretch_len: positive number
+@@ -939,11 +1153,19 @@
stretchfactor in direction of its orientation, *outline* determines the width
of the shapes's outline.
@@ -6768,7 +7567,7 @@
.. function:: tilt(angle)
:param angle: a number
-@@ -951,14 +1172,17 @@
+@@ -951,14 +1173,17 @@
Rotate the turtleshape by *angle* from its current tilt-angle, but do *not*
change the turtle's heading (direction of movement).
@@ -6792,7 +7591,7 @@
.. function:: settiltangle(angle)
:param angle: a number
-@@ -967,28 +1191,32 @@
+@@ -967,28 +1192,32 @@
regardless of its current tilt-angle. *Do not* change the turtle's heading
(direction of movement).
@@ -6838,7 +7637,7 @@
Using events
------------
-@@ -1004,13 +1232,15 @@
+@@ -1004,13 +1233,15 @@
existing bindings are removed. Example for the anonymous turtle, i.e. the
procedural way:
@@ -6859,7 +7658,7 @@
.. function:: onrelease(fun, btn=1, add=None)
:param fun: a function with two arguments which will be called with the
-@@ -1022,17 +1252,19 @@
+@@ -1022,17 +1253,19 @@
Bind *fun* to mouse-button-release events on this turtle. If *fun* is
``None``, existing bindings are removed.
@@ -6888,7 +7687,7 @@
.. function:: ondrag(fun, btn=1, add=None)
:param fun: a function with two arguments which will be called with the
-@@ -1047,11 +1279,14 @@
+@@ -1047,11 +1280,14 @@
Remark: Every sequence of mouse-move-events on a turtle is preceded by a
mouse-click event on that turtle.
@@ -6906,7 +7705,7 @@
Special Turtle methods
----------------------
-@@ -1071,43 +1306,57 @@
+@@ -1071,43 +1307,58 @@
Return the last recorded polygon.
@@ -6940,6 +7739,7 @@
+
.. function:: getturtle()
++ getpen()
Return the Turtle object itself. Only reasonable use: as a function to
return the "anonymous turtle":
@@ -6978,7 +7778,7 @@
.. function:: setundobuffer(size)
:param size: an integer or ``None``
-@@ -1117,17 +1366,21 @@
+@@ -1117,17 +1368,21 @@
that can be undone by the :func:`undo` method/function. If *size* is
``None``, the undobuffer is disabled.
@@ -7003,7 +7803,7 @@
.. function:: tracer(flag=None, delay=None)
A replica of the corresponding TurtleScreen method.
-@@ -1158,18 +1411,22 @@
+@@ -1158,18 +1413,22 @@
For example:
@@ -7033,7 +7833,7 @@
.. note::
The :class:`Shape` class is used internally by the :func:`register_shape`
-@@ -1183,7 +1440,11 @@
+@@ -1183,7 +1442,11 @@
Most of the examples in this section refer to a TurtleScreen instance called
``screen``.
@@ -7045,7 +7845,7 @@
Window control
--------------
-@@ -1194,14 +1455,16 @@
+@@ -1194,14 +1457,16 @@
Set or return background color of the TurtleScreen.
@@ -7068,7 +7868,7 @@
.. function:: bgpic(picname=None)
:param picname: a string, name of a gif-file or ``"nopic"``, or ``None``
-@@ -1209,13 +1472,13 @@
+@@ -1209,13 +1474,13 @@
Set background image or return name of current backgroundimage. If *picname*
is a filename, set the corresponding image as background. If *picname* is
``"nopic"``, delete background image, if present. If *picname* is ``None``,
@@ -7088,7 +7888,7 @@
.. function:: clear()
-@@ -1246,7 +1509,7 @@
+@@ -1246,7 +1511,7 @@
:param canvwidth: positive integer, new width of canvas in pixels
:param canvheight: positive integer, new height of canvas in pixels
@@ -7097,7 +7897,7 @@
If no arguments are given, return current (canvaswidth, canvasheight). Else
resize the canvas the turtles are drawing on. Do not alter the drawing
-@@ -1254,10 +1517,15 @@
+@@ -1254,10 +1519,15 @@
method, one can make visible those parts of a drawing which were outside the
canvas before.
@@ -7115,7 +7915,7 @@
.. function:: setworldcoordinates(llx, lly, urx, ury)
:param llx: a number, x-coordinate of lower left corner of canvas
-@@ -1272,15 +1540,24 @@
+@@ -1272,15 +1542,24 @@
**ATTENTION**: in user-defined coordinate systems angles may appear
distorted.
@@ -7147,7 +7947,7 @@
Animation control
-----------------
-@@ -1294,11 +1571,15 @@
+@@ -1294,11 +1573,15 @@
Optional argument:
@@ -7166,7 +7966,7 @@
.. function:: tracer(n=None, delay=None)
:param n: nonnegative integer
-@@ -1309,14 +1590,16 @@
+@@ -1309,14 +1592,16 @@
used to accelerate the drawing of complex graphics.) Second argument sets
delay value (see :func:`delay`).
@@ -7189,7 +7989,7 @@
.. function:: update()
Perform a TurtleScreen update. To be used when tracer is turned off.
-@@ -1342,14 +1625,16 @@
+@@ -1342,14 +1627,16 @@
are removed. Remark: in order to be able to register key-events, TurtleScreen
must have the focus. (See method :func:`listen`.)
@@ -7212,7 +8012,7 @@
.. function:: onclick(fun, btn=1, add=None)
onscreenclick(fun, btn=1, add=None)
-@@ -1365,11 +1650,12 @@
+@@ -1365,11 +1652,12 @@
Example for a TurtleScreen instance named ``screen`` and a Turtle instance
named turtle:
@@ -7229,7 +8029,7 @@
.. note::
This TurtleScreen method is available as a global function only under the
name ``onscreenclick``. The global function ``onclick`` is another one
-@@ -1383,16 +1669,18 @@
+@@ -1383,16 +1671,18 @@
Install a timer that calls *fun* after *t* milliseconds.
@@ -7256,7 +8056,7 @@
Settings and special methods
----------------------------
-@@ -1415,11 +1703,13 @@
+@@ -1415,11 +1705,13 @@
"logo" upward (north) clockwise
============ ========================= ===================
@@ -7273,7 +8073,7 @@
.. function:: colormode(cmode=None)
:param cmode: one of the values 1.0 or 255
-@@ -1427,38 +1717,53 @@
+@@ -1427,38 +1719,53 @@
Return the colormode or set it to 1.0 or 255. Subsequently *r*, *g*, *b*
values of color triples have to be in the range 0..\ *cmode*.
@@ -7337,7 +8137,7 @@
.. note::
Image shapes *do not* rotate when turning the turtle, so they do not
display the heading of the turtle!
-@@ -1466,38 +1771,41 @@
+@@ -1466,38 +1773,41 @@
(2) *name* is an arbitrary string and *shape* is a tuple of pairs of
coordinates: Install the corresponding polygon shape.
@@ -7390,7 +8190,7 @@
.. _screenspecific:
-@@ -1539,12 +1847,14 @@
+@@ -1539,12 +1849,14 @@
edge of the screen, if negative from the bottom edge, if None,
center window vertically
@@ -7409,7 +8209,7 @@
.. function:: title(titlestring)
:param titlestring: a string that is shown in the titlebar of the turtle
-@@ -1552,9 +1862,11 @@
+@@ -1552,9 +1864,11 @@
Set title of turtle window to *titlestring*.
@@ -7422,7 +8222,7 @@
The public classes of the module :mod:`turtle`
==============================================
-@@ -1565,14 +1877,14 @@
+@@ -1565,14 +1879,14 @@
:param canvas: a :class:`Tkinter.Canvas`, a :class:`ScrolledCanvas` or a
:class:`TurtleScreen`
@@ -7441,7 +8241,7 @@
.. class:: TurtleScreen(cv)
-@@ -1620,11 +1932,13 @@
+@@ -1620,11 +1934,13 @@
Example:
@@ -7459,7 +8259,7 @@
See :ref:`compoundshapes`.
-@@ -1889,3 +2203,22 @@
+@@ -1889,3 +2205,22 @@
+----------------+------------------------------+-----------------------+
Have fun!
@@ -7484,8 +8284,8 @@
+ >>> turtle.write(str(turtles()))
Index: Doc/library/random.rst
===================================================================
---- Doc/library/random.rst (.../tags/r262) (Revision 73476)
-+++ Doc/library/random.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/library/random.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/random.rst (.../branches/release26-maint) (Revision 74094)
@@ -191,6 +191,8 @@
Return a random floating point number *N* such that ``a <= N <= b`` for
``a <= b`` and ``b <= N <= a`` for ``b < a``.
@@ -7497,8 +8297,8 @@
Index: Doc/library/configparser.rst
===================================================================
---- Doc/library/configparser.rst (.../tags/r262) (Revision 73476)
-+++ Doc/library/configparser.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/library/configparser.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/configparser.rst (.../branches/release26-maint) (Revision 74094)
@@ -27,10 +27,10 @@
can use this to write Python programs which can be customized by end users
easily.
@@ -7515,8 +8315,8 @@
followed by ``name: value`` entries, with continuations in the style of
Index: Doc/library/logging.rst
===================================================================
---- Doc/library/logging.rst (.../tags/r262) (Revision 73476)
-+++ Doc/library/logging.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/library/logging.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/logging.rst (.../branches/release26-maint) (Revision 74094)
@@ -69,7 +69,7 @@
DEBUG:root:This message should go to the log file
@@ -7537,8 +8337,8 @@
example. You would want to set *maxBytes* to an appropriate value.
Index: Doc/library/2to3.rst
===================================================================
---- Doc/library/2to3.rst (.../tags/r262) (Revision 73476)
-+++ Doc/library/2to3.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/library/2to3.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/2to3.rst (.../branches/release26-maint) (Revision 74094)
@@ -101,7 +101,7 @@
.. moduleauthor:: Collin Winter
@@ -7550,8 +8350,8 @@
drastically in the future.
Index: Doc/library/socket.rst
===================================================================
---- Doc/library/socket.rst (.../tags/r262) (Revision 73476)
-+++ Doc/library/socket.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/library/socket.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/socket.rst (.../branches/release26-maint) (Revision 74094)
@@ -405,7 +405,7 @@
:exc:`socket.error` will be raised. Note that exactly what is valid depends on
the underlying C implementation of :cfunc:`inet_aton`.
@@ -7584,8 +8384,8 @@
Index: Doc/library/xml.dom.minidom.rst
===================================================================
---- Doc/library/xml.dom.minidom.rst (.../tags/r262) (Revision 73476)
-+++ Doc/library/xml.dom.minidom.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/library/xml.dom.minidom.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/xml.dom.minidom.rst (.../branches/release26-maint) (Revision 74094)
@@ -30,7 +30,7 @@
The :func:`parse` function can take either a filename or an open file object.
@@ -7597,8 +8397,8 @@
either a file name, or a file-like object. *parser*, if given, must be a SAX2
Index: Doc/library/smtplib.rst
===================================================================
---- Doc/library/smtplib.rst (.../tags/r262) (Revision 73476)
-+++ Doc/library/smtplib.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/library/smtplib.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/smtplib.rst (.../branches/release26-maint) (Revision 74094)
@@ -380,3 +380,8 @@
server.sendmail(fromaddr, toaddrs, msg)
server.quit()
@@ -7610,8 +8410,8 @@
+ via :meth:`sendmail`; see :ref:`email-examples`.
Index: Doc/library/tabnanny.rst
===================================================================
---- Doc/library/tabnanny.rst (.../tags/r262) (Revision 73476)
-+++ Doc/library/tabnanny.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/library/tabnanny.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/tabnanny.rst (.../branches/release26-maint) (Revision 74094)
@@ -1,4 +1,3 @@
-
:mod:`tabnanny` --- Detection of ambiguous indentation
@@ -7631,8 +8431,8 @@
Index: Doc/library/select.rst
===================================================================
---- Doc/library/select.rst (.../tags/r262) (Revision 73476)
-+++ Doc/library/select.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/library/select.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/select.rst (.../branches/release26-maint) (Revision 74094)
@@ -160,7 +160,12 @@
Register a fd descriptor with the epoll object.
@@ -7648,8 +8448,8 @@
Modify a register file descriptor.
Index: Doc/library/tarfile.rst
===================================================================
---- Doc/library/tarfile.rst (.../tags/r262) (Revision 73476)
-+++ Doc/library/tarfile.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/library/tarfile.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/tarfile.rst (.../branches/release26-maint) (Revision 74094)
@@ -384,8 +384,9 @@
.. note::
@@ -7664,8 +8464,8 @@
.. method:: TarFile.add(name, arcname=None, recursive=True, exclude=None)
Index: Doc/library/email.encoders.rst
===================================================================
---- Doc/library/email.encoders.rst (.../tags/r262) (Revision 73476)
-+++ Doc/library/email.encoders.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/library/email.encoders.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/email.encoders.rst (.../branches/release26-maint) (Revision 74094)
@@ -5,18 +5,18 @@
:synopsis: Encoders for email message payloads.
@@ -7696,8 +8496,8 @@
Index: Doc/library/mac.rst
===================================================================
---- Doc/library/mac.rst (.../tags/r262) (Revision 73476)
-+++ Doc/library/mac.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/library/mac.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/mac.rst (.../branches/release26-maint) (Revision 74094)
@@ -10,9 +10,9 @@
modules, and the HOWTO :ref:`using-on-mac` for a general introduction to
Mac-specific Python programming.
@@ -7712,8 +8512,8 @@
.. toctree::
Index: Doc/library/macos.rst
===================================================================
---- Doc/library/macos.rst (.../tags/r262) (Revision 73476)
-+++ Doc/library/macos.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/library/macos.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/macos.rst (.../branches/release26-maint) (Revision 74094)
@@ -11,9 +11,9 @@
interpreter, such as how the interpreter eventloop functions and the like. Use
with care.
@@ -7728,8 +8528,8 @@
Index: Doc/library/rexec.rst
===================================================================
---- Doc/library/rexec.rst (.../tags/r262) (Revision 73476)
-+++ Doc/library/rexec.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/library/rexec.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/rexec.rst (.../branches/release26-maint) (Revision 74094)
@@ -1,4 +1,3 @@
-
:mod:`rexec` --- Restricted execution framework
@@ -7737,8 +8537,8 @@
Index: Doc/library/httplib.rst
===================================================================
---- Doc/library/httplib.rst (.../tags/r262) (Revision 73476)
-+++ Doc/library/httplib.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/library/httplib.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/httplib.rst (.../branches/release26-maint) (Revision 74094)
@@ -68,9 +68,9 @@
formatted file that contains your private key. *cert_file* is a PEM formatted
certificate chain file.
@@ -7753,8 +8553,8 @@
Index: Doc/library/json.rst
===================================================================
---- Doc/library/json.rst (.../tags/r262) (Revision 73476)
-+++ Doc/library/json.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/library/json.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/json.rst (.../branches/release26-maint) (Revision 74094)
@@ -174,7 +174,7 @@
If the contents of *fp* are encoded with an ASCII based encoding other than
UTF-8 (e.g. latin-1), then an appropriate *encoding* name must be specified.
@@ -7766,8 +8566,8 @@
*object_hook* is an optional function that will be called with the result of
Index: Doc/library/binhex.rst
===================================================================
---- Doc/library/binhex.rst (.../tags/r262) (Revision 73476)
-+++ Doc/library/binhex.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/library/binhex.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/binhex.rst (.../branches/release26-maint) (Revision 74094)
@@ -1,4 +1,3 @@
-
:mod:`binhex` --- Encode and decode binhex4 files
@@ -7787,8 +8587,8 @@
The :mod:`binhex` module defines the following functions:
Index: Doc/library/email.parser.rst
===================================================================
---- Doc/library/email.parser.rst (.../tags/r262) (Revision 73476)
-+++ Doc/library/email.parser.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/library/email.parser.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/email.parser.rst (.../branches/release26-maint) (Revision 74094)
@@ -6,18 +6,18 @@
@@ -7851,8 +8651,8 @@
:mimetype:`message/delivery-status` and :mimetype:`message/rfc822`) will also be
Index: Doc/library/sqlite3.rst
===================================================================
---- Doc/library/sqlite3.rst (.../tags/r262) (Revision 73476)
-+++ Doc/library/sqlite3.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/library/sqlite3.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/sqlite3.rst (.../branches/release26-maint) (Revision 74094)
@@ -15,7 +15,7 @@
application using SQLite and then port the code to a larger database such as
PostgreSQL or Oracle.
@@ -7916,8 +8716,8 @@
Using shortcut methods
Index: Doc/library/multiprocessing.rst
===================================================================
---- Doc/library/multiprocessing.rst (.../tags/r262) (Revision 73476)
-+++ Doc/library/multiprocessing.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/library/multiprocessing.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/multiprocessing.rst (.../branches/release26-maint) (Revision 74094)
@@ -42,13 +42,19 @@
>>> p.map(f, [1,2,3])
Process PoolWorker-1:
@@ -8203,8 +9003,8 @@
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Index: Doc/library/xmlrpclib.rst
===================================================================
---- Doc/library/xmlrpclib.rst (.../tags/r262) (Revision 73476)
-+++ Doc/library/xmlrpclib.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/library/xmlrpclib.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/xmlrpclib.rst (.../branches/release26-maint) (Revision 74094)
@@ -160,7 +160,7 @@
.. method:: ServerProxy.system.methodSignature(name)
@@ -8225,8 +9025,8 @@
.. method:: ServerProxy.system.methodHelp(name)
Index: Doc/library/commands.rst
===================================================================
---- Doc/library/commands.rst (.../tags/r262) (Revision 73476)
-+++ Doc/library/commands.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/library/commands.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/commands.rst (.../branches/release26-maint) (Revision 74094)
@@ -16,11 +16,12 @@
processes and retrieving their results. Using the :mod:`subprocess` module is
preferable to using the :mod:`commands` module.
@@ -8246,8 +9046,8 @@
Index: Doc/library/gl.rst
===================================================================
---- Doc/library/gl.rst (.../tags/r262) (Revision 73476)
-+++ Doc/library/gl.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/library/gl.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/gl.rst (.../branches/release26-maint) (Revision 74094)
@@ -1,4 +1,3 @@
-
:mod:`gl` --- *Graphics Library* interface
@@ -8268,8 +9068,8 @@
should help you to get started. The parameter conventions for the C functions
Index: Doc/library/aetools.rst
===================================================================
---- Doc/library/aetools.rst (.../tags/r262) (Revision 73476)
-+++ Doc/library/aetools.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/library/aetools.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/aetools.rst (.../branches/release26-maint) (Revision 74094)
@@ -22,9 +22,9 @@
manager, see section :ref:`osx-gui-scripts` for details. This restriction may be
lifted in future releases.
@@ -8284,8 +9084,8 @@
The :mod:`aetools` module defines the following functions:
Index: Doc/library/undoc.rst
===================================================================
---- Doc/library/undoc.rst (.../tags/r262) (Revision 73476)
-+++ Doc/library/undoc.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/library/undoc.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/undoc.rst (.../branches/release26-maint) (Revision 74094)
@@ -20,11 +20,10 @@
Some of these are very old and/or not very robust; marked with "hmm."
@@ -8358,8 +9158,8 @@
+ Removed in Python 3.x.
Index: Doc/library/optparse.rst
===================================================================
---- Doc/library/optparse.rst (.../tags/r262) (Revision 73476)
-+++ Doc/library/optparse.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/library/optparse.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/optparse.rst (.../branches/release26-maint) (Revision 74094)
@@ -1077,10 +1077,10 @@
tells :mod:`optparse` where to write it: :attr:`dest` names an attribute of the
``options`` object that :mod:`optparse` builds as it parses the command line.
@@ -8375,8 +9175,8 @@
Index: Doc/library/__future__.rst
===================================================================
---- Doc/library/__future__.rst (.../tags/r262) (Revision 73476)
-+++ Doc/library/__future__.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/library/__future__.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/__future__.rst (.../branches/release26-maint) (Revision 74094)
@@ -58,3 +58,7 @@
No feature description will ever be deleted from :mod:`__future__`.
@@ -8387,8 +9187,8 @@
+ How the compiler treats future imports.
Index: Doc/library/colorpicker.rst
===================================================================
---- Doc/library/colorpicker.rst (.../tags/r262) (Revision 73476)
-+++ Doc/library/colorpicker.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/library/colorpicker.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/colorpicker.rst (.../branches/release26-maint) (Revision 74094)
@@ -13,9 +13,9 @@
The :mod:`ColorPicker` module provides access to the standard color picker
dialog.
@@ -8403,8 +9203,8 @@
.. function:: GetColor(prompt, rgb)
Index: Doc/library/email.errors.rst
===================================================================
---- Doc/library/email.errors.rst (.../tags/r262) (Revision 73476)
-+++ Doc/library/email.errors.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/library/email.errors.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/email.errors.rst (.../branches/release26-maint) (Revision 74094)
@@ -17,8 +17,8 @@
.. exception:: MessageParseError()
@@ -8435,8 +9235,8 @@
Index: Doc/library/email-examples.rst
===================================================================
---- Doc/library/email-examples.rst (.../tags/r262) (Revision 73476)
-+++ Doc/library/email-examples.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/library/email-examples.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/email-examples.rst (.../branches/release26-maint) (Revision 74094)
@@ -1,3 +1,5 @@
+.. _email-examples:
+
@@ -8445,8 +9245,8 @@
Index: Doc/library/codeop.rst
===================================================================
---- Doc/library/codeop.rst (.../tags/r262) (Revision 73476)
-+++ Doc/library/codeop.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/library/codeop.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/codeop.rst (.../branches/release26-maint) (Revision 74094)
@@ -42,7 +42,7 @@
(``'single'``, the default) or as an :term:`expression` (``'eval'``). Any
other value will cause :exc:`ValueError` to be raised.
@@ -8458,8 +9258,8 @@
successful outcome before reaching the end of the source; in this case,
Index: Doc/library/shelve.rst
===================================================================
---- Doc/library/shelve.rst (.../tags/r262) (Revision 73476)
-+++ Doc/library/shelve.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/library/shelve.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/shelve.rst (.../branches/release26-maint) (Revision 74094)
@@ -1,4 +1,3 @@
-
:mod:`shelve` --- Python object persistence
@@ -8503,8 +9303,8 @@
Index: Doc/library/marshal.rst
===================================================================
---- Doc/library/marshal.rst (.../tags/r262) (Revision 73476)
-+++ Doc/library/marshal.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/library/marshal.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/marshal.rst (.../branches/release26-maint) (Revision 74094)
@@ -85,7 +85,7 @@
file must be an open file object opened in binary mode (``'rb'`` or
``'r+b'``).
@@ -8516,8 +9316,8 @@
:func:`load` will substitute ``None`` for the unmarshallable type.
Index: Doc/library/easydialogs.rst
===================================================================
---- Doc/library/easydialogs.rst (.../tags/r262) (Revision 73476)
-+++ Doc/library/easydialogs.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/library/easydialogs.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/easydialogs.rst (.../branches/release26-maint) (Revision 74094)
@@ -16,9 +16,9 @@
type and item number) to those in the default :const:`DLOG` resource. See source
code for details.
@@ -8532,8 +9332,8 @@
The :mod:`EasyDialogs` module defines the following functions:
Index: Doc/library/stdtypes.rst
===================================================================
---- Doc/library/stdtypes.rst (.../tags/r262) (Revision 73476)
-+++ Doc/library/stdtypes.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/library/stdtypes.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/stdtypes.rst (.../branches/release26-maint) (Revision 74094)
@@ -1955,7 +1955,7 @@
note for :meth:`dict.items`.
@@ -8564,8 +9364,8 @@
Index: Doc/library/collections.rst
===================================================================
---- Doc/library/collections.rst (.../tags/r262) (Revision 73476)
-+++ Doc/library/collections.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/library/collections.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/collections.rst (.../branches/release26-maint) (Revision 74094)
@@ -316,6 +316,28 @@
This section shows various approaches to working with deques.
@@ -8663,8 +9463,8 @@
>>> p[0] + p[1] # indexable like the plain tuple (11, 22)
Index: Doc/library/os.rst
===================================================================
---- Doc/library/os.rst (.../tags/r262) (Revision 73476)
-+++ Doc/library/os.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/library/os.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/os.rst (.../branches/release26-maint) (Revision 74094)
@@ -354,7 +354,7 @@
is ``'r'`` (default) or ``'w'``. The *bufsize* argument has the same meaning as
the corresponding argument to the built-in :func:`open` function. The exit
@@ -8762,10 +9562,21 @@
.. function:: lstat(path)
+@@ -1709,8 +1710,8 @@
+
+ (Note that the :mod:`subprocess` module provides more powerful facilities for
+ spawning new processes and retrieving their results; using that module is
+- preferable to using these functions. Check specially the *Replacing Older
+- Functions with the subprocess Module* section in that documentation page.)
++ preferable to using these functions. Check especially the
++ :ref:`subprocess-replacements` section.)
+
+ If *mode* is :const:`P_NOWAIT`, this function returns the process id of the new
+ process; if *mode* is :const:`P_WAIT`, returns the process's exit code if it
Index: Doc/library/autogil.rst
===================================================================
---- Doc/library/autogil.rst (.../tags/r262) (Revision 73476)
-+++ Doc/library/autogil.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/library/autogil.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/autogil.rst (.../branches/release26-maint) (Revision 74094)
@@ -13,9 +13,9 @@
automatically locks and unlocks Python's :term:`Global Interpreter Lock` when
running an event loop.
@@ -8780,8 +9591,8 @@
.. exception:: AutoGILError
Index: Doc/library/email.header.rst
===================================================================
---- Doc/library/email.header.rst (.../tags/r262) (Revision 73476)
-+++ Doc/library/email.header.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/library/email.header.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/email.header.rst (.../branches/release26-maint) (Revision 74094)
@@ -21,10 +21,10 @@
If you want to include non-ASCII characters in your email headers, say in the
@@ -8828,8 +9639,8 @@
(i.e. ``isinstance(s, str)`` is true), then *charset* is the encoding of
Index: Doc/library/traceback.rst
===================================================================
---- Doc/library/traceback.rst (.../tags/r262) (Revision 73476)
-+++ Doc/library/traceback.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/library/traceback.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/traceback.rst (.../branches/release26-maint) (Revision 74094)
@@ -1,4 +1,3 @@
-
:mod:`traceback` --- Print or retrieve a stack traceback
@@ -8948,8 +9759,8 @@
['IndexError: tuple index out of range\n']
Index: Doc/library/hotshot.rst
===================================================================
---- Doc/library/hotshot.rst (.../tags/r262) (Revision 73476)
-+++ Doc/library/hotshot.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/library/hotshot.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/hotshot.rst (.../branches/release26-maint) (Revision 74094)
@@ -26,7 +26,7 @@
The results should be more meaningful than in the past: the timing core
contained a critical bug.
@@ -8961,8 +9772,8 @@
use an unthreaded script to run the profiler over the code you're interested in
Index: Doc/library/ic.rst
===================================================================
---- Doc/library/ic.rst (.../tags/r262) (Revision 73476)
-+++ Doc/library/ic.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/library/ic.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/ic.rst (.../branches/release26-maint) (Revision 74094)
@@ -1,4 +1,3 @@
-
:mod:`ic` --- Access to the Mac OS X Internet Config
@@ -8980,10 +9791,32 @@
.. index:: module: icglue
+Index: Doc/library/io.rst
+===================================================================
+--- Doc/library/io.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/io.rst (.../branches/release26-maint) (Revision 74094)
+@@ -14,7 +14,7 @@
+
+ At the top of the I/O hierarchy is the abstract base class :class:`IOBase`. It
+ defines the basic interface to a stream. Note, however, that there is no
+-seperation between reading and writing to streams; implementations are allowed
++separation between reading and writing to streams; implementations are allowed
+ to throw an :exc:`IOError` if they do not support a given operation.
+
+ Extending :class:`IOBase` is :class:`RawIOBase` which deals simply with the
+@@ -612,7 +612,7 @@
+ is enabled. With this enabled, on input, the lines endings ``'\n'``,
+ ``'\r'``, or ``'\r\n'`` are translated to ``'\n'`` before being returned to
+ the caller. Conversely, on output, ``'\n'`` is translated to the system
+- default line seperator, :data:`os.linesep`. If *newline* is any other of its
++ default line separator, :data:`os.linesep`. If *newline* is any other of its
+ legal values, that newline becomes the newline when the file is read and it
+ is returned untranslated. On output, ``'\n'`` is converted to the *newline*.
+
Index: Doc/library/functions.rst
===================================================================
---- Doc/library/functions.rst (.../tags/r262) (Revision 73476)
-+++ Doc/library/functions.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/library/functions.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/functions.rst (.../branches/release26-maint) (Revision 74094)
@@ -17,7 +17,8 @@
.. function:: all(iterable)
@@ -9004,6 +9837,15 @@
def any(iterable):
for element in iterable:
+@@ -149,7 +151,7 @@
+ ``'exec'`` if *source* consists of a sequence of statements, ``'eval'`` if it
+ consists of a single expression, or ``'single'`` if it consists of a single
+ interactive statement (in the latter case, expression statements that
+- evaluate to something else than ``None`` will be printed).
++ evaluate to something other than ``None`` will be printed).
+
+ The optional arguments *flags* and *dont_inherit* control which future
+ statements (see :pep:`236`) affect the compilation of *source*. If neither
@@ -362,7 +364,7 @@
If both dictionaries are omitted, the expression is executed in the environment
where :func:`execfile` is called. The return value is ``None``.
@@ -9060,8 +9902,8 @@
>>> name = 'foo.bar.baz'
Index: Doc/library/bisect.rst
===================================================================
---- Doc/library/bisect.rst (.../tags/r262) (Revision 73476)
-+++ Doc/library/bisect.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/library/bisect.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/bisect.rst (.../branches/release26-maint) (Revision 74094)
@@ -85,4 +85,22 @@
>>> map(grade, [33, 99, 77, 44, 12, 88])
['E', 'A', 'B', 'D', 'F', 'A']
@@ -9087,8 +9929,8 @@
+ ('yellow', 8)
Index: Doc/library/email.charset.rst
===================================================================
---- Doc/library/email.charset.rst (.../tags/r262) (Revision 73476)
-+++ Doc/library/email.charset.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/library/email.charset.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/email.charset.rst (.../branches/release26-maint) (Revision 74094)
@@ -163,8 +163,8 @@
charset to the output charset automatically. This is not useful for
multibyte character sets, which have line length issues (multibyte
@@ -9102,8 +9944,8 @@
*header_encoding* attribute.
Index: Doc/library/os.path.rst
===================================================================
---- Doc/library/os.path.rst (.../tags/r262) (Revision 73476)
-+++ Doc/library/os.path.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/library/os.path.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/os.path.rst (.../branches/release26-maint) (Revision 74094)
@@ -10,7 +10,7 @@
write files see :func:`open`, and for accessing the filesystem see the
:mod:`os` module.
@@ -9124,8 +9966,8 @@
:func:`os.walk`.
Index: Doc/library/webbrowser.rst
===================================================================
---- Doc/library/webbrowser.rst (.../tags/r262) (Revision 73476)
-+++ Doc/library/webbrowser.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/library/webbrowser.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/webbrowser.rst (.../branches/release26-maint) (Revision 74094)
@@ -22,7 +22,7 @@
of browsers to try in order. When the value of a list part contains the string
``%s``, then it is interpreted as a literal browser command line to be used
@@ -9146,8 +9988,8 @@
+ directories given in the :envvar:`PATH` environment variable.
Index: Doc/library/bastion.rst
===================================================================
---- Doc/library/bastion.rst (.../tags/r262) (Revision 73476)
-+++ Doc/library/bastion.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/library/bastion.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/bastion.rst (.../branches/release26-maint) (Revision 74094)
@@ -15,7 +15,7 @@
.. versionchanged:: 2.3
Disabled module.
@@ -9159,8 +10001,8 @@
the module.
Index: Doc/library/fileinput.rst
===================================================================
---- Doc/library/fileinput.rst (.../tags/r262) (Revision 73476)
-+++ Doc/library/fileinput.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/library/fileinput.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/fileinput.rst (.../branches/release26-maint) (Revision 74094)
@@ -150,7 +150,7 @@
it is deleted when the output file is closed. In-place filtering is disabled
when standard input is read.
@@ -9172,8 +10014,8 @@
Index: Doc/library/anydbm.rst
===================================================================
---- Doc/library/anydbm.rst (.../tags/r262) (Revision 73476)
-+++ Doc/library/anydbm.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/library/anydbm.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/anydbm.rst (.../branches/release26-maint) (Revision 74094)
@@ -27,19 +27,33 @@
Open the database file *filename* and return a corresponding object.
@@ -9220,8 +10062,8 @@
.. exception:: error
Index: Doc/library/email.message.rst
===================================================================
---- Doc/library/email.message.rst (.../tags/r262) (Revision 73476)
-+++ Doc/library/email.message.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/library/email.message.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/email.message.rst (.../branches/release26-maint) (Revision 74094)
@@ -45,8 +45,8 @@
Note that this method is provided as a convenience and may not always
format the message the way you want. For example, by default it mangles
@@ -9289,8 +10131,8 @@
:mod:`email.generator` for details.
Index: Doc/library/email.generator.rst
===================================================================
---- Doc/library/email.generator.rst (.../tags/r262) (Revision 73476)
-+++ Doc/library/email.generator.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/library/email.generator.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/email.generator.rst (.../branches/release26-maint) (Revision 74094)
@@ -16,8 +16,8 @@
yourself. However the bundled generator knows how to generate most email in a
standards-compliant way, should handle MIME and non-MIME email messages just
@@ -9315,8 +10157,8 @@
Index: Doc/library/asyncore.rst
===================================================================
---- Doc/library/asyncore.rst (.../tags/r262) (Revision 73476)
-+++ Doc/library/asyncore.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/library/asyncore.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/asyncore.rst (.../branches/release26-maint) (Revision 74094)
@@ -81,7 +81,8 @@
+----------------------+----------------------------------------+
| Event | Description |
@@ -9329,8 +10171,8 @@
| | available |
Index: Doc/library/locale.rst
===================================================================
---- Doc/library/locale.rst (.../tags/r262) (Revision 73476)
-+++ Doc/library/locale.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/library/locale.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/locale.rst (.../branches/release26-maint) (Revision 74094)
@@ -398,7 +398,7 @@
Return name of the n-th day of the week.
@@ -9351,8 +10193,8 @@
the C library, which might differ from the syntax used in :mod:`re`.
Index: Doc/library/threading.rst
===================================================================
---- Doc/library/threading.rst (.../tags/r262) (Revision 73476)
-+++ Doc/library/threading.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/library/threading.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/threading.rst (.../branches/release26-maint) (Revision 74094)
@@ -555,12 +555,12 @@
.. method:: Condition.notify()
@@ -9373,8 +10215,8 @@
However, it's not safe to rely on this behavior. A future, optimized
Index: Doc/library/pickle.rst
===================================================================
---- Doc/library/pickle.rst (.../tags/r262) (Revision 73476)
-+++ Doc/library/pickle.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/library/pickle.rst (.../tags/r262) (Revision 74094)
++++ Doc/library/pickle.rst (.../branches/release26-maint) (Revision 74094)
@@ -77,8 +77,8 @@
.. warning::
@@ -9397,8 +10239,8 @@
value, the :meth:`__setstate__` method will not be called.
Index: Doc/includes/sqlite3/text_factory.py
===================================================================
---- Doc/includes/sqlite3/text_factory.py (.../tags/r262) (Revision 73476)
-+++ Doc/includes/sqlite3/text_factory.py (.../branches/release26-maint) (Revision 73476)
+--- Doc/includes/sqlite3/text_factory.py (.../tags/r262) (Revision 74094)
++++ Doc/includes/sqlite3/text_factory.py (.../branches/release26-maint) (Revision 74094)
@@ -13,7 +13,7 @@
row = cur.fetchone()
assert row[0] == AUSTRIA
@@ -9425,8 +10267,8 @@
cur.execute("select ?", (AUSTRIA,))
Index: Doc/includes/email-alternative.py
===================================================================
---- Doc/includes/email-alternative.py (.../tags/r262) (Revision 73476)
-+++ Doc/includes/email-alternative.py (.../branches/release26-maint) (Revision 73476)
+--- Doc/includes/email-alternative.py (.../tags/r262) (Revision 74094)
++++ Doc/includes/email-alternative.py (.../branches/release26-maint) (Revision 74094)
@@ -45,4 +45,4 @@
# sendmail function takes 3 arguments: sender's address, recipient's address
# and message to send - here it is sent as one string.
@@ -9435,8 +10277,8 @@
+s.quit()
Index: Doc/includes/email-dir.py
===================================================================
---- Doc/includes/email-dir.py (.../tags/r262) (Revision 73476)
-+++ Doc/includes/email-dir.py (.../branches/release26-maint) (Revision 73476)
+--- Doc/includes/email-dir.py (.../tags/r262) (Revision 74094)
++++ Doc/includes/email-dir.py (.../branches/release26-maint) (Revision 74094)
@@ -106,9 +106,8 @@
fp.close()
else:
@@ -9450,8 +10292,8 @@
if __name__ == '__main__':
Index: Doc/includes/mp_distributing.py
===================================================================
---- Doc/includes/mp_distributing.py (.../tags/r262) (Revision 73476)
-+++ Doc/includes/mp_distributing.py (.../branches/release26-maint) (Revision 73476)
+--- Doc/includes/mp_distributing.py (.../tags/r262) (Revision 74094)
++++ Doc/includes/mp_distributing.py (.../branches/release26-maint) (Revision 74094)
@@ -38,7 +38,7 @@
return _logger
@@ -9463,8 +10305,8 @@
_handler = logging.StreamHandler()
Index: Doc/includes/email-mime.py
===================================================================
---- Doc/includes/email-mime.py (.../tags/r262) (Revision 73476)
-+++ Doc/includes/email-mime.py (.../branches/release26-maint) (Revision 73476)
+--- Doc/includes/email-mime.py (.../tags/r262) (Revision 74094)
++++ Doc/includes/email-mime.py (.../branches/release26-maint) (Revision 74094)
@@ -27,6 +27,5 @@
# Send the email via our own SMTP server.
@@ -9475,8 +10317,8 @@
+s.quit()
Index: Doc/includes/email-simple.py
===================================================================
---- Doc/includes/email-simple.py (.../tags/r262) (Revision 73476)
-+++ Doc/includes/email-simple.py (.../branches/release26-maint) (Revision 73476)
+--- Doc/includes/email-simple.py (.../tags/r262) (Revision 74094)
++++ Doc/includes/email-simple.py (.../branches/release26-maint) (Revision 74094)
@@ -20,6 +20,5 @@
# Send the message via our own SMTP server, but don't include the
# envelope header.
@@ -9487,8 +10329,8 @@
+s.quit()
Index: Doc/bugs.rst
===================================================================
---- Doc/bugs.rst (.../tags/r262) (Revision 73476)
-+++ Doc/bugs.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/bugs.rst (.../tags/r262) (Revision 74094)
++++ Doc/bugs.rst (.../branches/release26-maint) (Revision 74094)
@@ -19,6 +19,9 @@
information is needed (in which case you are welcome to provide it if you can!).
To do this, search the bug database using the search box on the top of the page.
@@ -9501,8 +10343,8 @@
"Register" link in the sidebar and undergo the registration procedure.
Index: Doc/README.txt
===================================================================
---- Doc/README.txt (.../tags/r262) (Revision 73476)
-+++ Doc/README.txt (.../branches/release26-maint) (Revision 73476)
+--- Doc/README.txt (.../tags/r262) (Revision 74094)
++++ Doc/README.txt (.../branches/release26-maint) (Revision 74094)
@@ -74,17 +74,23 @@
You'll need to checkout the Sphinx package to the `tools/` directory::
@@ -9532,8 +10374,8 @@
Index: Doc/documenting/markup.rst
===================================================================
---- Doc/documenting/markup.rst (.../tags/r262) (Revision 73476)
-+++ Doc/documenting/markup.rst (.../branches/release26-maint) (Revision 73476)
+--- Doc/documenting/markup.rst (.../tags/r262) (Revision 74094)
++++ Doc/documenting/markup.rst (.../branches/release26-maint) (Revision 74094)
@@ -594,11 +594,11 @@
.. describe:: warning
@@ -9553,9 +10395,9 @@
Index: Doc/Makefile
===================================================================
---- Doc/Makefile (.../tags/r262) (Revision 73476)
-+++ Doc/Makefile (.../branches/release26-maint) (Revision 73476)
-@@ -28,6 +28,7 @@
+--- Doc/Makefile (.../tags/r262) (Revision 74094)
++++ Doc/Makefile (.../branches/release26-maint) (Revision 74094)
+@@ -28,10 +28,11 @@
@echo " coverage to check documentation coverage for library and C API"
@echo " dist to create a \"dist\" directory with archived docs for download"
@@ -9563,10 +10405,15 @@
checkout:
@if [ ! -d tools/sphinx ]; then \
echo "Checking out Sphinx..."; \
+- svn checkout $(SVNROOT)/external/Sphinx-0.6.1/sphinx tools/sphinx; \
++ svn checkout $(SVNROOT)/external/Sphinx-0.6.2/sphinx tools/sphinx; \
+ fi
+ @if [ ! -d tools/docutils ]; then \
+ echo "Checking out Docutils..."; \
Index: Lib/mimetypes.py
===================================================================
---- Lib/mimetypes.py (.../tags/r262) (Revision 73476)
-+++ Lib/mimetypes.py (.../branches/release26-maint) (Revision 73476)
+--- Lib/mimetypes.py (.../tags/r262) (Revision 74094)
++++ Lib/mimetypes.py (.../branches/release26-maint) (Revision 74094)
@@ -44,6 +44,7 @@
]
@@ -9646,10 +10493,32 @@
def read_mime_types(file):
+Index: Lib/idlelib/AutoComplete.py
+===================================================================
+--- Lib/idlelib/AutoComplete.py (.../tags/r262) (Revision 74094)
++++ Lib/idlelib/AutoComplete.py (.../branches/release26-maint) (Revision 74094)
+@@ -67,7 +67,7 @@
+
+ def try_open_completions_event(self, event):
+ """Happens when it would be nice to open a completion list, but not
+- really neccesary, for example after an dot, so function
++ really necessary, for example after an dot, so function
+ calls won't be made.
+ """
+ lastchar = self.text.get("insert-1c")
+@@ -79,7 +79,7 @@
+ COMPLETE_FILES)
+
+ def autocomplete_event(self, event):
+- """Happens when the user wants to complete his word, and if neccesary,
++ """Happens when the user wants to complete his word, and if necessary,
+ open a completion list after that (if there is more than one
+ completion)
+ """
Index: Lib/idlelib/CREDITS.txt
===================================================================
---- Lib/idlelib/CREDITS.txt (.../tags/r262) (Revision 73476)
-+++ Lib/idlelib/CREDITS.txt (.../branches/release26-maint) (Revision 73476)
+--- Lib/idlelib/CREDITS.txt (.../tags/r262) (Revision 74094)
++++ Lib/idlelib/CREDITS.txt (.../branches/release26-maint) (Revision 74094)
@@ -2,9 +2,9 @@
original creator of IDLE. Other contributors prior to Version 0.8 include
Mark Hammond, Jeremy Hylton, Tim Peters, and Moshe Zadka.
@@ -9686,8 +10555,8 @@
Index: Lib/idlelib/EditorWindow.py
===================================================================
---- Lib/idlelib/EditorWindow.py (.../tags/r262) (Revision 73476)
-+++ Lib/idlelib/EditorWindow.py (.../branches/release26-maint) (Revision 73476)
+--- Lib/idlelib/EditorWindow.py (.../tags/r262) (Revision 74094)
++++ Lib/idlelib/EditorWindow.py (.../branches/release26-maint) (Revision 74094)
@@ -22,6 +22,16 @@
# The default tab setting for a Text widget, in average-width characters.
TK_TABWIDTH_DEFAULT = 8
@@ -9754,17 +10623,30 @@
self.top.focused_widget = self.text
self.createmenubar()
+Index: Lib/idlelib/CallTips.py
+===================================================================
+--- Lib/idlelib/CallTips.py (.../tags/r262) (Revision 74094)
++++ Lib/idlelib/CallTips.py (.../branches/release26-maint) (Revision 74094)
+@@ -51,7 +51,7 @@
+
+ def try_open_calltip_event(self, event):
+ """Happens when it would be nice to open a CallTip, but not really
+- neccesary, for example after an opening bracket, so function calls
++ necessary, for example after an opening bracket, so function calls
+ won't be made.
+ """
+ self.open_calltip(False)
Index: Lib/idlelib/idlever.py
===================================================================
---- Lib/idlelib/idlever.py (.../tags/r262) (Revision 73476)
-+++ Lib/idlelib/idlever.py (.../branches/release26-maint) (Revision 73476)
+--- Lib/idlelib/idlever.py (.../tags/r262) (Revision 74094)
++++ Lib/idlelib/idlever.py (.../branches/release26-maint) (Revision 74094)
@@ -1 +1 @@
-IDLE_VERSION = "2.6.2"
+IDLE_VERSION = "2.6.3rc1"
Index: Lib/idlelib/NEWS.txt
===================================================================
---- Lib/idlelib/NEWS.txt (.../tags/r262) (Revision 73476)
-+++ Lib/idlelib/NEWS.txt (.../branches/release26-maint) (Revision 73476)
+--- Lib/idlelib/NEWS.txt (.../tags/r262) (Revision 74094)
++++ Lib/idlelib/NEWS.txt (.../branches/release26-maint) (Revision 74094)
@@ -1,8 +1,26 @@
-What's New in IDLE 2.6a3?
-=========================
@@ -9804,10 +10686,62 @@
- There was an error on exit if no sys.exitfunc was defined. Issue 1647.
+@@ -292,7 +310,7 @@
+ window raising, especially in the Windows menu and in the debugger.
+ IDLEfork 763524.
+
+-- If user passes a non-existant filename on the commandline, just
++- If user passes a non-existent filename on the commandline, just
+ open a new file, don't raise a dialog. IDLEfork 854928.
+
+
+Index: Lib/wsgiref/headers.py
+===================================================================
+--- Lib/wsgiref/headers.py (.../tags/r262) (Revision 74094)
++++ Lib/wsgiref/headers.py (.../branches/release26-maint) (Revision 74094)
+@@ -1,6 +1,6 @@
+ """Manage HTTP Response Headers
+
+-Much of this module is red-handedly pilfered from email.Message in the stdlib,
++Much of this module is red-handedly pilfered from email.message in the stdlib,
+ so portions are Copyright (C) 2001,2002 Python Software Foundation, and were
+ written by Barry Warsaw.
+ """
+@@ -8,7 +8,7 @@
+ from types import ListType, TupleType
+
+ # Regular expression that matches `special' characters in parameters, the
+-# existance of which force quoting of the parameter value.
++# existence of which force quoting of the parameter value.
+ import re
+ tspecials = re.compile(r'[ \(\)<>@,;:\\"/\[\]\?=]')
+
+@@ -174,7 +174,7 @@
+
+ h.add_header('content-disposition', 'attachment', filename='bud.gif')
+
+- Note that unlike the corresponding 'email.Message' method, this does
++ Note that unlike the corresponding 'email.message' method, this does
+ *not* handle '(charset, language, value)' tuples: all values must be
+ strings or None.
+ """
+Index: Lib/smtpd.py
+===================================================================
+--- Lib/smtpd.py (.../tags/r262) (Revision 74094)
++++ Lib/smtpd.py (.../branches/release26-maint) (Revision 74094)
+@@ -420,7 +420,7 @@
+ s = StringIO(data)
+ msg = Message.Message(s)
+ # These headers are required for the proper execution of Mailman. All
+- # MTAs in existance seem to add these if the original message doesn't
++ # MTAs in existence seem to add these if the original message doesn't
+ # have them.
+ if not msg.getheader('from'):
+ msg['From'] = mailfrom
Index: Lib/_abcoll.py
===================================================================
---- Lib/_abcoll.py (.../tags/r262) (Revision 73476)
-+++ Lib/_abcoll.py (.../branches/release26-maint) (Revision 73476)
+--- Lib/_abcoll.py (.../tags/r262) (Revision 74094)
++++ Lib/_abcoll.py (.../branches/release26-maint) (Revision 74094)
@@ -557,5 +557,6 @@
def __iadd__(self, values):
@@ -9817,8 +10751,8 @@
MutableSequence.register(list)
Index: Lib/optparse.py
===================================================================
---- Lib/optparse.py (.../tags/r262) (Revision 73476)
-+++ Lib/optparse.py (.../branches/release26-maint) (Revision 73476)
+--- Lib/optparse.py (.../tags/r262) (Revision 74094)
++++ Lib/optparse.py (.../branches/release26-maint) (Revision 74094)
@@ -6,6 +6,19 @@
For support, use the optik-users@lists.sourceforge.net mailing list
@@ -9839,10 +10773,28 @@
"""
__version__ = "1.5.3"
+@@ -1575,7 +1588,7 @@
+ """print_usage(file : file = stdout)
+
+ Print the usage message for the current program (self.usage) to
+- 'file' (default stdout). Any occurence of the string "%prog" in
++ 'file' (default stdout). Any occurrence of the string "%prog" in
+ self.usage is replaced with the name of the current program
+ (basename of sys.argv[0]). Does nothing if self.usage is empty
+ or not defined.
+@@ -1593,7 +1606,7 @@
+ """print_version(file : file = stdout)
+
+ Print the version message for this program (self.version) to
+- 'file' (default stdout). As with print_usage(), any occurence
++ 'file' (default stdout). As with print_usage(), any occurrence
+ of "%prog" in self.version is replaced by the current program's
+ name. Does nothing if self.version is empty or undefined.
+ """
Index: Lib/smtplib.py
===================================================================
---- Lib/smtplib.py (.../tags/r262) (Revision 73476)
-+++ Lib/smtplib.py (.../branches/release26-maint) (Revision 73476)
+--- Lib/smtplib.py (.../tags/r262) (Revision 74094)
++++ Lib/smtplib.py (.../branches/release26-maint) (Revision 74094)
@@ -751,9 +751,10 @@
def _get_socket(self, host, port, timeout):
@@ -9859,8 +10811,8 @@
Index: Lib/imaplib.py
===================================================================
---- Lib/imaplib.py (.../tags/r262) (Revision 73476)
-+++ Lib/imaplib.py (.../branches/release26-maint) (Revision 73476)
+--- Lib/imaplib.py (.../tags/r262) (Revision 74094)
++++ Lib/imaplib.py (.../branches/release26-maint) (Revision 74094)
@@ -226,8 +226,7 @@
"""
self.host = host
@@ -9883,8 +10835,8 @@
Index: Lib/posixpath.py
===================================================================
---- Lib/posixpath.py (.../tags/r262) (Revision 73476)
-+++ Lib/posixpath.py (.../branches/release26-maint) (Revision 73476)
+--- Lib/posixpath.py (.../tags/r262) (Revision 74094)
++++ Lib/posixpath.py (.../branches/release26-maint) (Revision 74094)
@@ -216,7 +216,8 @@
beyond that arg is always passed to func. It can be used, e.g., to pass
a filename pattern, or a mutable object designed to accumulate
@@ -9897,8 +10849,8 @@
except os.error:
Index: Lib/xmllib.py
===================================================================
---- Lib/xmllib.py (.../tags/r262) (Revision 73476)
-+++ Lib/xmllib.py (.../branches/release26-maint) (Revision 73476)
+--- Lib/xmllib.py (.../tags/r262) (Revision 74094)
++++ Lib/xmllib.py (.../branches/release26-maint) (Revision 74094)
@@ -6,7 +6,8 @@
import string
@@ -9911,8 +10863,8 @@
version = '0.3'
Index: Lib/distutils/cygwinccompiler.py
===================================================================
---- Lib/distutils/cygwinccompiler.py (.../tags/r262) (Revision 73476)
-+++ Lib/distutils/cygwinccompiler.py (.../branches/release26-maint) (Revision 73476)
+--- Lib/distutils/cygwinccompiler.py (.../tags/r262) (Revision 74094)
++++ Lib/distutils/cygwinccompiler.py (.../branches/release26-maint) (Revision 74094)
@@ -76,7 +76,7 @@
# VS2008 / MSVC 9.0
return ['msvcr90']
@@ -9924,8 +10876,8 @@
class CygwinCCompiler (UnixCCompiler):
Index: Lib/distutils/tests/test_sysconfig.py
===================================================================
---- Lib/distutils/tests/test_sysconfig.py (.../tags/r262) (Revision 73476)
-+++ Lib/distutils/tests/test_sysconfig.py (.../branches/release26-maint) (Revision 73476)
+--- Lib/distutils/tests/test_sysconfig.py (.../tags/r262) (Revision 74094)
++++ Lib/distutils/tests/test_sysconfig.py (.../branches/release26-maint) (Revision 74094)
@@ -2,12 +2,21 @@
from distutils import sysconfig
@@ -9973,8 +10925,8 @@
+ test.test_support.run_unittest(test_suite())
Index: Lib/distutils/tests/test_build_scripts.py
===================================================================
---- Lib/distutils/tests/test_build_scripts.py (.../tags/r262) (Revision 73476)
-+++ Lib/distutils/tests/test_build_scripts.py (.../branches/release26-maint) (Revision 73476)
+--- Lib/distutils/tests/test_build_scripts.py (.../tags/r262) (Revision 74094)
++++ Lib/distutils/tests/test_build_scripts.py (.../branches/release26-maint) (Revision 74094)
@@ -90,7 +90,7 @@
# On linux-g++-32 with command line `./configure --enable-ipv6
# --with-suffix=3`, python is compiled okay but the build scripts
@@ -9986,8 +10938,8 @@
cmd.run()
Index: Lib/distutils/tests/support.py
===================================================================
---- Lib/distutils/tests/support.py (.../tags/r262) (Revision 73476)
-+++ Lib/distutils/tests/support.py (.../branches/release26-maint) (Revision 73476)
+--- Lib/distutils/tests/support.py (.../tags/r262) (Revision 74094)
++++ Lib/distutils/tests/support.py (.../branches/release26-maint) (Revision 74094)
@@ -42,7 +42,19 @@
self.tempdirs.append(d)
return d
@@ -10010,8 +10962,8 @@
Index: Lib/distutils/tests/test_build_ext.py
===================================================================
---- Lib/distutils/tests/test_build_ext.py (.../tags/r262) (Revision 73476)
-+++ Lib/distutils/tests/test_build_ext.py (.../branches/release26-maint) (Revision 73476)
+--- Lib/distutils/tests/test_build_ext.py (.../tags/r262) (Revision 74094)
++++ Lib/distutils/tests/test_build_ext.py (.../branches/release26-maint) (Revision 74094)
@@ -7,6 +7,8 @@
from distutils.core import Extension, Distribution
from distutils.command.build_ext import build_ext
@@ -10044,7 +10996,7 @@
def test_solaris_enable_shared(self):
dist = Distribution({'name': 'xx'})
-@@ -93,9 +99,202 @@
+@@ -93,9 +99,236 @@
else:
_config_vars['Py_ENABLE_SHARED'] = old_var
@@ -10224,12 +11176,12 @@
+ self.assertEquals(so_dir, cmd.build_lib)
+
+ # inplace = 0, cmd.package = 'bar'
-+ cmd.package = 'bar'
++ build_py = cmd.get_finalized_command('build_py')
++ build_py.package_dir = {'': 'bar'}
+ path = cmd.get_ext_fullpath('foo')
-+ # checking that the last directory is bar
++ # checking that the last directory is the build_dir
+ path = os.path.split(path)[0]
-+ lastdir = os.path.split(path)[-1]
-+ self.assertEquals(lastdir, cmd.package)
++ self.assertEquals(path, cmd.build_lib)
+
+ # inplace = 1, cmd.package = 'bar'
+ cmd.inplace = 1
@@ -10243,15 +11195,49 @@
+ # checking that the last directory is bar
+ path = os.path.split(path)[0]
+ lastdir = os.path.split(path)[-1]
-+ self.assertEquals(lastdir, cmd.package)
++ self.assertEquals(lastdir, 'bar')
++
++ def test_ext_fullpath(self):
++ ext = sysconfig.get_config_vars()['SO']
++ dist = Distribution()
++ cmd = build_ext(dist)
++ cmd.inplace = 1
++ cmd.distribution.package_dir = {'': 'src'}
++ cmd.distribution.packages = ['lxml', 'lxml.html']
++ curdir = os.getcwd()
++ wanted = os.path.join(curdir, 'src', 'lxml', 'etree' + ext)
++ path = cmd.get_ext_fullpath('lxml.etree')
++ self.assertEquals(wanted, path)
++
++ # building lxml.etree not inplace
++ cmd.inplace = 0
++ cmd.build_lib = os.path.join(curdir, 'tmpdir')
++ wanted = os.path.join(curdir, 'tmpdir', 'lxml', 'etree' + ext)
++ path = cmd.get_ext_fullpath('lxml.etree')
++ self.assertEquals(wanted, path)
++
++ # building twisted.runner.portmap not inplace
++ build_py = cmd.get_finalized_command('build_py')
++ build_py.package_dir = {}
++ cmd.distribution.packages = ['twisted', 'twisted.runner.portmap']
++ path = cmd.get_ext_fullpath('twisted.runner.portmap')
++ wanted = os.path.join(curdir, 'tmpdir', 'twisted', 'runner',
++ 'portmap' + ext)
++ self.assertEquals(wanted, path)
++
++ # building twisted.runner.portmap inplace
++ cmd.inplace = 1
++ path = cmd.get_ext_fullpath('twisted.runner.portmap')
++ wanted = os.path.join(curdir, 'twisted', 'runner', 'portmap' + ext)
++ self.assertEquals(wanted, path)
+
def test_suite():
if not sysconfig.python_build:
if test_support.verbose:
Index: Lib/distutils/tests/test_bdist_wininst.py
===================================================================
---- Lib/distutils/tests/test_bdist_wininst.py (.../tags/r262) (Revision 73476)
-+++ Lib/distutils/tests/test_bdist_wininst.py (.../branches/release26-maint) (Revision 73476)
+--- Lib/distutils/tests/test_bdist_wininst.py (.../tags/r262) (Revision 74094)
++++ Lib/distutils/tests/test_bdist_wininst.py (.../branches/release26-maint) (Revision 74094)
@@ -7,6 +7,7 @@
from distutils.tests import support
@@ -10262,8 +11248,8 @@
def test_get_exe_bytes(self):
Index: Lib/distutils/tests/test_sdist.py
===================================================================
---- Lib/distutils/tests/test_sdist.py (.../tags/r262) (Revision 73476)
-+++ Lib/distutils/tests/test_sdist.py (.../branches/release26-maint) (Revision 73476)
+--- Lib/distutils/tests/test_sdist.py (.../tags/r262) (Revision 74094)
++++ Lib/distutils/tests/test_sdist.py (.../branches/release26-maint) (Revision 74094)
@@ -29,14 +29,14 @@
class sdistTestCase(PyPIRCCommandTestCase):
@@ -10281,10 +11267,23 @@
def _init_tmp_pkg(self):
if os.path.exists(TEMP_PKG):
+Index: Lib/distutils/tests/test_core.py
+===================================================================
+--- Lib/distutils/tests/test_core.py (.../tags/r262) (Revision 74094)
++++ Lib/distutils/tests/test_core.py (.../branches/release26-maint) (Revision 74094)
+@@ -57,7 +57,7 @@
+
+ def test_run_setup_uses_current_dir(self):
+ # This tests that the setup script is run with the current directory
+- # as it's own current directory; this was temporarily broken by a
++ # as its own current directory; this was temporarily broken by a
+ # previous patch when TESTFN did not use the current directory.
+ sys.stdout = StringIO.StringIO()
+ cwd = os.getcwd()
Index: Lib/distutils/command/install_lib.py
===================================================================
---- Lib/distutils/command/install_lib.py (.../tags/r262) (Revision 73476)
-+++ Lib/distutils/command/install_lib.py (.../branches/release26-maint) (Revision 73476)
+--- Lib/distutils/command/install_lib.py (.../tags/r262) (Revision 74094)
++++ Lib/distutils/command/install_lib.py (.../branches/release26-maint) (Revision 74094)
@@ -80,7 +80,8 @@
if type(self.optimize) is not IntType:
try:
@@ -10297,8 +11296,8 @@
Index: Lib/distutils/command/bdist_msi.py
===================================================================
---- Lib/distutils/command/bdist_msi.py (.../tags/r262) (Revision 73476)
-+++ Lib/distutils/command/bdist_msi.py (.../branches/release26-maint) (Revision 73476)
+--- Lib/distutils/command/bdist_msi.py (.../tags/r262) (Revision 74094)
++++ Lib/distutils/command/bdist_msi.py (.../branches/release26-maint) (Revision 74094)
@@ -282,9 +282,14 @@
PYTHON.USER if defined, else from PYTHON.MACHINE.
PYTHON is PYTHONDIR\python.exe"""
@@ -10318,8 +11317,8 @@
("PYTHON.USER", "python.user")])
Index: Lib/distutils/command/build_ext.py
===================================================================
---- Lib/distutils/command/build_ext.py (.../tags/r262) (Revision 73476)
-+++ Lib/distutils/command/build_ext.py (.../branches/release26-maint) (Revision 73476)
+--- Lib/distutils/command/build_ext.py (.../tags/r262) (Revision 74094)
++++ Lib/distutils/command/build_ext.py (.../branches/release26-maint) (Revision 74094)
@@ -128,7 +128,7 @@
self.swig_opts = None
self.user = None
@@ -10579,7 +11578,7 @@
libraries=self.get_libraries(ext),
library_dirs=ext.library_dirs,
runtime_library_dirs=ext.runtime_library_dirs,
-@@ -659,19 +622,41 @@
+@@ -659,19 +622,50 @@
# -- Name generators -----------------------------------------------
# (extension names, filenames, whatever)
@@ -10591,18 +11590,27 @@
+ (inplace option).
+ """
+ fullname = self.get_ext_fullname(ext_name)
-+ filename = self.get_ext_filename(fullname)
++ modpath = fullname.split('.')
++ filename = self.get_ext_filename(modpath[-1])
++
+ if not self.inplace:
+ # no further work needed
++ # returning :
++ # build_dir/package/path/filename
++ filename = os.path.join(*modpath[:-1]+[filename])
+ return os.path.join(self.build_lib, filename)
+
+ # the inplace option requires to find the package directory
-+ # using the build_py command
++ # using the build_py command for that
++ package = '.'.join(modpath[0:-1])
+ modpath = fullname.split('.')
+ package = '.'.join(modpath[0:-1])
+ base = modpath[-1]
+ build_py = self.get_finalized_command('build_py')
+ package_dir = os.path.abspath(build_py.get_package_dir(package))
++
++ # returning
++ # package_dir/filename
+ return os.path.join(package_dir, filename)
+
+ def get_ext_fullname(self, ext_name):
@@ -10624,10 +11632,20 @@
from distutils.sysconfig import get_config_var
ext_path = string.split(ext_name, '.')
# OS/2 has an 8 character module (extension) limit :-(
+@@ -689,8 +683,7 @@
+ provided, "init" + module_name. Only relevant on Windows, where
+ the .pyd file (DLL) must export the module "init" function.
+ """
+-
+- initfunc_name = "init" + string.split(ext.name,'.')[-1]
++ initfunc_name = "init" + ext.name.split('.')[-1]
+ if initfunc_name not in ext.export_symbols:
+ ext.export_symbols.append(initfunc_name)
+ return ext.export_symbols
Index: Lib/distutils/sysconfig.py
===================================================================
---- Lib/distutils/sysconfig.py (.../tags/r262) (Revision 73476)
-+++ Lib/distutils/sysconfig.py (.../branches/release26-maint) (Revision 73476)
+--- Lib/distutils/sysconfig.py (.../tags/r262) (Revision 74094)
++++ Lib/distutils/sysconfig.py (.../branches/release26-maint) (Revision 74094)
@@ -275,18 +275,25 @@
while 1:
@@ -10671,8 +11689,8 @@
del notdone[name]
Index: Lib/ntpath.py
===================================================================
---- Lib/ntpath.py (.../tags/r262) (Revision 73476)
-+++ Lib/ntpath.py (.../branches/release26-maint) (Revision 73476)
+--- Lib/ntpath.py (.../tags/r262) (Revision 74094)
++++ Lib/ntpath.py (.../branches/release26-maint) (Revision 74094)
@@ -250,7 +250,8 @@
beyond that arg is always passed to func. It can be used, e.g., to pass
a filename pattern, or a mutable object designed to accumulate
@@ -10685,8 +11703,8 @@
except os.error:
Index: Lib/gzip.py
===================================================================
---- Lib/gzip.py (.../tags/r262) (Revision 73476)
-+++ Lib/gzip.py (.../branches/release26-maint) (Revision 73476)
+--- Lib/gzip.py (.../tags/r262) (Revision 74094)
++++ Lib/gzip.py (.../branches/release26-maint) (Revision 74094)
@@ -114,7 +114,7 @@
@property
def filename(self):
@@ -10698,8 +11716,8 @@
return self.name
Index: Lib/macpath.py
===================================================================
---- Lib/macpath.py (.../tags/r262) (Revision 73476)
-+++ Lib/macpath.py (.../branches/release26-maint) (Revision 73476)
+--- Lib/macpath.py (.../tags/r262) (Revision 74094)
++++ Lib/macpath.py (.../branches/release26-maint) (Revision 74094)
@@ -170,7 +170,8 @@
beyond that arg is always passed to func. It can be used, e.g., to pass
a filename pattern, or a mutable object designed to accumulate
@@ -10710,10 +11728,23 @@
try:
names = os.listdir(top)
except os.error:
+Index: Lib/SocketServer.py
+===================================================================
+--- Lib/SocketServer.py (.../tags/r262) (Revision 74094)
++++ Lib/SocketServer.py (.../branches/release26-maint) (Revision 74094)
+@@ -487,7 +487,7 @@
+ # libraries that expect to be able to wait for their own
+ # children.
+ try:
+- pid, status = os.waitpid(0, options=0)
++ pid, status = os.waitpid(0, 0)
+ except os.error:
+ pid = None
+ if pid not in self.active_children: continue
Index: Lib/random.py
===================================================================
---- Lib/random.py (.../tags/r262) (Revision 73476)
-+++ Lib/random.py (.../branches/release26-maint) (Revision 73476)
+--- Lib/random.py (.../tags/r262) (Revision 74094)
++++ Lib/random.py (.../branches/release26-maint) (Revision 74094)
@@ -349,7 +349,7 @@
## -------------------- uniform distribution -------------------
@@ -10725,8 +11756,8 @@
## -------------------- triangular --------------------
Index: Lib/asyncore.py
===================================================================
---- Lib/asyncore.py (.../tags/r262) (Revision 73476)
-+++ Lib/asyncore.py (.../branches/release26-maint) (Revision 73476)
+--- Lib/asyncore.py (.../tags/r262) (Revision 74094)
++++ Lib/asyncore.py (.../branches/release26-maint) (Revision 74094)
@@ -69,10 +69,12 @@
class ExitNow(Exception):
pass
@@ -10850,8 +11881,8 @@
if not ignore_all:
Index: Lib/socket.py
===================================================================
---- Lib/socket.py (.../tags/r262) (Revision 73476)
-+++ Lib/socket.py (.../branches/release26-maint) (Revision 73476)
+--- Lib/socket.py (.../tags/r262) (Revision 74094)
++++ Lib/socket.py (.../branches/release26-maint) (Revision 74094)
@@ -16,7 +16,7 @@
gethostbyname() -- map a hostname to its IP number
gethostbyaddr() -- map an IP number or hostname to DNS info
@@ -10863,8 +11894,8 @@
inet_aton() -- convert IP addr string (123.45.67.89) to 32-bit packed format
Index: Lib/pickletools.py
===================================================================
---- Lib/pickletools.py (.../tags/r262) (Revision 73476)
-+++ Lib/pickletools.py (.../branches/release26-maint) (Revision 73476)
+--- Lib/pickletools.py (.../tags/r262) (Revision 74094)
++++ Lib/pickletools.py (.../branches/release26-maint) (Revision 74094)
@@ -1348,7 +1348,7 @@
arg=None,
stack_before=[markobject, stackslice],
@@ -10874,10 +11905,23 @@
doc="""Pop all the stack objects at and above the topmost markobject.
When an opcode using a variable number of stack objects is done,
+Index: Lib/difflib.py
+===================================================================
+--- Lib/difflib.py (.../tags/r262) (Revision 74094)
++++ Lib/difflib.py (.../branches/release26-maint) (Revision 74094)
+@@ -1329,7 +1329,7 @@
+ (from line tuple, to line tuple, boolean flag)
+
+ from/to line tuple -- (line num, line text)
+- line num -- integer or None (to indicate a context seperation)
++ line num -- integer or None (to indicate a context separation)
+ line text -- original line text with following markers inserted:
+ '\0+' -- marks start of added text
+ '\0-' -- marks start of deleted text
Index: Lib/logging/__init__.py
===================================================================
---- Lib/logging/__init__.py (.../tags/r262) (Revision 73476)
-+++ Lib/logging/__init__.py (.../branches/release26-maint) (Revision 73476)
+--- Lib/logging/__init__.py (.../tags/r262) (Revision 74094)
++++ Lib/logging/__init__.py (.../branches/release26-maint) (Revision 74094)
@@ -24,9 +24,12 @@
"""
@@ -10937,8 +11981,8 @@
self.flush()
Index: Lib/logging/handlers.py
===================================================================
---- Lib/logging/handlers.py (.../tags/r262) (Revision 73476)
-+++ Lib/logging/handlers.py (.../branches/release26-maint) (Revision 73476)
+--- Lib/logging/handlers.py (.../tags/r262) (Revision 74094)
++++ Lib/logging/handlers.py (.../branches/release26-maint) (Revision 74094)
@@ -203,8 +203,15 @@
self.extMatch = re.compile(self.extMatch)
@@ -11018,8 +12062,8 @@
#If DST changes and midnight or weekly rollover, adjust for this.
Index: Lib/collections.py
===================================================================
---- Lib/collections.py (.../tags/r262) (Revision 73476)
-+++ Lib/collections.py (.../branches/release26-maint) (Revision 73476)
+--- Lib/collections.py (.../tags/r262) (Revision 74094)
++++ Lib/collections.py (.../branches/release26-maint) (Revision 74094)
@@ -63,8 +63,8 @@
'%(typename)s(%(argtxt)s)' \n
__slots__ = () \n
@@ -11061,8 +12105,8 @@
except SyntaxError, e:
Index: Lib/ctypes/test/test_pickling.py
===================================================================
---- Lib/ctypes/test/test_pickling.py (.../tags/r262) (Revision 73476)
-+++ Lib/ctypes/test/test_pickling.py (.../branches/release26-maint) (Revision 73476)
+--- Lib/ctypes/test/test_pickling.py (.../tags/r262) (Revision 74094)
++++ Lib/ctypes/test/test_pickling.py (.../branches/release26-maint) (Revision 74094)
@@ -66,6 +66,11 @@
]:
self.assertRaises(ValueError, lambda: self.dumps(item))
@@ -11077,8 +12121,8 @@
return pickle.dumps(item, 1)
Index: Lib/ctypes/util.py
===================================================================
---- Lib/ctypes/util.py (.../tags/r262) (Revision 73476)
-+++ Lib/ctypes/util.py (.../branches/release26-maint) (Revision 73476)
+--- Lib/ctypes/util.py (.../tags/r262) (Revision 74094)
++++ Lib/ctypes/util.py (.../branches/release26-maint) (Revision 74094)
@@ -52,12 +52,12 @@
# See MSDN for the REAL search order.
for directory in os.environ['PATH'].split(os.pathsep):
@@ -11096,8 +12140,8 @@
Index: Lib/abc.py
===================================================================
---- Lib/abc.py (.../tags/r262) (Revision 73476)
-+++ Lib/abc.py (.../branches/release26-maint) (Revision 73476)
+--- Lib/abc.py (.../tags/r262) (Revision 74094)
++++ Lib/abc.py (.../branches/release26-maint) (Revision 74094)
@@ -10,7 +10,7 @@
Requires that the metaclass is ABCMeta or derived from it. A
class that has a metaclass derived from ABCMeta cannot be
@@ -11118,8 +12162,8 @@
Usage:
Index: Lib/sched.py
===================================================================
---- Lib/sched.py (.../tags/r262) (Revision 73476)
-+++ Lib/sched.py (.../branches/release26-maint) (Revision 73476)
+--- Lib/sched.py (.../tags/r262) (Revision 74094)
++++ Lib/sched.py (.../branches/release26-maint) (Revision 74094)
@@ -67,7 +67,7 @@
"""Remove an event from the queue.
@@ -11131,8 +12175,8 @@
self._queue.remove(event)
Index: Lib/commands.py
===================================================================
---- Lib/commands.py (.../tags/r262) (Revision 73476)
-+++ Lib/commands.py (.../branches/release26-maint) (Revision 73476)
+--- Lib/commands.py (.../tags/r262) (Revision 74094)
++++ Lib/commands.py (.../branches/release26-maint) (Revision 74094)
@@ -33,7 +33,7 @@
def getstatus(file):
"""Return output of "ls -ld " in a string."""
@@ -11144,8 +12188,8 @@
Index: Lib/cgi.py
===================================================================
---- Lib/cgi.py (.../tags/r262) (Revision 73476)
-+++ Lib/cgi.py (.../branches/release26-maint) (Revision 73476)
+--- Lib/cgi.py (.../tags/r262) (Revision 74094)
++++ Lib/cgi.py (.../branches/release26-maint) (Revision 74094)
@@ -181,14 +181,14 @@
def parse_qs(qs, keep_blank_values=0, strict_parsing=0):
"""Parse a query given as a string argument."""
@@ -11165,8 +12209,8 @@
def parse_multipart(fp, pdict):
Index: Lib/nntplib.py
===================================================================
---- Lib/nntplib.py (.../tags/r262) (Revision 73476)
-+++ Lib/nntplib.py (.../branches/release26-maint) (Revision 73476)
+--- Lib/nntplib.py (.../tags/r262) (Revision 74094)
++++ Lib/nntplib.py (.../branches/release26-maint) (Revision 74094)
@@ -109,8 +109,7 @@
"""
self.host = host
@@ -11179,8 +12223,26 @@
self.welcome = self.getresp()
Index: Lib/io.py
===================================================================
---- Lib/io.py (.../tags/r262) (Revision 73476)
-+++ Lib/io.py (.../branches/release26-maint) (Revision 73476)
+--- Lib/io.py (.../tags/r262) (Revision 74094)
++++ Lib/io.py (.../branches/release26-maint) (Revision 74094)
+@@ -4,7 +4,7 @@
+
+ At the top of the I/O hierarchy is the abstract base class IOBase. It
+ defines the basic interface to a stream. Note, however, that there is no
+-seperation between reading and writing to streams; implementations are
++separation between reading and writing to streams; implementations are
+ allowed to throw an IOError if they do not support a given operation.
+
+ Extending IOBase is RawIOBase which deals simply with the reading and
+@@ -1374,7 +1374,7 @@
+ enabled. With this enabled, on input, the lines endings '\n', '\r',
+ or '\r\n' are translated to '\n' before being returned to the
+ caller. Conversely, on output, '\n' is translated to the system
+- default line seperator, os.linesep. If newline is any other of its
++ default line separator, os.linesep. If newline is any other of its
+ legal values, that newline becomes the newline when the file is read
+ and it is returned untranslated. On output, '\n' is converted to the
+ newline.
@@ -1852,6 +1852,10 @@
encoding=encoding,
errors=errors,
@@ -11194,9 +12256,30 @@
initial_value = unicode(initial_value)
Index: Lib/pydoc.py
===================================================================
---- Lib/pydoc.py (.../tags/r262) (Revision 73476)
-+++ Lib/pydoc.py (.../branches/release26-maint) (Revision 73476)
-@@ -1751,6 +1751,7 @@
+--- Lib/pydoc.py (.../tags/r262) (Revision 74094)
++++ Lib/pydoc.py (.../branches/release26-maint) (Revision 74094)
+@@ -55,6 +55,7 @@
+ import sys, imp, os, re, types, inspect, __builtin__, pkgutil
+ from repr import Repr
+ from string import expandtabs, find, join, lower, split, strip, rfind, rstrip
++from traceback import extract_tb
+ try:
+ from collections import deque
+ except ImportError:
+@@ -299,9 +300,9 @@
+ elif exc is SyntaxError:
+ # A SyntaxError occurred before we could execute the module.
+ raise ErrorDuringImport(value.filename, info)
+- elif exc is ImportError and \
+- split(lower(str(value)))[:2] == ['no', 'module']:
+- # The module was not found.
++ elif exc is ImportError and extract_tb(tb)[-1][2]=='safeimport':
++ # The import error occurred directly in this function,
++ # which means there is no such module in the path.
+ return None
+ else:
+ # Some other error occurred during the importing process.
+@@ -1751,6 +1752,7 @@
def help(self, request):
if type(request) is type(''):
@@ -11204,10 +12287,49 @@
if request == 'help': self.intro()
elif request == 'keywords': self.listkeywords()
elif request == 'symbols': self.listsymbols()
+Index: Lib/bsddb/test/test_basics.py
+===================================================================
+--- Lib/bsddb/test/test_basics.py (.../tags/r262) (Revision 74094)
++++ Lib/bsddb/test/test_basics.py (.../branches/release26-maint) (Revision 74094)
+@@ -131,7 +131,7 @@
+
+ self.assertEqual(d.get('0321'), '0321-0321-0321-0321-0321')
+
+- # By default non-existant keys return None...
++ # By default non-existent keys return None...
+ self.assertEqual(d.get('abcd'), None)
+
+ # ...but they raise exceptions in other situations. Call
+Index: Lib/bsddb/test/test_recno.py
+===================================================================
+--- Lib/bsddb/test/test_recno.py (.../tags/r262) (Revision 74094)
++++ Lib/bsddb/test/test_recno.py (.../branches/release26-maint) (Revision 74094)
+@@ -150,7 +150,7 @@
+ if verbose:
+ print rec
+
+- # test that non-existant key lookups work (and that
++ # test that non-existent key lookups work (and that
+ # DBC_set_range doesn't have a memleak under valgrind)
+ rec = c.set_range(999999)
+ self.assertEqual(rec, None)
+Index: Lib/bsddb/test/test_compat.py
+===================================================================
+--- Lib/bsddb/test/test_compat.py (.../tags/r262) (Revision 74094)
++++ Lib/bsddb/test/test_compat.py (.../branches/release26-maint) (Revision 74094)
+@@ -133,7 +133,7 @@
+ except KeyError:
+ pass
+ else:
+- self.fail("set_location on non-existant key did not raise KeyError")
++ self.fail("set_location on non-existent key did not raise KeyError")
+
+ f.sync()
+ f.close()
Index: Lib/msilib/__init__.py
===================================================================
---- Lib/msilib/__init__.py (.../tags/r262) (Revision 73476)
-+++ Lib/msilib/__init__.py (.../branches/release26-maint) (Revision 73476)
+--- Lib/msilib/__init__.py (.../tags/r262) (Revision 74094)
++++ Lib/msilib/__init__.py (.../branches/release26-maint) (Revision 74094)
@@ -2,9 +2,11 @@
# Copyright (C) 2005 Martin v. Löwis
# Licensed to PSF under a Contributor Agreement.
@@ -11236,8 +12358,8 @@
si.SetProperty(PID_REVNUMBER, gen_uuid())
Index: Lib/aifc.py
===================================================================
---- Lib/aifc.py (.../tags/r262) (Revision 73476)
-+++ Lib/aifc.py (.../branches/release26-maint) (Revision 73476)
+--- Lib/aifc.py (.../tags/r262) (Revision 74094)
++++ Lib/aifc.py (.../branches/release26-maint) (Revision 74094)
@@ -144,9 +144,6 @@
_AIFC_version = 0xA2805140L # Version 1 of AIFF-C
@@ -11295,24 +12417,31 @@
# Internal methods.
Index: Lib/unittest.py
===================================================================
---- Lib/unittest.py (.../tags/r262) (Revision 73476)
-+++ Lib/unittest.py (.../branches/release26-maint) (Revision 73476)
-@@ -798,8 +798,10 @@
+--- Lib/unittest.py (.../tags/r262) (Revision 74094)
++++ Lib/unittest.py (.../branches/release26-maint) (Revision 74094)
+@@ -798,7 +798,7 @@
in MyTestCase
"""
def __init__(self, module='__main__', defaultTest=None,
- argv=None, testRunner=TextTestRunner,
+ argv=None, testRunner=None,
testLoader=defaultTestLoader):
-+ if testRunner is None:
-+ testRunner = TextTestRunner
if type(module) == type(''):
self.module = __import__(module)
- for part in module.split('.')[1:]:
+@@ -849,6 +849,9 @@
+ self.module)
+
+ def runTests(self):
++ if self.testRunner is None:
++ self.testRunner = TextTestRunner
++
+ if isinstance(self.testRunner, (type, types.ClassType)):
+ try:
+ testRunner = self.testRunner(verbosity=self.verbosity)
Index: Lib/tarfile.py
===================================================================
---- Lib/tarfile.py (.../tags/r262) (Revision 73476)
-+++ Lib/tarfile.py (.../branches/release26-maint) (Revision 73476)
+--- Lib/tarfile.py (.../tags/r262) (Revision 74094)
++++ Lib/tarfile.py (.../branches/release26-maint) (Revision 74094)
@@ -1591,7 +1591,8 @@
return self.format == USTAR_FORMAT
def _setposix(self, value):
@@ -11323,10 +12452,19 @@
if value:
self.format = USTAR_FORMAT
else:
+@@ -1774,7 +1775,7 @@
+ def getmember(self, name):
+ """Return a TarInfo object for member `name'. If `name' can not be
+ found in the archive, KeyError is raised. If a member occurs more
+- than once in the archive, its last occurence is assumed to be the
++ than once in the archive, its last occurrence is assumed to be the
+ most up-to-date version.
+ """
+ tarinfo = self._getmember(name)
Index: Lib/lib-tk/Tix.py
===================================================================
---- Lib/lib-tk/Tix.py (.../tags/r262) (Revision 73476)
-+++ Lib/lib-tk/Tix.py (.../branches/release26-maint) (Revision 73476)
+--- Lib/lib-tk/Tix.py (.../tags/r262) (Revision 74094)
++++ Lib/lib-tk/Tix.py (.../branches/release26-maint) (Revision 74094)
@@ -1544,8 +1544,8 @@
'''This command is used to indicate whether the entry given by
entryPath has children entries and whether the children are visible. mode
@@ -11338,10 +12476,171 @@
indicators will be drawn for this entry. The default mode is none. The
open mode indicates the entry has hidden children and this entry can be
opened by the user. The close mode indicates that all the children of the
+Index: Lib/lib-tk/turtle.py
+===================================================================
+--- Lib/lib-tk/turtle.py (.../tags/r262) (Revision 74094)
++++ Lib/lib-tk/turtle.py (.../branches/release26-maint) (Revision 74094)
+@@ -2794,7 +2794,7 @@
+
+ def _drawturtle(self):
+ """Manages the correct rendering of the turtle with respect to
+- its shape, resizemode, strech and tilt etc."""
++ its shape, resizemode, stretch and tilt etc."""
+ screen = self.screen
+ shape = screen._shapes[self.turtle.shapeIndex]
+ ttype = shape._type
+Index: Lib/lib-tk/Tkinter.py
+===================================================================
+--- Lib/lib-tk/Tkinter.py (.../tags/r262) (Revision 74094)
++++ Lib/lib-tk/Tkinter.py (.../branches/release26-maint) (Revision 74094)
+@@ -3316,7 +3316,7 @@
+ """Return the color (red, green, blue) of the pixel at X,Y."""
+ return self.tk.call(self.name, 'get', x, y)
+ def put(self, data, to=None):
+- """Put row formated colors to image starting from
++ """Put row formatted colors to image starting from
+ position TO, e.g. image.put("{red green} {blue yellow}", to=(4,6))"""
+ args = (self.name, 'put', data)
+ if to:
+Index: Lib/email/header.py
+===================================================================
+--- Lib/email/header.py (.../tags/r262) (Revision 74094)
++++ Lib/email/header.py (.../branches/release26-maint) (Revision 74094)
+@@ -62,7 +62,7 @@
+ header, otherwise a lower-case string containing the name of the character
+ set specified in the encoded string.
+
+- An email.Errors.HeaderParseError may be raised when certain decoding error
++ An email.errors.HeaderParseError may be raised when certain decoding error
+ occurs (e.g. a base64 decoding exception).
+ """
+ # If no encoding, just return the header
+@@ -337,8 +337,8 @@
+ # different charsets and/or encodings, and the resulting header will
+ # accurately reflect each setting.
+ #
+- # Each encoding can be email.Utils.QP (quoted-printable, for
+- # ASCII-like character sets like iso-8859-1), email.Utils.BASE64
++ # Each encoding can be email.utils.QP (quoted-printable, for
++ # ASCII-like character sets like iso-8859-1), email.utils.BASE64
+ # (Base64, for non-ASCII like character sets like KOI8-R and
+ # iso-2022-jp), or None (no encoding).
+ #
+Index: Lib/email/test/test_email_torture.py
+===================================================================
+--- Lib/email/test/test_email_torture.py (.../tags/r262) (Revision 74094)
++++ Lib/email/test/test_email_torture.py (.../branches/release26-maint) (Revision 74094)
+@@ -17,7 +17,7 @@
+
+ import email
+ from email import __file__ as testfile
+-from email.Iterators import _structure
++from email.iterators import _structure
+
+ def openfile(filename):
+ from os.path import join, dirname, abspath
+Index: Lib/email/test/test_email_codecs.py
+===================================================================
+--- Lib/email/test/test_email_codecs.py (.../tags/r262) (Revision 74094)
++++ Lib/email/test/test_email_codecs.py (.../branches/release26-maint) (Revision 74094)
+@@ -6,9 +6,9 @@
+ from test.test_support import TestSkipped, run_unittest
+
+ from email.test.test_email import TestEmailBase
+-from email.Charset import Charset
+-from email.Header import Header, decode_header
+-from email.Message import Message
++from email.charset import Charset
++from email.header import Header, decode_header
++from email.message import Message
+
+ # We're compatible with Python 2.3, but it doesn't have the built-in Asian
+ # codecs, so we have to skip all these tests.
+Index: Lib/email/base64mime.py
+===================================================================
+--- Lib/email/base64mime.py (.../tags/r262) (Revision 74094)
++++ Lib/email/base64mime.py (.../branches/release26-maint) (Revision 74094)
+@@ -20,7 +20,7 @@
+
+ This module does not do the line wrapping or end-of-line character conversion
+ necessary for proper internationalized headers; it only does dumb encoding and
+-decoding. To deal with the various line wrapping issues, use the email.Header
++decoding. To deal with the various line wrapping issues, use the email.header
+ module.
+ """
+
+@@ -167,7 +167,7 @@
+
+ This function does not parse a full MIME header value encoded with
+ base64 (like =?iso-8895-1?b?bmloISBuaWgh?=) -- please use the high
+- level email.Header class for that functionality.
++ level email.header class for that functionality.
+ """
+ if not s:
+ return s
+Index: Lib/email/message.py
+===================================================================
+--- Lib/email/message.py (.../tags/r262) (Revision 74094)
++++ Lib/email/message.py (.../branches/release26-maint) (Revision 74094)
+@@ -20,7 +20,7 @@
+ SEMISPACE = '; '
+
+ # Regular expression that matches `special' characters in parameters, the
+-# existance of which force quoting of the parameter value.
++# existence of which force quoting of the parameter value.
+ tspecials = re.compile(r'[ \(\)<>@,;:\\"/\[\]\?=]')
+
+
+@@ -129,7 +129,7 @@
+ "From ". For more flexibility, use the flatten() method of a
+ Generator instance.
+ """
+- from email.Generator import Generator
++ from email.generator import Generator
+ fp = StringIO()
+ g = Generator(fp)
+ g.flatten(self, unixfrom=unixfrom)
+@@ -787,4 +787,4 @@
+ return [part.get_content_charset(failobj) for part in self.walk()]
+
+ # I.e. def walk(self): ...
+- from email.Iterators import walk
++ from email.iterators import walk
+Index: Lib/email/quoprimime.py
+===================================================================
+--- Lib/email/quoprimime.py (.../tags/r262) (Revision 74094)
++++ Lib/email/quoprimime.py (.../branches/release26-maint) (Revision 74094)
+@@ -11,7 +11,7 @@
+ allowed in email bodies or headers.
+
+ Quoted-printable is very space-inefficient for encoding binary files; use the
+-email.base64MIME module for that instead.
++email.base64mime module for that instead.
+
+ This module provides an interface to encode and decode both headers and bodies
+ with quoted-printable encoding.
+@@ -23,7 +23,7 @@
+ This module does not do the line wrapping or end-of-line character
+ conversion necessary for proper internationalized headers; it only
+ does dumb encoding and decoding. To deal with the various line
+-wrapping issues, use the email.Header module.
++wrapping issues, use the email.header module.
+ """
+
+ __all__ = [
+@@ -330,7 +330,7 @@
+
+ This function does not parse a full MIME header value encoded with
+ quoted-printable (like =?iso-8895-1?q?Hello_World?=) -- please use
+- the high level email.Header class for that functionality.
++ the high level email.header class for that functionality.
+ """
+ s = s.replace('_', ' ')
+ return re.sub(r'=\w{2}', _unquote_match, s)
Index: Lib/zipfile.py
===================================================================
---- Lib/zipfile.py (.../tags/r262) (Revision 73476)
-+++ Lib/zipfile.py (.../branches/release26-maint) (Revision 73476)
+--- Lib/zipfile.py (.../tags/r262) (Revision 74094)
++++ Lib/zipfile.py (.../branches/release26-maint) (Revision 74094)
@@ -940,7 +940,9 @@
"""
# build the destination pathname, replacing
@@ -11363,10 +12662,19 @@
return targetpath
source = self.open(member, pwd=pwd)
+@@ -1107,7 +1110,7 @@
+ self.fp.flush()
+ if zinfo.flag_bits & 0x08:
+ # Write CRC and file sizes after the file data
+- self.fp.write(struct.pack(" file_dealloc ->
+- # write to stderr -> hang. http://bugs.python.org/issue1336
+- gc.disable()
+ try:
+- self.pid = os.fork()
+- except:
+- if gc_was_enabled:
+- gc.enable()
+- raise
+- self._child_created = True
+- if self.pid == 0:
+- # Child
+ try:
+- # Close parent's pipe ends
+- if p2cwrite is not None:
+- os.close(p2cwrite)
+- if c2pread is not None:
+- os.close(c2pread)
+- if errread is not None:
+- os.close(errread)
+- os.close(errpipe_read)
++ self._set_cloexec_flag(errpipe_write)
+
+- # Dup fds for child
+- if p2cread is not None:
+- os.dup2(p2cread, 0)
+- if c2pwrite is not None:
+- os.dup2(c2pwrite, 1)
+- if errwrite is not None:
+- os.dup2(errwrite, 2)
++ gc_was_enabled = gc.isenabled()
++ # Disable gc to avoid bug where gc -> file_dealloc ->
++ # write to stderr -> hang. http://bugs.python.org/issue1336
++ gc.disable()
++ try:
++ self.pid = os.fork()
++ except:
++ if gc_was_enabled:
++ gc.enable()
++ raise
++ self._child_created = True
++ if self.pid == 0:
++ # Child
++ try:
++ # Close parent's pipe ends
++ if p2cwrite is not None:
++ os.close(p2cwrite)
++ if c2pread is not None:
++ os.close(c2pread)
++ if errread is not None:
++ os.close(errread)
++ os.close(errpipe_read)
+
+- # Close pipe fds. Make sure we don't close the same
+- # fd more than once, or standard fds.
+- if p2cread is not None and p2cread not in (0,):
+- os.close(p2cread)
+- if c2pwrite is not None and c2pwrite not in (p2cread, 1):
+- os.close(c2pwrite)
+- if errwrite is not None and errwrite not in (p2cread, c2pwrite, 2):
+- os.close(errwrite)
++ # Dup fds for child
++ if p2cread is not None:
++ os.dup2(p2cread, 0)
++ if c2pwrite is not None:
++ os.dup2(c2pwrite, 1)
++ if errwrite is not None:
++ os.dup2(errwrite, 2)
+
+- # Close all other fds, if asked for
+- if close_fds:
+- self._close_fds(but=errpipe_write)
++ # Close pipe fds. Make sure we don't close the same
++ # fd more than once, or standard fds.
++ if p2cread is not None and p2cread not in (0,):
++ os.close(p2cread)
++ if c2pwrite is not None and c2pwrite not in (p2cread, 1):
++ os.close(c2pwrite)
++ if errwrite is not None and errwrite not in (p2cread, c2pwrite, 2):
++ os.close(errwrite)
+
+- if cwd is not None:
+- os.chdir(cwd)
++ # Close all other fds, if asked for
++ if close_fds:
++ self._close_fds(but=errpipe_write)
+
+- if preexec_fn:
+- preexec_fn()
++ if cwd is not None:
++ os.chdir(cwd)
+
+- if env is None:
+- os.execvp(executable, args)
+- else:
+- os.execvpe(executable, args, env)
++ if preexec_fn:
++ preexec_fn()
+
+- except:
+- exc_type, exc_value, tb = sys.exc_info()
+- # Save the traceback and attach it to the exception object
+- exc_lines = traceback.format_exception(exc_type,
+- exc_value,
+- tb)
+- exc_value.child_traceback = ''.join(exc_lines)
+- os.write(errpipe_write, pickle.dumps(exc_value))
++ if env is None:
++ os.execvp(executable, args)
++ else:
++ os.execvpe(executable, args, env)
+
+- # This exitcode won't be reported to applications, so it
+- # really doesn't matter what we return.
+- os._exit(255)
++ except:
++ exc_type, exc_value, tb = sys.exc_info()
++ # Save the traceback and attach it to the exception object
++ exc_lines = traceback.format_exception(exc_type,
++ exc_value,
++ tb)
++ exc_value.child_traceback = ''.join(exc_lines)
++ os.write(errpipe_write, pickle.dumps(exc_value))
+
+- # Parent
+- if gc_was_enabled:
+- gc.enable()
+- os.close(errpipe_write)
+- if p2cread is not None and p2cwrite is not None:
+- os.close(p2cread)
+- if c2pwrite is not None and c2pread is not None:
+- os.close(c2pwrite)
+- if errwrite is not None and errread is not None:
+- os.close(errwrite)
++ # This exitcode won't be reported to applications, so it
++ # really doesn't matter what we return.
++ os._exit(255)
+
+- # Wait for exec to fail or succeed; possibly raising exception
+- data = os.read(errpipe_read, 1048576) # Exceptions limited to 1 MB
+- os.close(errpipe_read)
++ # Parent
++ if gc_was_enabled:
++ gc.enable()
++ finally:
++ # be sure the FD is closed no matter what
++ os.close(errpipe_write)
++
++ if p2cread is not None and p2cwrite is not None:
++ os.close(p2cread)
++ if c2pwrite is not None and c2pread is not None:
++ os.close(c2pwrite)
++ if errwrite is not None and errread is not None:
++ os.close(errwrite)
++
++ # Wait for exec to fail or succeed; possibly raising exception
++ data = os.read(errpipe_read, 1048576) # Exceptions limited to 1 MB
++ finally:
++ # be sure the FD is closed no matter what
++ os.close(errpipe_read)
++
+ if data != "":
+ os.waitpid(self.pid, 0)
+ child_exception = pickle.loads(data)
Index: Lib/test/test_optparse.py
===================================================================
---- Lib/test/test_optparse.py (.../tags/r262) (Revision 73476)
-+++ Lib/test/test_optparse.py (.../branches/release26-maint) (Revision 73476)
+--- Lib/test/test_optparse.py (.../tags/r262) (Revision 74094)
++++ Lib/test/test_optparse.py (.../branches/release26-maint) (Revision 74094)
@@ -1464,15 +1464,9 @@
# we must restore its original value -- otherwise, this test
# screws things up for other tests when it's part of the Python
@@ -11496,8 +13019,8 @@
# Ensure that wrapping respects $COLUMNS environment variable.
Index: Lib/test/test_xmlrpc.py
===================================================================
---- Lib/test/test_xmlrpc.py (.../tags/r262) (Revision 73476)
-+++ Lib/test/test_xmlrpc.py (.../branches/release26-maint) (Revision 73476)
+--- Lib/test/test_xmlrpc.py (.../tags/r262) (Revision 74094)
++++ Lib/test/test_xmlrpc.py (.../branches/release26-maint) (Revision 74094)
@@ -583,25 +583,25 @@
self.cgi = None
@@ -11556,8 +13079,8 @@
sys.stdout.close()
Index: Lib/test/test_sundry.py
===================================================================
---- Lib/test/test_sundry.py (.../tags/r262) (Revision 73476)
-+++ Lib/test/test_sundry.py (.../branches/release26-maint) (Revision 73476)
+--- Lib/test/test_sundry.py (.../tags/r262) (Revision 74094)
++++ Lib/test/test_sundry.py (.../branches/release26-maint) (Revision 74094)
@@ -10,7 +10,6 @@
def test_at_least_import_untested_modules(self):
with warnings.catch_warnings():
@@ -11566,10 +13089,47 @@
import audiodev
import bdb
import cgitb
+Index: Lib/test/test_warnings.py
+===================================================================
+--- Lib/test/test_warnings.py (.../tags/r262) (Revision 74094)
++++ Lib/test/test_warnings.py (.../branches/release26-maint) (Revision 74094)
+@@ -337,7 +337,19 @@
+ self.module.warn_explicit,
+ None, Warning, None, 1, registry=42)
+
++ def test_bad_str(self):
++ # issue 6415
++ # Warnings instance with a bad format string for __str__ should not
++ # trigger a bus error.
++ class BadStrWarning(Warning):
++ """Warning with a bad format string for __str__."""
++ def __str__(self):
++ return ("A bad formatted string %(err)" %
++ {"err" : "there is no %(err)s"})
+
++ self.assertRaises(ValueError, self.module.warn, BadStrWarning())
++
++
+ class CWarnTests(BaseTest, WarnTests):
+ module = c_warnings
+
+Index: Lib/test/test_descrtut.py
+===================================================================
+--- Lib/test/test_descrtut.py (.../tags/r262) (Revision 74094)
++++ Lib/test/test_descrtut.py (.../branches/release26-maint) (Revision 74094)
+@@ -54,7 +54,7 @@
+ {1: 3.25}
+ >>> print a[1] # show the new item
+ 3.25
+- >>> print a[0] # a non-existant item
++ >>> print a[0] # a non-existent item
+ 0.0
+ >>> a.merge({1:100, 2:200}) # use a dict method
+ >>> print sortdict(a) # show the result
Index: Lib/test/test_smtplib.py
===================================================================
---- Lib/test/test_smtplib.py (.../tags/r262) (Revision 73476)
-+++ Lib/test/test_smtplib.py (.../branches/release26-maint) (Revision 73476)
+--- Lib/test/test_smtplib.py (.../tags/r262) (Revision 74094)
++++ Lib/test/test_smtplib.py (.../branches/release26-maint) (Revision 74094)
@@ -276,24 +276,39 @@
'Mrs.C@somewhereesle.com':'Ruth C',
}
@@ -11715,8 +13275,8 @@
NonConnectingTests,
Index: Lib/test/test_asyncore.py
===================================================================
---- Lib/test/test_asyncore.py (.../tags/r262) (Revision 73476)
-+++ Lib/test/test_asyncore.py (.../branches/release26-maint) (Revision 73476)
+--- Lib/test/test_asyncore.py (.../tags/r262) (Revision 74094)
++++ Lib/test/test_asyncore.py (.../branches/release26-maint) (Revision 74094)
@@ -115,12 +115,24 @@
def test_readwrite(self):
# Check that correct methods are called by readwrite()
@@ -11837,7 +13397,7 @@
Index: Lib/test/test_smtpnet.py
===================================================================
--- Lib/test/test_smtpnet.py (.../tags/r262) (Revision 0)
-+++ Lib/test/test_smtpnet.py (.../branches/release26-maint) (Revision 73476)
++++ Lib/test/test_smtpnet.py (.../branches/release26-maint) (Revision 74094)
@@ -0,0 +1,24 @@
+#!/usr/bin/env python
+
@@ -11865,8 +13425,8 @@
+ test_main()
Index: Lib/test/test_descr.py
===================================================================
---- Lib/test/test_descr.py (.../tags/r262) (Revision 73476)
-+++ Lib/test/test_descr.py (.../branches/release26-maint) (Revision 73476)
+--- Lib/test/test_descr.py (.../tags/r262) (Revision 74094)
++++ Lib/test/test_descr.py (.../branches/release26-maint) (Revision 74094)
@@ -1,3 +1,4 @@
+import __builtin__
import types
@@ -11909,8 +13469,8 @@
class WorkOnce(type):
Index: Lib/test/test_complex.py
===================================================================
---- Lib/test/test_complex.py (.../tags/r262) (Revision 73476)
-+++ Lib/test/test_complex.py (.../branches/release26-maint) (Revision 73476)
+--- Lib/test/test_complex.py (.../tags/r262) (Revision 74094)
++++ Lib/test/test_complex.py (.../branches/release26-maint) (Revision 74094)
@@ -220,6 +220,9 @@
self.assertAlmostEqual(complex("+1"), +1)
self.assertAlmostEqual(complex("(1+2j)"), 1+2j)
@@ -11923,8 +13483,8 @@
self.assertAlmostEqual(complex(complex2(1+1j)), 1+1j)
Index: Lib/test/test_site.py
===================================================================
---- Lib/test/test_site.py (.../tags/r262) (Revision 73476)
-+++ Lib/test/test_site.py (.../branches/release26-maint) (Revision 73476)
+--- Lib/test/test_site.py (.../tags/r262) (Revision 74094)
++++ Lib/test/test_site.py (.../branches/release26-maint) (Revision 74094)
@@ -5,7 +5,7 @@
"""
@@ -11946,8 +13506,8 @@
Index: Lib/test/test_unicode.py
===================================================================
---- Lib/test/test_unicode.py (.../tags/r262) (Revision 73476)
-+++ Lib/test/test_unicode.py (.../branches/release26-maint) (Revision 73476)
+--- Lib/test/test_unicode.py (.../tags/r262) (Revision 74094)
++++ Lib/test/test_unicode.py (.../branches/release26-maint) (Revision 74094)
@@ -1091,6 +1091,10 @@
self.assertRaises(ValueError, u"{:s}".format)
self.assertRaises(ValueError, u"{}".format)
@@ -11961,8 +13521,8 @@
Index: Lib/test/test_float.py
===================================================================
---- Lib/test/test_float.py (.../tags/r262) (Revision 73476)
-+++ Lib/test/test_float.py (.../branches/release26-maint) (Revision 73476)
+--- Lib/test/test_float.py (.../tags/r262) (Revision 74094)
++++ Lib/test/test_float.py (.../branches/release26-maint) (Revision 74094)
@@ -82,11 +82,23 @@
def __float__(self):
return 42
@@ -12032,10 +13592,46 @@
def test_from_hex(self):
MIN = self.MIN;
MAX = self.MAX;
+Index: Lib/test/test_py3kwarn.py
+===================================================================
+--- Lib/test/test_py3kwarn.py (.../tags/r262) (Revision 74094)
++++ Lib/test/test_py3kwarn.py (.../branches/release26-maint) (Revision 74094)
+@@ -22,6 +22,9 @@
+ def assertWarning(self, _, warning, expected_message):
+ self.assertEqual(str(warning.message), expected_message)
+
++ def assertNoWarning(self, _, recorder):
++ self.assertEqual(len(recorder.warnings), 0)
++
+ def test_backquote(self):
+ expected = 'backquote not supported in 3.x; use repr()'
+ with check_warnings() as w:
+@@ -132,7 +135,7 @@
+
+ def test_builtin_function_or_method_comparisons(self):
+ expected = ('builtin_function_or_method '
+- 'inequality comparisons not supported in 3.x')
++ 'order comparisons not supported in 3.x')
+ func = eval
+ meth = {}.get
+ with check_warnings() as w:
+@@ -143,6 +146,12 @@
+ self.assertWarning(meth <= func, w, expected)
+ w.reset()
+ self.assertWarning(meth >= func, w, expected)
++ w.reset()
++ self.assertNoWarning(meth == func, w)
++ self.assertNoWarning(meth != func, w)
++ lam = lambda x: x
++ self.assertNoWarning(lam == func, w)
++ self.assertNoWarning(lam != func, w)
+
+ def test_sort_cmp_arg(self):
+ expected = "the cmp argument is not supported in 3.x"
Index: Lib/test/test_logging.py
===================================================================
---- Lib/test/test_logging.py (.../tags/r262) (Revision 73476)
-+++ Lib/test/test_logging.py (.../branches/release26-maint) (Revision 73476)
+--- Lib/test/test_logging.py (.../tags/r262) (Revision 74094)
++++ Lib/test/test_logging.py (.../branches/release26-maint) (Revision 74094)
@@ -893,6 +893,7 @@
message = u'\u0434\u043e \u0441\u0432\u0438\u0434\u0430\u043d\u0438\u044f'
#Ensure it's written in a Cyrillic encoding
@@ -12044,10 +13640,63 @@
stream = cStringIO.StringIO()
writer = writer_class(stream, 'strict')
handler = logging.StreamHandler(writer)
+Index: Lib/test/test_print.py
+===================================================================
+--- Lib/test/test_print.py (.../tags/r262) (Revision 74094)
++++ Lib/test/test_print.py (.../branches/release26-maint) (Revision 74094)
+@@ -9,12 +9,7 @@
+ from test import test_support
+
+ import sys
+-if sys.version_info[0] == 3:
+- # 3.x
+- from io import StringIO
+-else:
+- # 2.x
+- from StringIO import StringIO
++from StringIO import StringIO
+
+ NotDefined = object()
+
+@@ -112,6 +107,34 @@
+ self.assertRaises(TypeError, print, '', end=3)
+ self.assertRaises(AttributeError, print, '', file='')
+
++ def test_mixed_args(self):
++ # If an unicode arg is passed, sep and end should be unicode, too.
++ class Recorder(object):
++
++ def __init__(self, must_be_unicode):
++ self.buf = []
++ self.force_unicode = must_be_unicode
++
++ def write(self, what):
++ if self.force_unicode and not isinstance(what, unicode):
++ raise AssertionError("{0!r} is not unicode".format(what))
++ self.buf.append(what)
++
++ buf = Recorder(True)
++ print(u'hi', file=buf)
++ self.assertEqual(u''.join(buf.buf), 'hi\n')
++ del buf.buf[:]
++ print(u'hi', u'nothing', file=buf)
++ self.assertEqual(u''.join(buf.buf), 'hi nothing\n')
++ buf = Recorder(False)
++ print('hi', 'bye', end=u'\n', file=buf)
++ self.assertTrue(isinstance(buf.buf[1], unicode))
++ self.assertTrue(isinstance(buf.buf[3], unicode))
++ del buf.buf[:]
++ print(sep=u'x', file=buf)
++ self.assertTrue(isinstance(buf.buf[-1], unicode))
++
++
+ def test_main():
+ test_support.run_unittest(TestPrint)
+
Index: Lib/test/test_profile.py
===================================================================
---- Lib/test/test_profile.py (.../tags/r262) (Revision 73476)
-+++ Lib/test/test_profile.py (.../branches/release26-maint) (Revision 73476)
+--- Lib/test/test_profile.py (.../tags/r262) (Revision 74094)
++++ Lib/test/test_profile.py (.../branches/release26-maint) (Revision 74094)
@@ -16,6 +16,7 @@
profilerclass = profile.Profile
methodnames = ['print_stats', 'print_callers', 'print_callees']
@@ -12085,8 +13734,8 @@
print 'Regenerating %s...' % filename
Index: Lib/test/test_cprofile.py
===================================================================
---- Lib/test/test_cprofile.py (.../tags/r262) (Revision 73476)
-+++ Lib/test/test_cprofile.py (.../branches/release26-maint) (Revision 73476)
+--- Lib/test/test_cprofile.py (.../tags/r262) (Revision 74094)
++++ Lib/test/test_cprofile.py (.../branches/release26-maint) (Revision 74094)
@@ -9,6 +9,7 @@
class CProfileTest(ProfileTest):
@@ -12097,12 +13746,75 @@
def test_bad_counter_during_dealloc(self):
Index: Lib/test/test_pydoc.py
===================================================================
---- Lib/test/test_pydoc.py (.../tags/r262) (Revision 73476)
-+++ Lib/test/test_pydoc.py (.../branches/release26-maint) (Revision 73476)
-@@ -237,7 +237,15 @@
+--- Lib/test/test_pydoc.py (.../tags/r262) (Revision 74094)
++++ Lib/test/test_pydoc.py (.../branches/release26-maint) (Revision 74094)
+@@ -1,5 +1,6 @@
+ import sys
+ import os
++import os.path
+ import difflib
+ import subprocess
+ import re
+@@ -7,6 +8,8 @@
+ import inspect
+ import unittest
+ import test.test_support
++from contextlib import contextmanager
++from test.test_support import TESTFN, forget, rmtree, EnvironmentVarGuard
+
+ from test import pydoc_mod
+
+@@ -166,6 +169,9 @@
+ # output pattern for missing module
+ missing_pattern = "no Python documentation found for '%s'"
+
++# output pattern for module with bad imports
++badimport_pattern = "problem in %s - : No module named %s"
++
+ def run_pydoc(module_name, *args):
+ """
+ Runs pydoc on the specified module. Returns the stripped
+@@ -237,7 +243,52 @@
self.assertEqual(expected, result,
"documentation for missing module found")
++ def test_badimport(self):
++ # This tests the fix for issue 5230, where if pydoc found the module
++ # but the module had an internal import error pydoc would report no doc
++ # found.
++ modname = 'testmod_xyzzy'
++ testpairs = (
++ ('i_am_not_here', 'i_am_not_here'),
++ ('test.i_am_not_here_either', 'i_am_not_here_either'),
++ ('test.i_am_not_here.neither_am_i', 'i_am_not_here.neither_am_i'),
++ ('i_am_not_here.{0}'.format(modname), 'i_am_not_here.{0}'.format(modname)),
++ ('test.{0}'.format(modname), modname),
++ )
+
++ @contextmanager
++ def newdirinpath(dir):
++ os.mkdir(dir)
++ sys.path.insert(0, dir)
++ yield
++ sys.path.pop(0)
++ rmtree(dir)
++
++ with newdirinpath(TESTFN):
++ with EnvironmentVarGuard() as env:
++ env.set('PYTHONPATH', TESTFN)
++ fullmodname = os.path.join(TESTFN, modname)
++ sourcefn = fullmodname + os.extsep + "py"
++ for importstring, expectedinmsg in testpairs:
++ f = open(sourcefn, 'w')
++ f.write("import {0}\n".format(importstring))
++ f.close()
++ try:
++ result = run_pydoc(modname)
++ finally:
++ forget(modname)
++ expected = badimport_pattern % (modname, expectedinmsg)
++ self.assertEqual(expected, result)
++
+ def test_input_strip(self):
+ missing_module = " test.i_am_not_here "
+ result = run_pydoc(missing_module)
@@ -12110,15 +13822,15 @@
+ self.assertEqual(expected, result,
+ "white space was not stripped from module name "
+ "or other error output mismatch")
-
++
+
class TestDescriptions(unittest.TestCase):
def test_module(self):
Index: Lib/test/pickletester.py
===================================================================
---- Lib/test/pickletester.py (.../tags/r262) (Revision 73476)
-+++ Lib/test/pickletester.py (.../branches/release26-maint) (Revision 73476)
+--- Lib/test/pickletester.py (.../tags/r262) (Revision 74094)
++++ Lib/test/pickletester.py (.../branches/release26-maint) (Revision 74094)
@@ -428,6 +428,16 @@
self.assertEqual(len(x), 1)
self.assert_(x is x[0])
@@ -12136,10 +13848,23 @@
def test_recursive_dict(self):
d = {}
d[1] = d
+Index: Lib/test/test_codeccallbacks.py
+===================================================================
+--- Lib/test/test_codeccallbacks.py (.../tags/r262) (Revision 74094)
++++ Lib/test/test_codeccallbacks.py (.../branches/release26-maint) (Revision 74094)
+@@ -109,7 +109,7 @@
+ # useful that the error handler is not called for every single
+ # unencodable character, but for a complete sequence of
+ # unencodable characters, otherwise we would output many
+- # unneccessary escape sequences.
++ # unnecessary escape sequences.
+
+ def uninamereplace(exc):
+ if not isinstance(exc, UnicodeEncodeError):
Index: Lib/test/test_aifc.py
===================================================================
--- Lib/test/test_aifc.py (.../tags/r262) (Revision 0)
-+++ Lib/test/test_aifc.py (.../branches/release26-maint) (Revision 73476)
++++ Lib/test/test_aifc.py (.../branches/release26-maint) (Revision 74094)
@@ -0,0 +1,69 @@
+from test.test_support import findfile, run_unittest
+import unittest
@@ -12212,8 +13937,8 @@
+ unittest.main()
Index: Lib/test/test_str.py
===================================================================
---- Lib/test/test_str.py (.../tags/r262) (Revision 73476)
-+++ Lib/test/test_str.py (.../branches/release26-maint) (Revision 73476)
+--- Lib/test/test_str.py (.../tags/r262) (Revision 74094)
++++ Lib/test/test_str.py (.../branches/release26-maint) (Revision 74094)
@@ -351,6 +351,10 @@
self.assertRaises(ValueError, "{:s}".format)
self.assertRaises(ValueError, "{}".format)
@@ -12225,10 +13950,46 @@
# can't have a replacement on the field name portion
self.assertRaises(TypeError, '{0[{1}]}'.format, 'abcdefg', 4)
+Index: Lib/test/test_cfgparser.py
+===================================================================
+--- Lib/test/test_cfgparser.py (.../tags/r262) (Revision 74094)
++++ Lib/test/test_cfgparser.py (.../branches/release26-maint) (Revision 74094)
+@@ -87,11 +87,11 @@
+ # Make sure the right things happen for remove_option();
+ # added to include check for SourceForge bug #123324:
+ self.failUnless(cf.remove_option('Foo Bar', 'foo'),
+- "remove_option() failed to report existance of option")
++ "remove_option() failed to report existence of option")
+ self.failIf(cf.has_option('Foo Bar', 'foo'),
+ "remove_option() failed to remove option")
+ self.failIf(cf.remove_option('Foo Bar', 'foo'),
+- "remove_option() failed to report non-existance of option"
++ "remove_option() failed to report non-existence of option"
+ " that was removed")
+
+ self.assertRaises(ConfigParser.NoSectionError,
+@@ -264,7 +264,7 @@
+ file1 = test_support.findfile("cfgparser.1")
+ # check when we pass a mix of readable and non-readable files:
+ cf = self.newconfig()
+- parsed_files = cf.read([file1, "nonexistant-file"])
++ parsed_files = cf.read([file1, "nonexistent-file"])
+ self.assertEqual(parsed_files, [file1])
+ self.assertEqual(cf.get("Foo Bar", "foo"), "newbar")
+ # check when we pass only a filename:
+@@ -274,7 +274,7 @@
+ self.assertEqual(cf.get("Foo Bar", "foo"), "newbar")
+ # check when we pass only missing files:
+ cf = self.newconfig()
+- parsed_files = cf.read(["nonexistant-file"])
++ parsed_files = cf.read(["nonexistent-file"])
+ self.assertEqual(parsed_files, [])
+ # check when we pass no files:
+ cf = self.newconfig()
Index: Lib/test/test_unicodedata.py
===================================================================
---- Lib/test/test_unicodedata.py (.../tags/r262) (Revision 73476)
-+++ Lib/test/test_unicodedata.py (.../branches/release26-maint) (Revision 73476)
+--- Lib/test/test_unicodedata.py (.../tags/r262) (Revision 74094)
++++ Lib/test/test_unicodedata.py (.../branches/release26-maint) (Revision 74094)
@@ -20,7 +20,7 @@
class UnicodeMethodsTest(unittest.TestCase):
@@ -12264,10 +14025,23 @@
def test_main():
test.test_support.run_unittest(
UnicodeMiscTest,
+Index: Lib/test/test_cookielib.py
+===================================================================
+--- Lib/test/test_cookielib.py (.../tags/r262) (Revision 74094)
++++ Lib/test/test_cookielib.py (.../branches/release26-maint) (Revision 74094)
+@@ -1714,7 +1714,7 @@
+ counter[key] = counter[key] + 1
+
+ self.assert_(not (
+- # a permanent cookie got lost accidently
++ # a permanent cookie got lost accidentally
+ counter["perm_after"] != counter["perm_before"] or
+ # a session cookie hasn't been cleared
+ counter["session_after"] != 0 or
Index: Lib/test/cmath_testcases.txt
===================================================================
---- Lib/test/cmath_testcases.txt (.../tags/r262) (Revision 73476)
-+++ Lib/test/cmath_testcases.txt (.../branches/release26-maint) (Revision 73476)
+--- Lib/test/cmath_testcases.txt (.../tags/r262) (Revision 74094)
++++ Lib/test/cmath_testcases.txt (.../branches/release26-maint) (Revision 74094)
@@ -43,7 +43,17 @@
-- ignored. Blank lines, or lines containing only whitespace, are also
-- ignored.
@@ -12286,10 +14060,23 @@
--------------------------
-- acos: Inverse cosine --
--------------------------
+Index: Lib/test/test_calendar.py
+===================================================================
+--- Lib/test/test_calendar.py (.../tags/r262) (Revision 74094)
++++ Lib/test/test_calendar.py (.../branches/release26-maint) (Revision 74094)
+@@ -170,7 +170,7 @@
+
+ class OutputTestCase(unittest.TestCase):
+ def normalize_calendar(self, s):
+- # Filters out locale dependant strings
++ # Filters out locale dependent strings
+ def neitherspacenordigit(c):
+ return not c.isspace() and not c.isdigit()
+
Index: Lib/test/test_epoll.py
===================================================================
---- Lib/test/test_epoll.py (.../tags/r262) (Revision 73476)
-+++ Lib/test/test_epoll.py (.../branches/release26-maint) (Revision 73476)
+--- Lib/test/test_epoll.py (.../tags/r262) (Revision 74094)
++++ Lib/test/test_epoll.py (.../branches/release26-maint) (Revision 74094)
@@ -95,6 +95,34 @@
finally:
ep.close()
@@ -12327,8 +14114,8 @@
Index: Lib/test/test_fileio.py
===================================================================
---- Lib/test/test_fileio.py (.../tags/r262) (Revision 73476)
-+++ Lib/test/test_fileio.py (.../branches/release26-maint) (Revision 73476)
+--- Lib/test/test_fileio.py (.../tags/r262) (Revision 74094)
++++ Lib/test/test_fileio.py (.../branches/release26-maint) (Revision 74094)
@@ -151,7 +151,7 @@
self.assertEquals(f.readable(), False)
self.assertEquals(f.writable(), True)
@@ -12340,8 +14127,8 @@
self.assertEquals(f.seekable(), False)
Index: Lib/test/test_tempfile.py
===================================================================
---- Lib/test/test_tempfile.py (.../tags/r262) (Revision 73476)
-+++ Lib/test/test_tempfile.py (.../branches/release26-maint) (Revision 73476)
+--- Lib/test/test_tempfile.py (.../tags/r262) (Revision 74094)
++++ Lib/test/test_tempfile.py (.../branches/release26-maint) (Revision 74094)
@@ -149,13 +149,11 @@
# _candidate_tempdir_list contains the expected directories
@@ -12368,10 +14155,89 @@
test_classes.append(test__candidate_tempdir_list)
+Index: Lib/test/test_old_mailbox.py
+===================================================================
+--- Lib/test/test_old_mailbox.py (.../tags/r262) (Revision 74094)
++++ Lib/test/test_old_mailbox.py (.../branches/release26-maint) (Revision 74094)
+@@ -99,11 +99,11 @@
+
+ def test_unix_mbox(self):
+ ### should be better!
+- import email.Parser
++ import email.parser
+ fname = self.createMessage("cur", True)
+ n = 0
+ for msg in mailbox.PortableUnixMailbox(open(fname),
+- email.Parser.Parser().parse):
++ email.parser.Parser().parse):
+ n += 1
+ self.assertEqual(msg["subject"], "Simple Test")
+ self.assertEqual(len(str(msg)), len(FROM_)+len(DUMMY_MESSAGE))
+Index: Lib/test/test_import.py
+===================================================================
+--- Lib/test/test_import.py (.../tags/r262) (Revision 74094)
++++ Lib/test/test_import.py (.../branches/release26-maint) (Revision 74094)
+@@ -1,12 +1,14 @@
+ import unittest
+ import os
++import stat
+ import random
+ import shutil
+ import sys
+ import py_compile
+ import warnings
+ import marshal
+-from test.test_support import unlink, TESTFN, unload, run_unittest, check_warnings
++from test.test_support import (unlink, TESTFN, unload, run_unittest,
++ check_warnings, TestFailed)
+
+
+ def remove_files(name):
+@@ -91,6 +93,32 @@
+ finally:
+ del sys.path[0]
+
++ if os.name == 'posix':
++ def test_execute_bit_not_copied(self):
++ # Issue 6070: under posix .pyc files got their execute bit set if
++ # the .py file had the execute bit set, but they aren't executable.
++ oldmask = os.umask(022)
++ sys.path.insert(0, os.curdir)
++ try:
++ fname = TESTFN + os.extsep + "py"
++ f = open(fname, 'w').close()
++ os.chmod(fname, (stat.S_IRUSR | stat.S_IRGRP | stat.S_IROTH |
++ stat.S_IXUSR | stat.S_IXGRP | stat.S_IXOTH))
++ __import__(TESTFN)
++ fn = fname + 'c'
++ if not os.path.exists(fn):
++ fn = fname + 'o'
++ if not os.path.exists(fn): raise TestFailed("__import__ did "
++ "not result in creation of either a .pyc or .pyo file")
++ s = os.stat(fn)
++ self.assertEquals(stat.S_IMODE(s.st_mode),
++ stat.S_IRUSR | stat.S_IRGRP | stat.S_IROTH)
++ finally:
++ os.umask(oldmask)
++ remove_files(TESTFN)
++ if TESTFN in sys.modules: del sys.modules[TESTFN]
++ del sys.path[0]
++
+ def testImpModule(self):
+ # Verify that the imp module can correctly load and find .py files
+ import imp
+@@ -232,6 +260,7 @@
+ else:
+ self.fail("import by path didn't raise an exception")
+
++
+ class TestPycRewriting(unittest.TestCase):
+ # Test that the `co_filename` attribute on code objects always points
+ # to the right file, even when various things happen (e.g. both the .py
Index: Lib/test/test_linecache.py
===================================================================
--- Lib/test/test_linecache.py (.../tags/r262) (Revision 0)
-+++ Lib/test/test_linecache.py (.../branches/release26-maint) (Revision 73476)
++++ Lib/test/test_linecache.py (.../branches/release26-maint) (Revision 74094)
@@ -0,0 +1,129 @@
+""" Tests for the linecache module """
+
@@ -12510,39 +14376,29 @@
Index: Lib/test/test_unittest.py
===================================================================
---- Lib/test/test_unittest.py (.../tags/r262) (Revision 73476)
-+++ Lib/test/test_unittest.py (.../branches/release26-maint) (Revision 73476)
-@@ -2284,6 +2284,17 @@
+--- Lib/test/test_unittest.py (.../tags/r262) (Revision 74094)
++++ Lib/test/test_unittest.py (.../branches/release26-maint) (Revision 74094)
+@@ -6,6 +6,7 @@
+ TestCase.{assert,fail}* methods (some are tested implicitly)
+ """
+
++import sys
+ from test import test_support
+ import unittest
+ from unittest import TestCase
+@@ -2284,6 +2285,8 @@
self.assertRaises(AssertionError,
self.failIfAlmostEqual, 0, .1+.1j, places=0)
+
-+class Test_TestProgram(TestCase):
-+
-+ def testTestProgram_testRunnerArgument(self):
-+ program = object.__new__(unittest.TestProgram)
-+ program.parseArgs = lambda _: None
-+ program.runTests = lambda: None
-+ program.__init__(testRunner=None)
-+ self.assertEqual(program.testRunner, unittest.TextTestRunner)
-+
+
######################################################################
## Main
######################################################################
-@@ -2291,7 +2302,7 @@
- def test_main():
- test_support.run_unittest(Test_TestCase, Test_TestLoader,
- Test_TestSuite, Test_TestResult, Test_FunctionTestCase,
-- Test_Assertions)
-+ Test_Assertions, Test_TestProgram)
-
- if __name__ == "__main__":
- test_main()
Index: Lib/test/test_property.py
===================================================================
---- Lib/test/test_property.py (.../tags/r262) (Revision 73476)
-+++ Lib/test/test_property.py (.../branches/release26-maint) (Revision 73476)
+--- Lib/test/test_property.py (.../tags/r262) (Revision 74094)
++++ Lib/test/test_property.py (.../branches/release26-maint) (Revision 74094)
@@ -60,6 +60,22 @@
"""The decorator does not use this doc string"""
return self._spam
@@ -12674,10 +14530,24 @@
if __name__ == '__main__':
test_main()
+Index: Lib/test/test_posix.py
+===================================================================
+--- Lib/test/test_posix.py (.../tags/r262) (Revision 74094)
++++ Lib/test/test_posix.py (.../branches/release26-maint) (Revision 74094)
+@@ -267,8 +267,8 @@
+ _create_and_do_getcwd(dirname)
+
+ finally:
++ os.chdir(curdir)
+ shutil.rmtree(base_path)
+- os.chdir(curdir)
+
+
+ def test_main():
Index: Lib/test/test_fcntl.py
===================================================================
---- Lib/test/test_fcntl.py (.../tags/r262) (Revision 73476)
-+++ Lib/test/test_fcntl.py (.../branches/release26-maint) (Revision 73476)
+--- Lib/test/test_fcntl.py (.../tags/r262) (Revision 74094)
++++ Lib/test/test_fcntl.py (.../branches/release26-maint) (Revision 74094)
@@ -57,7 +57,7 @@
self.f = None
@@ -12713,8 +14583,8 @@
Index: Lib/test/test_cpickle.py
===================================================================
---- Lib/test/test_cpickle.py (.../tags/r262) (Revision 73476)
-+++ Lib/test/test_cpickle.py (.../branches/release26-maint) (Revision 73476)
+--- Lib/test/test_cpickle.py (.../tags/r262) (Revision 74094)
++++ Lib/test/test_cpickle.py (.../branches/release26-maint) (Revision 74094)
@@ -64,6 +64,11 @@
AbstractPickleTests.test_recursive_list,
self)
@@ -12729,8 +14599,8 @@
AbstractPickleTests.test_recursive_inst,
Index: Lib/test/test_urllib.py
===================================================================
---- Lib/test/test_urllib.py (.../tags/r262) (Revision 73476)
-+++ Lib/test/test_urllib.py (.../branches/release26-maint) (Revision 73476)
+--- Lib/test/test_urllib.py (.../tags/r262) (Revision 74094)
++++ Lib/test/test_urllib.py (.../branches/release26-maint) (Revision 74094)
@@ -98,20 +98,20 @@
class ProxyTests(unittest.TestCase):
@@ -12762,8 +14632,8 @@
self.assertEquals('localhost', proxies['no'])
Index: Lib/test/test_zipfile.py
===================================================================
---- Lib/test/test_zipfile.py (.../tags/r262) (Revision 73476)
-+++ Lib/test/test_zipfile.py (.../branches/release26-maint) (Revision 73476)
+--- Lib/test/test_zipfile.py (.../tags/r262) (Revision 74094)
++++ Lib/test/test_zipfile.py (.../branches/release26-maint) (Revision 74094)
@@ -994,6 +994,11 @@
self.assertTrue(os.path.isdir(os.path.join(TESTFN2, "a", "b")))
self.assertTrue(os.path.exists(os.path.join(TESTFN2, "a", "b", "c")))
@@ -12776,10 +14646,57 @@
def testStoreDir(self):
os.mkdir(os.path.join(TESTFN2, "x"))
zipf = zipfile.ZipFile(TESTFN, "w")
+Index: Lib/test/test_urllib2.py
+===================================================================
+--- Lib/test/test_urllib2.py (.../tags/r262) (Revision 74094)
++++ Lib/test/test_urllib2.py (.../branches/release26-maint) (Revision 74094)
+@@ -224,8 +224,8 @@
+
+ class MockOpener:
+ addheaders = []
+- def open(self, req, data=None):
+- self.req, self.data = req, data
++ def open(self, req, data=None,timeout=socket._GLOBAL_DEFAULT_TIMEOUT):
++ self.req, self.data, self.timeout = req, data, timeout
+ def error(self, proto, *args):
+ self.proto, self.args = proto, args
+
+@@ -850,6 +850,7 @@
+ method = getattr(h, "http_error_%s" % code)
+ req = Request(from_url, data)
+ req.add_header("Nonsense", "viking=withhold")
++ req.timeout = socket._GLOBAL_DEFAULT_TIMEOUT
+ if data is not None:
+ req.add_header("Content-Length", str(len(data)))
+ req.add_unredirected_header("Spam", "spam")
+@@ -878,6 +879,7 @@
+
+ # loop detection
+ req = Request(from_url)
++ req.timeout = socket._GLOBAL_DEFAULT_TIMEOUT
+ def redirect(h, req, url=to_url):
+ h.http_error_302(req, MockFile(), 302, "Blah",
+ MockHeaders({"location": url}))
+@@ -887,6 +889,7 @@
+ # detect infinite loop redirect of a URL to itself
+ req = Request(from_url, origin_req_host="example.com")
+ count = 0
++ req.timeout = socket._GLOBAL_DEFAULT_TIMEOUT
+ try:
+ while 1:
+ redirect(h, req, "http://example.com/")
+@@ -898,6 +901,7 @@
+ # detect endless non-repeating chain of redirects
+ req = Request(from_url, origin_req_host="example.com")
+ count = 0
++ req.timeout = socket._GLOBAL_DEFAULT_TIMEOUT
+ try:
+ while 1:
+ redirect(h, req, "http://example.com/%d" % count)
Index: Lib/test/test_trace.py
===================================================================
---- Lib/test/test_trace.py (.../tags/r262) (Revision 73476)
-+++ Lib/test/test_trace.py (.../branches/release26-maint) (Revision 73476)
+--- Lib/test/test_trace.py (.../tags/r262) (Revision 74094)
++++ Lib/test/test_trace.py (.../branches/release26-maint) (Revision 74094)
@@ -740,6 +740,23 @@
def test_19_no_jump_without_trace_function(self):
no_jump_without_trace_function()
@@ -12804,10 +14721,23 @@
def test_main():
test_support.run_unittest(
TraceTestCase,
+Index: Lib/test/test_funcattrs.py
+===================================================================
+--- Lib/test/test_funcattrs.py (.../tags/r262) (Revision 74094)
++++ Lib/test/test_funcattrs.py (.../branches/release26-maint) (Revision 74094)
+@@ -196,7 +196,7 @@
+
+ def test_unset_attr(self):
+ for func in [self.b, self.f.a, self.fi.a]:
+- try: func.non_existant_attr
++ try: func.non_existent_attr
+ except AttributeError: pass
+ else: self.fail("using unknown attributes should raise "
+ "AttributeError")
Index: Lib/test/test_support.py
===================================================================
---- Lib/test/test_support.py (.../tags/r262) (Revision 73476)
-+++ Lib/test/test_support.py (.../branches/release26-maint) (Revision 73476)
+--- Lib/test/test_support.py (.../tags/r262) (Revision 74094)
++++ Lib/test/test_support.py (.../branches/release26-maint) (Revision 74094)
@@ -454,31 +454,33 @@
a context manager."""
@@ -12859,8 +14789,8 @@
"""Raise ResourceDenied if an exception is raised while the context manager
Index: Lib/test/test_collections.py
===================================================================
---- Lib/test/test_collections.py (.../tags/r262) (Revision 73476)
-+++ Lib/test/test_collections.py (.../branches/release26-maint) (Revision 73476)
+--- Lib/test/test_collections.py (.../tags/r262) (Revision 74094)
++++ Lib/test/test_collections.py (.../branches/release26-maint) (Revision 74094)
@@ -2,6 +2,8 @@
from test import test_support
from collections import namedtuple
@@ -12917,8 +14847,8 @@
def validate_abstract_methods(self, abc, *names):
Index: Lib/test/test_posixpath.py
===================================================================
---- Lib/test/test_posixpath.py (.../tags/r262) (Revision 73476)
-+++ Lib/test/test_posixpath.py (.../branches/release26-maint) (Revision 73476)
+--- Lib/test/test_posixpath.py (.../tags/r262) (Revision 74094)
++++ Lib/test/test_posixpath.py (.../branches/release26-maint) (Revision 74094)
@@ -345,10 +345,9 @@
self.assert_(isinstance(posixpath.expanduser("~root/"), basestring))
self.assert_(isinstance(posixpath.expanduser("~foo/"), basestring))
@@ -12933,10 +14863,23 @@
self.assertRaises(TypeError, posixpath.expanduser)
+Index: Lib/test/test_urllib2net.py
+===================================================================
+--- Lib/test/test_urllib2net.py (.../tags/r262) (Revision 74094)
++++ Lib/test/test_urllib2net.py (.../branches/release26-maint) (Revision 74094)
+@@ -104,7 +104,7 @@
+ def test_ftp(self):
+ urls = [
+ 'ftp://ftp.kernel.org/pub/linux/kernel/README',
+- 'ftp://ftp.kernel.org/pub/linux/kernel/non-existant-file',
++ 'ftp://ftp.kernel.org/pub/linux/kernel/non-existent-file',
+ #'ftp://ftp.kernel.org/pub/leenox/kernel/test',
+ 'ftp://gatekeeper.research.compaq.com/pub/DEC/SRC'
+ '/research-reports/00README-Legal-Rules-Regs',
Index: Lib/locale.py
===================================================================
---- Lib/locale.py (.../tags/r262) (Revision 73476)
-+++ Lib/locale.py (.../branches/release26-maint) (Revision 73476)
+--- Lib/locale.py (.../tags/r262) (Revision 74094)
++++ Lib/locale.py (.../branches/release26-maint) (Revision 74094)
@@ -546,7 +546,10 @@
according to the system configuration."""
if do_setlocale:
@@ -12951,8 +14894,8 @@
return result
Index: Lib/pydoc_topics.py
===================================================================
---- Lib/pydoc_topics.py (.../tags/r262) (Revision 73476)
-+++ Lib/pydoc_topics.py (.../branches/release26-maint) (Revision 73476)
+--- Lib/pydoc_topics.py (.../tags/r262) (Revision 74094)
++++ Lib/pydoc_topics.py (.../branches/release26-maint) (Revision 74094)
@@ -1,4 +1,4 @@
-# Autogenerated by Sphinx on Tue Apr 14 09:12:28 2009
+# Autogenerated by Sphinx on Tue Apr 28 20:27:10 2009
@@ -12998,10 +14941,23 @@
'lists': u'\nList displays\n*************\n\nA list display is a possibly empty series of expressions enclosed in\nsquare brackets:\n\n list_display ::= "[" [expression_list | list_comprehension] "]"\n list_comprehension ::= expression list_for\n list_for ::= "for" target_list "in" old_expression_list [list_iter]\n old_expression_list ::= old_expression [("," old_expression)+ [","]]\n list_iter ::= list_for | list_if\n list_if ::= "if" old_expression [list_iter]\n\nA list display yields a new list object. Its contents are specified\nby providing either a list of expressions or a list comprehension.\nWhen a comma-separated list of expressions is supplied, its elements\nare evaluated from left to right and placed into the list object in\nthat order. When a list comprehension is supplied, it consists of a\nsingle expression followed by at least one ``for`` clause and zero or\nmore ``for`` or ``if`` clauses. In this case, the elements of the new\nlist are those that would be produced by considering each of the\n``for`` or ``if`` clauses a block, nesting from left to right, and\nevaluating the expression to produce a list element each time the\ninnermost block is reached [1].\n',
'naming': u"\nNaming and binding\n******************\n\n*Names* refer to objects. Names are introduced by name binding\noperations. Each occurrence of a name in the program text refers to\nthe *binding* of that name established in the innermost function block\ncontaining the use.\n\nA *block* is a piece of Python program text that is executed as a\nunit. The following are blocks: a module, a function body, and a class\ndefinition. Each command typed interactively is a block. A script\nfile (a file given as standard input to the interpreter or specified\non the interpreter command line the first argument) is a code block.\nA script command (a command specified on the interpreter command line\nwith the '**-c**' option) is a code block. The file read by the\nbuilt-in function ``execfile()`` is a code block. The string argument\npassed to the built-in function ``eval()`` and to the ``exec``\nstatement is a code block. The expression read and evaluated by the\nbuilt-in function ``input()`` is a code block.\n\nA code block is executed in an *execution frame*. A frame contains\nsome administrative information (used for debugging) and determines\nwhere and how execution continues after the code block's execution has\ncompleted.\n\nA *scope* defines the visibility of a name within a block. If a local\nvariable is defined in a block, its scope includes that block. If the\ndefinition occurs in a function block, the scope extends to any blocks\ncontained within the defining one, unless a contained block introduces\na different binding for the name. The scope of names defined in a\nclass block is limited to the class block; it does not extend to the\ncode blocks of methods -- this includes generator expressions since\nthey are implemented using a function scope. This means that the\nfollowing will fail:\n\n class A:\n a = 42\n b = list(a + i for i in range(10))\n\nWhen a name is used in a code block, it is resolved using the nearest\nenclosing scope. The set of all such scopes visible to a code block\nis called the block's *environment*.\n\nIf a name is bound in a block, it is a local variable of that block.\nIf a name is bound at the module level, it is a global variable. (The\nvariables of the module code block are local and global.) If a\nvariable is used in a code block but not defined there, it is a *free\nvariable*.\n\nWhen a name is not found at all, a ``NameError`` exception is raised.\nIf the name refers to a local variable that has not been bound, a\n``UnboundLocalError`` exception is raised. ``UnboundLocalError`` is a\nsubclass of ``NameError``.\n\nThe following constructs bind names: formal parameters to functions,\n``import`` statements, class and function definitions (these bind the\nclass or function name in the defining block), and targets that are\nidentifiers if occurring in an assignment, ``for`` loop header, in the\nsecond position of an ``except`` clause header or after ``as`` in a\n``with`` statement. The ``import`` statement of the form ``from ...\nimport *`` binds all names defined in the imported module, except\nthose beginning with an underscore. This form may only be used at the\nmodule level.\n\nA target occurring in a ``del`` statement is also considered bound for\nthis purpose (though the actual semantics are to unbind the name). It\nis illegal to unbind a name that is referenced by an enclosing scope;\nthe compiler will report a ``SyntaxError``.\n\nEach assignment or import statement occurs within a block defined by a\nclass or function definition or at the module level (the top-level\ncode block).\n\nIf a name binding operation occurs anywhere within a code block, all\nuses of the name within the block are treated as references to the\ncurrent block. This can lead to errors when a name is used within a\nblock before it is bound. This rule is subtle. Python lacks\ndeclarations and allows name binding operations to occur anywhere\nwithin a code block. The local variables of a code block can be\ndetermined by scanning the entire text of the block for name binding\noperations.\n\nIf the global statement occurs within a block, all uses of the name\nspecified in the statement refer to the binding of that name in the\ntop-level namespace. Names are resolved in the top-level namespace by\nsearching the global namespace, i.e. the namespace of the module\ncontaining the code block, and the builtin namespace, the namespace of\nthe module ``__builtin__``. The global namespace is searched first.\nIf the name is not found there, the builtin namespace is searched.\nThe global statement must precede all uses of the name.\n\nThe built-in namespace associated with the execution of a code block\nis actually found by looking up the name ``__builtins__`` in its\nglobal namespace; this should be a dictionary or a module (in the\nlatter case the module's dictionary is used). By default, when in the\n``__main__`` module, ``__builtins__`` is the built-in module\n``__builtin__`` (note: no 's'); when in any other module,\n``__builtins__`` is an alias for the dictionary of the ``__builtin__``\nmodule itself. ``__builtins__`` can be set to a user-created\ndictionary to create a weak form of restricted execution.\n\nNote: Users should not touch ``__builtins__``; it is strictly an\n implementation detail. Users wanting to override values in the\n built-in namespace should ``import`` the ``__builtin__`` (no 's')\n module and modify its attributes appropriately.\n\nThe namespace for a module is automatically created the first time a\nmodule is imported. The main module for a script is always called\n``__main__``.\n\nThe global statement has the same scope as a name binding operation in\nthe same block. If the nearest enclosing scope for a free variable\ncontains a global statement, the free variable is treated as a global.\n\nA class definition is an executable statement that may use and define\nnames. These references follow the normal rules for name resolution.\nThe namespace of the class definition becomes the attribute dictionary\nof the class. Names defined at the class scope are not visible in\nmethods.\n\n\nInteraction with dynamic features\n=================================\n\nThere are several cases where Python statements are illegal when used\nin conjunction with nested scopes that contain free variables.\n\nIf a variable is referenced in an enclosing scope, it is illegal to\ndelete the name. An error will be reported at compile time.\n\nIf the wild card form of import --- ``import *`` --- is used in a\nfunction and the function contains or is a nested block with free\nvariables, the compiler will raise a ``SyntaxError``.\n\nIf ``exec`` is used in a function and the function contains or is a\nnested block with free variables, the compiler will raise a\n``SyntaxError`` unless the exec explicitly specifies the local\nnamespace for the ``exec``. (In other words, ``exec obj`` would be\nillegal, but ``exec obj in ns`` would be legal.)\n\nThe ``eval()``, ``execfile()``, and ``input()`` functions and the\n``exec`` statement do not have access to the full environment for\nresolving names. Names may be resolved in the local and global\nnamespaces of the caller. Free variables are not resolved in the\nnearest enclosing namespace, but in the global namespace. [1] The\n``exec`` statement and the ``eval()`` and ``execfile()`` functions\nhave optional arguments to override the global and local namespace.\nIf only one namespace is specified, it is used for both.\n",
'numbers': u"\nNumeric literals\n****************\n\nThere are four types of numeric literals: plain integers, long\nintegers, floating point numbers, and imaginary numbers. There are no\ncomplex literals (complex numbers can be formed by adding a real\nnumber and an imaginary number).\n\nNote that numeric literals do not include a sign; a phrase like ``-1``\nis actually an expression composed of the unary operator '``-``' and\nthe literal ``1``.\n",
+Index: Lib/plat-mac/bundlebuilder.py
+===================================================================
+--- Lib/plat-mac/bundlebuilder.py (.../tags/r262) (Revision 74094)
++++ Lib/plat-mac/bundlebuilder.py (.../branches/release26-maint) (Revision 74094)
+@@ -661,7 +661,7 @@
+ if USE_ZIPIMPORT:
+ if name != "zlib":
+ # neatly pack all extension modules in a subdirectory,
+- # except zlib, since it's neccesary for bootstrapping.
++ # except zlib, since it's necessary for bootstrapping.
+ dstpath = pathjoin("ExtensionModules", dstpath)
+ # Python modules are stored in a Zip archive, but put
+ # extensions in Contents/Resources/. Add a tiny "loader"
Index: Makefile.pre.in
===================================================================
---- Makefile.pre.in (.../tags/r262) (Revision 73476)
-+++ Makefile.pre.in (.../branches/release26-maint) (Revision 73476)
+--- Makefile.pre.in (.../tags/r262) (Revision 74094)
++++ Makefile.pre.in (.../branches/release26-maint) (Revision 74094)
@@ -501,7 +501,7 @@
$(SIGNAL_OBJS) \
$(MODOBJS) \
@@ -13013,8 +14969,8 @@
$(CC) -c $(PY_CFLAGS) -DPYTHONPATH='"$(PYTHONPATH)"' \
Index: Modules/_ctypes/callbacks.c
===================================================================
---- Modules/_ctypes/callbacks.c (.../tags/r262) (Revision 73476)
-+++ Modules/_ctypes/callbacks.c (.../branches/release26-maint) (Revision 73476)
+--- Modules/_ctypes/callbacks.c (.../tags/r262) (Revision 74094)
++++ Modules/_ctypes/callbacks.c (.../branches/release26-maint) (Revision 74094)
@@ -466,17 +466,6 @@
return NULL;
}
@@ -13033,10 +14989,23 @@
#ifdef MS_WIN32
static void LoadPython(void)
+Index: Modules/_ctypes/libffi_osx/x86/x86-ffi64.c
+===================================================================
+--- Modules/_ctypes/libffi_osx/x86/x86-ffi64.c (.../tags/r262) (Revision 74094)
++++ Modules/_ctypes/libffi_osx/x86/x86-ffi64.c (.../branches/release26-maint) (Revision 74094)
+@@ -55,7 +55,7 @@
+ /* Register class used for passing given 64bit part of the argument.
+ These represent classes as documented by the PS ABI, with the exception
+ of SSESF, SSEDF classes, that are basically SSE class, just gcc will
+- use SF or DFmode move instead of DImode to avoid reformating penalties.
++ use SF or DFmode move instead of DImode to avoid reformatting penalties.
+
+ Similary we play games with INTEGERSI_CLASS to use cheaper SImode moves
+ whenever possible (upper half does contain padding). */
Index: Modules/_ctypes/malloc_closure.c
===================================================================
---- Modules/_ctypes/malloc_closure.c (.../tags/r262) (Revision 73476)
-+++ Modules/_ctypes/malloc_closure.c (.../branches/release26-maint) (Revision 73476)
+--- Modules/_ctypes/malloc_closure.c (.../tags/r262) (Revision 74094)
++++ Modules/_ctypes/malloc_closure.c (.../branches/release26-maint) (Revision 74094)
@@ -32,7 +32,7 @@
} ITEM;
@@ -13048,8 +15017,8 @@
{
Index: Modules/_ctypes/_ctypes.c
===================================================================
---- Modules/_ctypes/_ctypes.c (.../tags/r262) (Revision 73476)
-+++ Modules/_ctypes/_ctypes.c (.../branches/release26-maint) (Revision 73476)
+--- Modules/_ctypes/_ctypes.c (.../tags/r262) (Revision 74094)
++++ Modules/_ctypes/_ctypes.c (.../branches/release26-maint) (Revision 74094)
@@ -477,7 +477,7 @@
if (offset < 0) {
@@ -13091,8 +15060,8 @@
/*****************************************************************
Index: Modules/_ctypes/cfield.c
===================================================================
---- Modules/_ctypes/cfield.c (.../tags/r262) (Revision 73476)
-+++ Modules/_ctypes/cfield.c (.../branches/release26-maint) (Revision 73476)
+--- Modules/_ctypes/cfield.c (.../tags/r262) (Revision 74094)
++++ Modules/_ctypes/cfield.c (.../branches/release26-maint) (Revision 74094)
@@ -372,7 +372,7 @@
return -1;
}
@@ -13113,8 +15082,44 @@
return 0;
Index: Modules/_ctypes/libffi/configure
===================================================================
---- Modules/_ctypes/libffi/configure (.../tags/r262) (Revision 73476)
-+++ Modules/_ctypes/libffi/configure (.../branches/release26-maint) (Revision 73476)
+--- Modules/_ctypes/libffi/configure (.../tags/r262) (Revision 74094)
++++ Modules/_ctypes/libffi/configure (.../branches/release26-maint) (Revision 74094)
+@@ -9546,7 +9546,7 @@
+ test -n "$runpath_var" || \
+ test "X$hardcode_automatic" = "Xyes" ; then
+
+- # We can hardcode non-existant directories.
++ # We can hardcode non-existent directories.
+ if test "$hardcode_direct" != no &&
+ # If the only mechanism to avoid hardcoding is shlibpath_var, we
+ # have to relink, otherwise we might link with an installed library
+@@ -13514,7 +13514,7 @@
+ test -n "$runpath_var_CXX" || \
+ test "X$hardcode_automatic_CXX" = "Xyes" ; then
+
+- # We can hardcode non-existant directories.
++ # We can hardcode non-existent directories.
+ if test "$hardcode_direct_CXX" != no &&
+ # If the only mechanism to avoid hardcoding is shlibpath_var, we
+ # have to relink, otherwise we might link with an installed library
+@@ -16117,7 +16117,7 @@
+ test -n "$runpath_var_F77" || \
+ test "X$hardcode_automatic_F77" = "Xyes" ; then
+
+- # We can hardcode non-existant directories.
++ # We can hardcode non-existent directories.
+ if test "$hardcode_direct_F77" != no &&
+ # If the only mechanism to avoid hardcoding is shlibpath_var, we
+ # have to relink, otherwise we might link with an installed library
+@@ -18720,7 +18720,7 @@
+ test -n "$runpath_var_GCJ" || \
+ test "X$hardcode_automatic_GCJ" = "Xyes" ; then
+
+- # We can hardcode non-existant directories.
++ # We can hardcode non-existent directories.
+ if test "$hardcode_direct_GCJ" != no &&
+ # If the only mechanism to avoid hardcoding is shlibpath_var, we
+ # have to relink, otherwise we might link with an installed library
@@ -20426,10 +20426,10 @@
;;
@@ -13137,10 +15142,23 @@
MIPS_TRUE=
MIPS_FALSE='#'
else
+Index: Modules/_ctypes/libffi/src/x86/ffi64.c
+===================================================================
+--- Modules/_ctypes/libffi/src/x86/ffi64.c (.../tags/r262) (Revision 74094)
++++ Modules/_ctypes/libffi/src/x86/ffi64.c (.../branches/release26-maint) (Revision 74094)
+@@ -52,7 +52,7 @@
+ /* Register class used for passing given 64bit part of the argument.
+ These represent classes as documented by the PS ABI, with the exception
+ of SSESF, SSEDF classes, that are basically SSE class, just gcc will
+- use SF or DFmode move instead of DImode to avoid reformating penalties.
++ use SF or DFmode move instead of DImode to avoid reformatting penalties.
+
+ Similary we play games with INTEGERSI_CLASS to use cheaper SImode moves
+ whenever possible (upper half does contain padding). */
Index: Modules/_ctypes/libffi/configure.ac
===================================================================
---- Modules/_ctypes/libffi/configure.ac (.../tags/r262) (Revision 73476)
-+++ Modules/_ctypes/libffi/configure.ac (.../branches/release26-maint) (Revision 73476)
+--- Modules/_ctypes/libffi/configure.ac (.../tags/r262) (Revision 74094)
++++ Modules/_ctypes/libffi/configure.ac (.../branches/release26-maint) (Revision 74094)
@@ -106,10 +106,10 @@
;;
@@ -13163,10 +15181,23 @@
AM_CONDITIONAL(SPARC, test x$TARGET = xSPARC)
AM_CONDITIONAL(X86, test x$TARGET = xX86)
AM_CONDITIONAL(X86_FREEBSD, test x$TARGET = xX86_FREEBSD)
+Index: Modules/_ctypes/libffi/aclocal.m4
+===================================================================
+--- Modules/_ctypes/libffi/aclocal.m4 (.../tags/r262) (Revision 74094)
++++ Modules/_ctypes/libffi/aclocal.m4 (.../branches/release26-maint) (Revision 74094)
+@@ -1155,7 +1155,7 @@
+ test -n "$_LT_AC_TAGVAR(runpath_var, $1)" || \
+ test "X$_LT_AC_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then
+
+- # We can hardcode non-existant directories.
++ # We can hardcode non-existent directories.
+ if test "$_LT_AC_TAGVAR(hardcode_direct, $1)" != no &&
+ # If the only mechanism to avoid hardcoding is shlibpath_var, we
+ # have to relink, otherwise we might link with an installed library
Index: Modules/_ctypes/ctypes.h
===================================================================
---- Modules/_ctypes/ctypes.h (.../tags/r262) (Revision 73476)
-+++ Modules/_ctypes/ctypes.h (.../branches/release26-maint) (Revision 73476)
+--- Modules/_ctypes/ctypes.h (.../tags/r262) (Revision 74094)
++++ Modules/_ctypes/ctypes.h (.../branches/release26-maint) (Revision 74094)
@@ -189,8 +189,6 @@
extern PyObject *
CreateArrayType(PyObject *itemtype, Py_ssize_t length);
@@ -13184,10 +15215,23 @@
#define PyCArg_CheckExact(v) ((v)->ob_type == &PyCArg_Type)
extern PyCArgObject *new_CArgObject(void);
+Index: Modules/nismodule.c
+===================================================================
+--- Modules/nismodule.c (.../tags/r262) (Revision 74094)
++++ Modules/nismodule.c (.../branches/release26-maint) (Revision 74094)
+@@ -89,7 +89,7 @@
+ return map;
+ }
+
+-#ifdef __APPLE__
++#if defined(__APPLE__) || defined(__OpenBSD__) || defined(__FreeBSD__)
+ typedef int (*foreachfunc)(unsigned long, char *, int, char *, int, void *);
+ #else
+ typedef int (*foreachfunc)(int, char *, int, char *, int, char *);
Index: Modules/mmapmodule.c
===================================================================
---- Modules/mmapmodule.c (.../tags/r262) (Revision 73476)
-+++ Modules/mmapmodule.c (.../branches/release26-maint) (Revision 73476)
+--- Modules/mmapmodule.c (.../tags/r262) (Revision 74094)
++++ Modules/mmapmodule.c (.../branches/release26-maint) (Revision 74094)
@@ -158,7 +158,8 @@
#endif /* MS_WINDOWS */
@@ -13198,10 +15242,91 @@
self->fd = -1;
if (self->data != NULL) {
munmap(self->data, self->size);
+@@ -231,7 +232,7 @@
+ mmap_read_method(mmap_object *self,
+ PyObject *args)
+ {
+- Py_ssize_t num_bytes;
++ Py_ssize_t num_bytes, n;
+ PyObject *result;
+
+ CHECK_VALID(NULL);
+@@ -239,8 +240,18 @@
+ return(NULL);
+
+ /* silently 'adjust' out-of-range requests */
+- if (num_bytes > self->size - self->pos) {
+- num_bytes -= (self->pos+num_bytes) - self->size;
++ assert(self->size >= self->pos);
++ n = self->size - self->pos;
++ /* The difference can overflow, only if self->size is greater than
++ * PY_SSIZE_T_MAX. But then the operation cannot possibly succeed,
++ * because the mapped area and the returned string each need more
++ * than half of the addressable memory. So we clip the size, and let
++ * the code below raise MemoryError.
++ */
++ if (n < 0)
++ n = PY_SSIZE_T_MAX;
++ if (num_bytes < 0 || num_bytes > n) {
++ num_bytes = n;
+ }
+ result = Py_BuildValue("s#", self->data+self->pos, num_bytes);
+ self->pos += num_bytes;
+Index: Modules/arraymodule.c
+===================================================================
+--- Modules/arraymodule.c (.../tags/r262) (Revision 74094)
++++ Modules/arraymodule.c (.../branches/release26-maint) (Revision 74094)
+@@ -935,7 +935,7 @@
+ PyDoc_STRVAR(count_doc,
+ "count(x)\n\
+ \n\
+-Return number of occurences of x in the array.");
++Return number of occurrences of x in the array.");
+
+ static PyObject *
+ array_index(arrayobject *self, PyObject *v)
+@@ -959,7 +959,7 @@
+ PyDoc_STRVAR(index_doc,
+ "index(x)\n\
+ \n\
+-Return index of first occurence of x in the array.");
++Return index of first occurrence of x in the array.");
+
+ static int
+ array_contains(arrayobject *self, PyObject *v)
+@@ -1001,7 +1001,7 @@
+ PyDoc_STRVAR(remove_doc,
+ "remove(x)\n\
+ \n\
+-Remove the first occurence of x in the array.");
++Remove the first occurrence of x in the array.");
+
+ static PyObject *
+ array_pop(arrayobject *self, PyObject *args)
+@@ -2055,16 +2055,16 @@
+ append() -- append a new item to the end of the array\n\
+ buffer_info() -- return information giving the current memory info\n\
+ byteswap() -- byteswap all the items of the array\n\
+-count() -- return number of occurences of an object\n\
++count() -- return number of occurrences of an object\n\
+ extend() -- extend array by appending multiple elements from an iterable\n\
+ fromfile() -- read items from a file object\n\
+ fromlist() -- append items from the list\n\
+ fromstring() -- append items from the string\n\
+-index() -- return index of first occurence of an object\n\
++index() -- return index of first occurrence of an object\n\
+ insert() -- insert a new item into the array at a provided position\n\
+ pop() -- remove and return item (default last)\n\
+ read() -- DEPRECATED, use fromfile()\n\
+-remove() -- remove first occurence of an object\n\
++remove() -- remove first occurrence of an object\n\
+ reverse() -- reverse the order of the items in the array\n\
+ tofile() -- write all items to a file object\n\
+ tolist() -- return the array converted to an ordinary list\n\
Index: Modules/_randommodule.c
===================================================================
---- Modules/_randommodule.c (.../tags/r262) (Revision 73476)
-+++ Modules/_randommodule.c (.../branches/release26-maint) (Revision 73476)
+--- Modules/_randommodule.c (.../tags/r262) (Revision 74094)
++++ Modules/_randommodule.c (.../branches/release26-maint) (Revision 74094)
@@ -355,7 +355,7 @@
for (i=0; i USHRT_MAX){
+ PyErr_SetString(StructError,
+- "short format requires 0 <= number <= " STRINGIFY(USHRT_MAX));
++ "ushort format requires 0 <= number <= " STRINGIFY(USHRT_MAX));
+ return -1;
+ }
+ y = (unsigned short)x;
Index: Modules/posixmodule.c
===================================================================
---- Modules/posixmodule.c (.../tags/r262) (Revision 73476)
-+++ Modules/posixmodule.c (.../branches/release26-maint) (Revision 73476)
+--- Modules/posixmodule.c (.../tags/r262) (Revision 74094)
++++ Modules/posixmodule.c (.../branches/release26-maint) (Revision 74094)
@@ -310,6 +310,23 @@
#define WAIT_STATUS_INT(s) (s)
#endif /* UNION_WAIT */
@@ -13354,6 +15505,15 @@
/* Don't use the "_r" form if we don't need it (also, won't have a
prototype for it, at least on Solaris -- maybe others as well?). */
#if defined(HAVE_CTERMID_R) && defined(WITH_THREAD)
+@@ -2383,7 +2400,7 @@
+ static PyObject *
+ posix__getfullpathname(PyObject *self, PyObject *args)
+ {
+- /* assume encoded strings wont more than double no of chars */
++ /* assume encoded strings won't more than double no of chars */
+ char inbuf[MAX_PATH*2];
+ char *inbufp = inbuf;
+ Py_ssize_t insize = sizeof(inbuf);
@@ -3618,7 +3635,7 @@
return posix_error();
if (pid == 0)
@@ -13471,6 +15631,15 @@
file_count = (int) PyInt_AsLong(intObj);
if (file_count > 1)
+@@ -5012,7 +5034,7 @@
+ "Your program accessed mem currently in use at xxx"
+ and a hopeful warning about the stability of your
+ system.
+- Cost is Ctrl+C wont kill children, but anyone
++ Cost is Ctrl+C won't kill children, but anyone
+ who cares can have a go!
+ */
+ dwProcessFlags |= CREATE_NEW_CONSOLE;
@@ -5776,7 +5798,7 @@
return NULL;
}
@@ -13575,8 +15744,8 @@
return posix_error();
Index: Modules/cPickle.c
===================================================================
---- Modules/cPickle.c (.../tags/r262) (Revision 73476)
-+++ Modules/cPickle.c (.../branches/release26-maint) (Revision 73476)
+--- Modules/cPickle.c (.../tags/r262) (Revision 74094)
++++ Modules/cPickle.c (.../branches/release26-maint) (Revision 74094)
@@ -4016,25 +4016,24 @@
static int
load_pop(Unpicklerobject *self)
@@ -13614,8 +15783,8 @@
Index: Modules/getbuildinfo.c
===================================================================
---- Modules/getbuildinfo.c (.../tags/r262) (Revision 73476)
-+++ Modules/getbuildinfo.c (.../branches/release26-maint) (Revision 73476)
+--- Modules/getbuildinfo.c (.../tags/r262) (Revision 74094)
++++ Modules/getbuildinfo.c (.../branches/release26-maint) (Revision 74094)
@@ -48,5 +48,5 @@
static const char svnversion[] = SVNVERSION;
if (svnversion[0] != '$')
@@ -13625,8 +15794,8 @@
}
Index: pyconfig.h.in
===================================================================
---- pyconfig.h.in (.../tags/r262) (Revision 73476)
-+++ pyconfig.h.in (.../branches/release26-maint) (Revision 73476)
+--- pyconfig.h.in (.../tags/r262) (Revision 74094)
++++ pyconfig.h.in (.../branches/release26-maint) (Revision 74094)
@@ -115,6 +115,18 @@
/* Define if you have the 'resize_term' function. */
#undef HAVE_CURSES_RESIZE_TERM
@@ -13685,6 +15854,6 @@
- /python/trunk:66721-66722,66744-66745,66752,66756,66763-66765,66768,66791-66792,66822-66823,66832,66836,66852,66857,66868,66878,66894,66902,66912,66989,66994,67013,67015,67049,67065,67171,67226,67234,67287,67342,67348-67349,67353,67396,67407,67411,67442,67511,67521,67536-67537,67543,67572,67584,67587,67601,67614,67628,67818,67822,67850,67857,67902,67946,67954,67976,67978-67980,67985,68089,68092,68119,68150,68153,68156,68158,68163,68167,68176,68203,68208-68209,68231,68238,68240,68243,68319,68381,68395,68415,68425,68432,68455,68458-68462,68484-68485,68496,68498,68532,68542,68544-68546,68559-68560,68562,68565-68569,68571,68592,68597,68603-68604,68648,68665,68764,68766,68773,68785,68789,68792-68793,68803,68805,68831,68840,68843,68845,68850,68853,68881,68884,68892,68925,68927,68929,68933,68941,68943,68953,68985,68998,69001,69010,69012,69018,69039,69050,69053,69060-69063,69169,69195,69211-69212,69252-69253,69285,69324,69330-69332,69342,69356,69360,69366,69377,69385,69404,69419-69420,69425,69460,69467,69470,69474,69566,69578-69580,69594,69609-69610,69666,69692-69693,69700,69710,69724,69861,69874,69878,69881,69901-69902,69907,69976,69994,70003,70007,70017,70022-70023,70025-70026,70049,70094,70166,70212,70223,70273,70275,70308,70342,70364,70378,70386-70387,70389-70390,70392-70393,70395,70397,70400,70405,70418,70439,70444,70454,70479,70489,70542,70641,70651,70869,70883,70886,70888-70892,70901,70903,70910,70920,70922,70951,70992-70994,71006,71019,71024,71059,71082,71210,71253,71255,71266,71291,71295,71414,71465,71473,71478,71509,71513,71523,71528,71533,71560,71569,71585
- + /python/trunk:66721-66722,66744-66745,66752,66756,66763-66765,66768,66791-66792,66822-66823,66832,66836,66852,66857,66868,66878,66894,66902,66912,66989,66994,67013,67015,67049,67065,67171,67226,67234,67287,67342,67348-67349,67353,67396,67407,67411,67442,67511,67521,67536-67537,67543,67572,67584,67587,67601,67614,67628,67818,67822,67850,67857,67902,67946,67954,67976,67978-67980,67985,68089,68092,68119,68150,68153,68156,68158,68163,68167,68176,68203,68208-68209,68231,68238,68240,68243,68319,68381,68395,68415,68425,68432,68455,68458-68462,68484-68485,68496,68498,68532,68542,68544-68546,68559-68560,68562,68565-68569,68571,68592,68597,68603-68604,68648,68665,68764,68766,68773,68785,68789,68792-68793,68803,68805,68831,68840,68843,68845,68850,68853,68881,68884,68892,68925,68927,68929,68933,68941,68943,68953,68985,68998,69001,69010,69012,69018,69039,69050,69053,69060-69063,69130,69169,69195,69211-69212,69252-69253,69285,69324,69330-69332,69342,69356,69360,69366,69377,69385,69404,69419-69420,69425,69460,69467,69470,69474,69566,69578-69580,69594,69609-69610,69666,69692-69693,69700,69710,69724,69861,69874,69878,69881,69901-69902,69907,69976,69994,70003,70007,70017,70022-70023,70025-70026,70049,70094,70166,70212,70223,70273,70275,70308,70342,70364,70378,70386-70387,70389-70390,70392-70393,70395,70397,70400,70405,70418,70439,70444,70454,70479,70489,70542,70641,70647,70651-70652,70770,70777,70788,70869,70883,70886,70888-70892,70901,70903,70910,70920,70922,70951,70992-70994,71006,71019,71024,71059,71082,71101,71210,71237,71253,71255,71266,71291,71295,71405,71414,71465,71473,71478,71485,71492,71498,71503,71507,71509,71513,71523,71528,71533,71560,71569,71585,71589,71674,71696,71710,71715,71750,71766,71772,71776,71788,71796,71799,71808,71824,71827,71832,71837-71838,71869,71878,71904,71938,71955,71960-71961,71963,71969,72040,72056,72094,72115,72119,72126-72127,72137,72167,72183-72184,72189,72202,72250,72253,72257,72322,72324,72326,72328,72335,72348,72377,72382,72388,72392,72404,72406,72443,72445,72451,72454,72497,72500,72535,72539,72543,72547,72560,72605,72618,72624,72630,72681,72686,72698-72699,72721,72727,72730,72736,72746,72764,72768,72799,72805,72817,72823,72833,72924,72972-72973,72981,72986,73008,73121,73147,73166,73170,73174,73197,73240,73243,73314,73336,73345,73354,73435-73436,73445,73465
+ + /python/trunk:66721-66722,66744-66745,66752,66756,66763-66765,66768,66791-66792,66822-66823,66832,66836,66852,66857,66868,66878,66894,66902,66912,66989,66994,67013,67015,67049,67065,67171,67226,67234,67287,67342,67348-67349,67353,67396,67407,67411,67442,67511,67521,67536-67537,67543,67572,67584,67587,67601,67614,67628,67818,67822,67850,67857,67902,67946,67954,67976,67978-67980,67985,68089,68092,68119,68150,68153,68156,68158,68163,68167,68176,68203,68208-68209,68231,68238,68240,68243,68319,68381,68395,68415,68425,68432,68455,68458-68462,68484-68485,68496,68498,68532,68542,68544-68546,68559-68560,68562,68565-68569,68571,68592,68597,68603-68604,68648,68665,68764,68766,68773,68785,68789,68792-68793,68803,68805,68831,68840,68843,68845,68850,68853,68881,68884,68892,68925,68927,68929,68933,68941,68943,68953,68985,68998,69001,69010,69012,69018,69039,69050,69053,69060-69063,69130,69169,69195,69211-69212,69252-69253,69285,69324,69330-69332,69342,69356,69360,69366,69377,69385,69404,69419-69420,69425,69460,69467,69470,69474,69566,69578-69580,69594,69609-69610,69666,69692-69693,69700,69710,69724,69861,69874,69878,69881,69901-69902,69907,69976,69994,70003,70007,70017,70022-70023,70025-70026,70049,70094,70166,70212,70223,70273,70275,70308,70342,70364,70378,70386-70387,70389-70390,70392-70393,70395,70397,70400,70405,70418,70439,70444,70454,70479,70489,70542,70641,70647,70651-70652,70770,70777,70788,70869,70883,70886,70888-70892,70901,70903,70910,70920,70922,70951,70992-70994,71006,71019,71024,71059,71082,71101,71210,71237,71253,71255,71266,71291,71295,71405,71414,71465,71473,71478,71485,71492,71498,71503,71507,71509,71513,71523,71528,71533,71560,71569,71585,71589,71674,71696,71710,71715,71750,71766,71772,71776,71788,71796,71799,71808,71824,71827,71832,71837-71838,71869,71878,71904,71938,71955,71960-71961,71963,71969,72040,72056,72094,72115,72119,72126-72127,72137,72167,72183-72184,72189,72202,72250,72253,72257,72322,72324,72326,72328,72335,72348,72377,72382,72388,72392,72404,72406,72443,72445,72451,72454,72497,72500,72535,72539,72543,72547,72560,72605,72618,72624,72630,72681,72686,72698-72699,72721,72727,72730,72736,72746,72764,72768,72799,72805,72817,72823,72833,72924,72972-72973,72981,72986,73008,73121,73147,73166,73170,73174,73197,73240,73243,73314,73336,73345,73354,73435-73436,73445,73465,73490,73518-73519,73688,73756-73757,73762,73801,73814-73815,73827,73834,73858,73864,73884,73888,73891,73895,73901,73925-73926,74024,74080
Geändert: svnmerge-integrated
- /python/trunk:1-66720,66723-66743,66746-66751,66753-66755,66757-66762,66766-66767,66769-66790,66793-66821,66824-66831,66833-66835,66837-66851,66853-66856,66858-66867,66869-66877,66879-66893,66895-66901,66903-66911,66913-66988,66990-66993,66995-67012,67014,67016-67048,67050-67064,67066-67170,67172-67225,67227-67233,67235-67286,67288-67341,67343-67347,67350-67352,67354-67395,67397-67406,67408-67410,67412-67441,67443-67510,67512-67520,67522-67535,67538-67542,67544-67571,67573-67583,67585-67586,67588-67600,67602-67613,67615-67627,67629-67817,67819-67821,67823-67849,67851-67856,67858-67901,67903-67945,67947-67953,67955-67975,67977,67981-67984,67986-68088,68090-68091,68093-68118,68120-68131,68133-68149,68151-68152,68154-68155,68157,68159-68162,68164-68166,68168-68175,68177-68202,68204-68207,68210-68222,68232,68276,68288-68295,68297-68298,68300-68301,68303,68305-68310,68312-68313,68315-68318,68320-68380,68382-68394,68396-68414,68416-68424,68426-68431,68433-68454,68456-68457,68463-68475,68477-68483,68486,68488-68495,68497,68499-68515,68521-68531,68533-68541,68543,68547-68558,68561,68563-68564,68570,68572-68591,68593-68595,68598-68602,68606,68608-68617,68619-68622,68625-68627,68629-68632,68634-68647,68649-68664,68666,68668-68675,68677-68704,68707-68721,68723-68738,68740-68749,68751-68759,68761-68762,68765,68767-68771,68774-68775,68778-68784,68786-68788,68790-68791,68794-68796,68798-68800,68802,68804,68806,68808-68810,68812-68825,68827-68828,68830,68832-68838,68841,68844,68846-68849,68851-68852,68854-68861,68863-68873,68875-68880,68882-68883,68885-68891,68893-68924,68926,68928,68930-68932,68934-68940,68944,68946-68952,68954-68963,68965-68984,68986-68997,68999-69000,69002,69004-69009,69011,69013,69015-69017,69019-69022,69024-69038,69040-69049,69051-69052,69054-69059,69064-69069,69071-69073,69075-69079,69081-69084,69086,69088-69111,69114-69128,69132-69133,69135-69138,69142,69144-69145,69147-69148,69150-69153,69160,69162-69168,69170-69194,69196-69210,69213-69226,69228-69236,69238-69239,69241,69243-69251,69254-69256,69258-69259,69261,69263-69267,69269-69270,69274-69275,69277-69284,69286-69301,69306-69314,69316-69321,69323,69325-69329,69333-69341,69343-69355,69357-69359,69361-69363,69367-69372,69375-69376,69378-69384,69386-69388,69390-69393,69395-69403,69405-69409,69411-69412,69414,69416,69418,69421-69424,69426-69434,69436-69441,69444-69446,69448-69458,69461-69465,69468-69469,69471-69472,69475-69479,69482-69494,69496-69497,69499-69508,69510-69515,69517-69518,69523-69524,69526-69527,69529,69531-69560,69562-69565,69567-69577,69581,69584-69590,69592-69593,69595-69601,69603,69605-69608,69611-69616,69618,69620-69632,69635-69638,69640-69665,69667-69671,69673-69684,69686-69687,69691,69694-69699,69701-69702,69705-69708,69711-69714,69718-69723,69725-69730,69732-69738,69740-69742,69744-69747,69749-69750,69752-69756,69758-69760,69762-69764,69766-69769,69771,69773-69776,69778-69794,69796-69810,69812-69836,69839-69845,69847-69854,69856-69860,69862-69869,69872-69873,69875-69877,69879-69880,69882-69888,69890-69896,69905,70052,70056,70062,70078,70086,70088,70107,70137,70167,70169,70172,70176,70189,70193,70197,70218-70219,70356,70368,70430,70448,70457,70463,70499,70518,70521,70523,70594-70595,70642-70646,70648-70649,70653-70667,70670,70673,70675-70690,70692-70696,70699,70705,70707-70710,70713,70715,70717-70722,70724-70733,70736-70746,70748-70756,70758-70763,70765-70767,70773-70774,70780-70787,70789-70806,70808-70820,70822-70836,70838-70843,70845-70855,70857-70858,70866-70868,70870-70871,70875,70879-70882,70884,70887,70893,70895-70900,70902,70905-70909,70911-70917,70919,70921,70923-70929,70932-70933,70935,70937-70938,70940-70950,70952-70955,70957,70959-70961,70963,70966-70967,70970-70974,70976-70978,70982-70985,70987-70991,70996,70998-71000,71002-71003,71005,71007,71012-71013,71015-71018,71020-71021,71025-71028,71030,71034-71035,71037-71040,71042,71044-71056,71058,71060-71069,71071-71072,71074,71076-71077,71079-71081,71083-71093,71095-71100,71104-71105,71107-71118,71120-71125,71128-71174,71176-71205,71207,71209,71211-71220,71222-71228,71230-71236,71238-71251,71268,71280,71299,71329,71335,71409,71413,71424-71429,71443,71467,71537,71548,71554-71555,71564
- + /python/trunk:1-66720,66723-66743,66746-66751,66753-66755,66757-66762,66766-66767,66769-66790,66793-66821,66824-66831,66833-66835,66837-66851,66853-66856,66858-66867,66869-66877,66879-66893,66895-66901,66903-66911,66913-66988,66990-66993,66995-67012,67014,67016-67048,67050-67064,67066-67170,67172-67225,67227-67233,67235-67286,67288-67341,67343-67347,67350-67352,67354-67395,67397-67406,67408-67410,67412-67441,67443-67510,67512-67520,67522-67535,67538-67542,67544-67571,67573-67583,67585-67586,67588-67600,67602-67613,67615-67627,67629-67817,67819-67821,67823-67849,67851-67856,67858-67901,67903-67945,67947-67953,67955-67975,67977,67981-67984,67986-68088,68090-68091,68093-68118,68120-68149,68151-68152,68154-68155,68157,68159-68162,68164-68166,68168-68175,68177-68202,68204-68207,68210-68230,68232-68237,68239,68241-68242,68244-68295,68297-68298,68300-68301,68303,68305-68310,68312-68313,68315-68318,68320-68380,68382-68394,68396-68414,68416-68424,68426-68431,68433-68454,68456-68457,68463-68475,68477-68483,68486,68488-68495,68497,68499-68531,68533-68541,68543,68547-68558,68561,68563-68564,68570,68572-68591,68593-68595,68598-68602,68606,68608-68617,68619-68622,68625-68627,68629-68632,68634-68647,68649-68664,68666,68668-68675,68677-68704,68707-68721,68723-68738,68740-68749,68751-68759,68761-68762,68765,68767-68771,68774-68775,68778-68784,68786-68788,68790-68791,68794-68796,68798-68802,68804,68806,68808-68810,68812-68825,68827-68828,68830,68832-68838,68841,68844,68846-68849,68851-68852,68854-68861,68863-68873,68875-68880,68882-68883,68885-68891,68893-68924,68926,68928,68930-68932,68934-68940,68944,68946-68952,68954-68963,68965-68984,68986-68997,68999-69000,69002,69004-69009,69011,69013,69015-69017,69019-69022,69024-69038,69040-69049,69051-69052,69054-69059,69064-69069,69071-69073,69075-69079,69081-69084,69086,69088-69111,69114-69128,69132-69133,69135-69138,69142,69144-69145,69147-69148,69150-69153,69160,69162-69168,69170-69194,69196-69210,69213-69226,69228-69236,69238-69239,69241,69243-69251,69254-69256,69258-69259,69261,69263-69267,69269-69270,69274-69275,69277-69284,69286-69301,69306-69314,69316-69321,69323,69325-69329,69333-69341,69343-69355,69357-69359,69361-69363,69367-69372,69375-69376,69378-69384,69386-69388,69390-69393,69395-69403,69405-69409,69411-69412,69414,69416,69418,69421-69424,69426-69434,69436-69441,69444-69446,69448-69458,69461-69465,69468-69469,69471-69472,69475-69479,69482-69494,69496-69497,69499-69508,69510-69515,69517-69518,69523-69524,69526-69527,69529,69531-69560,69562-69565,69567-69577,69581,69584-69590,69592-69593,69595-69601,69603,69605-69608,69611-69616,69618,69620-69632,69635-69638,69640-69665,69667-69671,69673-69684,69686-69687,69691,69694-69699,69701-69702,69705-69708,69711-69714,69718-69723,69725-69730,69732-69738,69740-69742,69744-69747,69749-69750,69752-69756,69758-69760,69762-69764,69766-69769,69771,69773-69776,69778-69794,69796-69810,69812-69836,69839-69845,69847-69854,69856-69860,69862-69869,69872-69873,69875-69877,69879-69880,69882-69888,69890-69900,69903-69906,69909-69923,69925-69926,69928-69936,69938-69945,69948-69951,69954,69956-69958,69960-69973,69975,69977-69980,69982,69984-69986,69988-69993,69995-69997,70001,70004-70006,70008-70010,70012-70015,70018-70021,70024,70027-70048,70050-70060,70062-70070,70072-70080,70082-70089,70091-70093,70095-70118,70124-70125,70127-70130,70133-70135,70137-70144,70146-70148,70150-70152,70154-70165,70167-70170,70172-70177,70179-70182,70184-70187,70189-70211,70213-70222,70224-70234,70236-70243,70245-70260,70262-70266,70268-70270,70272,70274,70276-70280,70282-70285,70287-70289,70291,70294,70297,70299,70301-70304,70306-70307,70309-70314,70316-70318,70320-70341,70343-70363,70365-70377,70379-70384,70388,70391,70394,70396,70398-70399,70401-70404,70407-70417,70419-70437,70440-70442,70445-70453,70455-70463,70465,70467,70469,70474,70476,70478,70480-70484,70486-70488,70490-70530,70532,70534-70537,70539-70541,70543,70545,70547-70549,70551,70556-70557,70559-70560,70565-70567,70572-70573,70575-70577,70579-70587,70591-70597,70600,70602-70604,70606-70610,70622,70625,70628-70640,70642-70646,70648-70649,70653-70667,70670,70673,70675-70690,70692-70696,70699,70705,70707-70710,70713,70715,70717-70733,70736-70746,70748-70756,70758-70763,70765-70767,70773-70774,70780-70787,70789-70806,70808-70820,70822-70836,70838-70843,70845-70855,70857-70863,70865-70868,70870-70871,70873,70875,70879-70882,70884,70887,70893,70895-70900,70902,70904-70909,70911-70917,70919,70921,70923-70929,70932-70935,70937-70938,70940-70950,70952-70955,70957,70959-70961,70963,70966-70967,70970-70974,70976-70978,70982-70985,70987-70991,70996,70998-71000,71002-71003,71005,71007,71012-71013,71015-71018,71020-71021,71025-71028,71030,71034-71035,71037-71040,71042,71044-71058,71060-71069,71071-71072,71074,71076-71077,71079-71081,71083-71093,71095-71100,71104-71105,71107-71118,71120-71125,71128-71174,71176-71205,71207,71209,71211-71220,71222-71228,71230-71236,71238-71252,71254,71256-71262,71264-71265,71267-71270,71272-71285,71287-71290,71292-71294,71296-71299,71301,71304-71360,71362-71364,71366,71368-71369,71371-71376,71378-71384,71386-71388,71390-71391,71393-71394,71397-71404,71407,71409-71413,71415-71418,71420-71429,71431-71434,71436-71447,71449-71461,71463-71464,71466-71472,71474-71477,71479-71484,71487-71491,71493,71495-71497,71499-71502,71504-71506,71508,71510-71512,71514-71522,71524-71527,71529-71532,71534-71538,71540-71559,71561-71568,71570-71584,71586-71588,71590-71656,71658-71661,71663-71673,71675-71695,71697-71709,71711-71714,71716-71718,71720,71722-71728,71730-71739,71741-71749,71751-71765,71767-71770,71773-71775,71777-71779,71781-71784,71786-71787,71789-71793,71795,71797-71798,71800-71801,71803-71807,71809-71823,71825-71826,71828-71831,71833-71836,71839-71841,71843-71852,71854-71868,71870-71877,71879-71903,71905,71907-71937,71939-71954,71956-71959,71964-71968,71970-71975,71977-71994,71996-72003,72005-72039,72041-72051,72055,72057-72093,72095-72106,72108-72110,72112-72113,72116,72118,72120-72125,72128-72130,72132,72136,72138-72154,72156-72166,72168-72172,72174-72177,72179-72182,72185-72188,72190,72192-72196,72201,72203-72209,72211-72212,72214-72218,72220,72222,72224,72228-72236,72238-72240,72242-72245,72247-72249,72251-72252,72254-72256,72258-72266,72268,72270-72272,72274-72282,72285-72302,72304-72305,72307-72313,72315-72321,72323,72325,72327,72329-72334,72336-72342,72344-72347,72349-72356,72358-72360,72362-72366,72369-72376,72378-72381,72383-72387,72389-72391,72393-72403,72405,72407-72417,72420-72442,72444,72446-72450,72452-72453,72455-72460,72462-72463,72465-72467,72470-72473,72475,72477-72486,72490-72493,72496,72498-72499,72501-72505,72507,72511,72513-72515,72519-72524,72527-72534,72536-72538,72540-72542,72544-72546,72548-72550,72552-72557,72559,72561-72569,72572-72581,72584-72604,72606-72615,72617,72619-72623,72625-72629,72631-72644,72646-72653,72656-72657,72659-72668,72670,72672-72680,72682-72685,72687-72688,72691,72695,72697,72700-72720,72722-72726,72728-72729,72731-72735,72737-72744,72747-72749,72751-72763,72765-72767,72769-72773,72775,72778-72785,72788,72790,72792-72795,72797-72798,72800-72804,72806-72811,72814-72816,72818-72822,72824-72830,72835,72838-72839,72848,72852,72855,72859,72871-72872,72878,72882,72887,72893,72930,72932,72966,72971,72992,73016,73022,73064-73065,73077,73101,73114,73129,73138,73224,73305,73341,73348,73390,73425,73441,73451
+ + /python/trunk:1-66720,66723-66743,66746-66751,66753-66755,66757-66762,66766-66767,66769-66790,66793-66821,66824-66831,66833-66835,66837-66851,66853-66856,66858-66867,66869-66877,66879-66893,66895-66901,66903-66911,66913-66988,66990-66993,66995-67012,67014,67016-67048,67050-67064,67066-67170,67172-67225,67227-67233,67235-67286,67288-67341,67343-67347,67350-67352,67354-67395,67397-67406,67408-67410,67412-67441,67443-67510,67512-67520,67522-67535,67538-67542,67544-67571,67573-67583,67585-67586,67588-67600,67602-67613,67615-67627,67629-67817,67819-67821,67823-67849,67851-67856,67858-67901,67903-67945,67947-67953,67955-67975,67977,67981-67984,67986-68088,68090-68091,68093-68118,68120-68149,68151-68152,68154-68155,68157,68159-68162,68164-68166,68168-68175,68177-68202,68204-68207,68210-68230,68232-68237,68239,68241-68242,68244-68295,68297-68298,68300-68301,68303,68305-68310,68312-68313,68315-68318,68320-68380,68382-68394,68396-68414,68416-68424,68426-68431,68433-68454,68456-68457,68463-68475,68477-68483,68486,68488-68495,68497,68499-68531,68533-68541,68543,68547-68558,68561,68563-68564,68570,68572-68591,68593-68595,68598-68602,68606,68608-68617,68619-68622,68625-68627,68629-68632,68634-68647,68649-68664,68666,68668-68675,68677-68704,68707-68721,68723-68738,68740-68749,68751-68759,68761-68762,68765,68767-68771,68774-68775,68778-68784,68786-68788,68790-68791,68794-68796,68798-68802,68804,68806,68808-68810,68812-68825,68827-68828,68830,68832-68838,68841,68844,68846-68849,68851-68852,68854-68861,68863-68873,68875-68880,68882-68883,68885-68891,68893-68924,68926,68928,68930-68932,68934-68940,68944,68946-68952,68954-68963,68965-68984,68986-68997,68999-69000,69002,69004-69009,69011,69013,69015-69017,69019-69022,69024-69038,69040-69049,69051-69052,69054-69059,69064-69069,69071-69073,69075-69079,69081-69084,69086,69088-69111,69114-69128,69132-69133,69135-69138,69142,69144-69145,69147-69148,69150-69153,69160,69162-69168,69170-69194,69196-69210,69213-69226,69228-69236,69238-69239,69241,69243-69251,69254-69256,69258-69259,69261,69263-69267,69269-69270,69274-69275,69277-69284,69286-69301,69306-69314,69316-69321,69323,69325-69329,69333-69341,69343-69355,69357-69359,69361-69363,69367-69372,69375-69376,69378-69384,69386-69388,69390-69393,69395-69403,69405-69409,69411-69412,69414,69416,69418,69421-69424,69426-69434,69436-69441,69444-69446,69448-69458,69461-69465,69468-69469,69471-69472,69475-69479,69482-69494,69496-69497,69499-69508,69510-69515,69517-69518,69523-69524,69526-69527,69529,69531-69560,69562-69565,69567-69577,69581,69584-69590,69592-69593,69595-69601,69603,69605-69608,69611-69616,69618,69620-69632,69635-69638,69640-69665,69667-69671,69673-69684,69686-69687,69691,69694-69699,69701-69702,69705-69708,69711-69714,69718-69723,69725-69730,69732-69738,69740-69742,69744-69747,69749-69750,69752-69756,69758-69760,69762-69764,69766-69769,69771,69773-69776,69778-69794,69796-69810,69812-69836,69839-69854,69856-69860,69862-69869,69872-69873,69875-69877,69879-69880,69882-69888,69890-69900,69903-69906,69909-69923,69925-69936,69938-69945,69948-69951,69954,69956-69958,69960-69973,69975,69977-69980,69982,69984-69986,69988-69993,69995-69997,70001,70004-70006,70008-70010,70012-70015,70018-70021,70024,70027-70048,70050-70060,70062-70070,70072-70080,70082-70089,70091-70093,70095-70118,70124-70125,70127-70130,70133-70135,70137-70144,70146-70148,70150-70152,70154-70165,70167-70170,70172-70177,70179-70182,70184-70187,70189-70211,70213-70222,70224-70234,70236-70243,70245-70260,70262-70266,70268-70270,70272,70274,70276-70280,70282-70285,70287-70289,70291,70294,70297,70299,70301-70304,70306-70307,70309-70314,70316-70318,70320-70341,70343-70363,70365-70377,70379-70384,70388,70391,70394,70396,70398-70399,70401-70404,70407-70417,70419-70437,70440-70442,70445-70453,70455-70463,70465,70467,70469,70474,70476,70478,70480-70484,70486-70488,70490-70530,70532,70534-70537,70539-70541,70543,70545,70547-70549,70551,70556-70557,70559-70560,70565-70567,70572-70573,70575-70577,70579-70587,70591-70597,70600,70602-70604,70606-70610,70622,70625,70628-70640,70642-70646,70648-70649,70653-70667,70670,70673,70675-70690,70692-70696,70699,70705,70707-70710,70713,70715,70717-70733,70736-70746,70748-70756,70758-70763,70765-70767,70773-70774,70780-70787,70789-70806,70808-70820,70822-70836,70838-70843,70845-70855,70857-70863,70865-70868,70870-70871,70873,70875,70879-70882,70884,70887,70893,70895-70900,70902,70904-70909,70911-70917,70919,70921,70923-70929,70932-70935,70937-70938,70940-70950,70952-70955,70957,70959-70961,70963,70966-70967,70970-70974,70976-70978,70982-70985,70987-70991,70996,70998-71000,71002-71003,71005,71007,71012-71013,71015-71018,71020-71021,71025-71028,71030,71034-71035,71037-71040,71042,71044-71058,71060-71069,71071-71072,71074,71076-71077,71079-71081,71083-71093,71095-71100,71104-71105,71107-71118,71120-71125,71128-71174,71176-71205,71207,71209,71211-71220,71222-71228,71230-71236,71238-71252,71254,71256-71262,71264-71265,71267-71270,71272-71285,71287-71290,71292-71294,71296-71299,71301,71304-71360,71362-71364,71366,71368-71369,71371-71376,71378-71384,71386-71388,71390-71391,71393-71394,71397-71404,71407,71409-71413,71415-71418,71420-71429,71431-71434,71436-71447,71449-71461,71463-71464,71466-71472,71474-71477,71479-71484,71487-71491,71493,71495-71497,71499-71502,71504-71506,71508,71510-71512,71514-71522,71524-71527,71529-71532,71534-71538,71540-71559,71561-71568,71570-71584,71586-71588,71590-71656,71658-71661,71663-71673,71675-71695,71697-71709,71711-71714,71716-71718,71720,71722-71728,71730-71739,71741-71749,71751-71765,71767-71770,71773-71775,71777-71779,71781-71784,71786-71787,71789-71793,71795,71797-71798,71800-71801,71803-71807,71809-71823,71825-71826,71828-71831,71833-71836,71839-71841,71843-71852,71854-71868,71870-71877,71879-71903,71905,71907-71937,71939-71954,71956-71959,71964-71968,71970-71975,71977-71994,71996-72003,72005-72039,72041-72051,72055,72057-72093,72095-72106,72108-72110,72112-72113,72116,72118,72120-72125,72128-72130,72132,72136,72138-72154,72156-72166,72168-72172,72174-72177,72179-72182,72185-72188,72190,72192-72196,72201,72203-72209,72211-72212,72214-72218,72220,72222,72224,72228-72236,72238-72240,72242-72245,72247-72249,72251-72252,72254-72256,72258-72266,72268,72270-72272,72274-72282,72285-72302,72304-72305,72307-72313,72315-72321,72323,72325,72327,72329-72334,72336-72342,72344-72347,72349-72356,72358-72360,72362-72366,72369-72376,72378-72381,72383-72387,72389-72391,72393-72403,72405,72407-72417,72420-72442,72444,72446-72450,72452-72453,72455-72460,72462-72463,72465-72467,72470-72473,72475,72477-72486,72490-72493,72496,72498-72499,72501-72505,72507,72511,72513-72515,72519-72524,72527-72534,72536-72538,72540-72542,72544-72546,72548-72550,72552-72557,72559,72561-72569,72572-72581,72584-72604,72606-72615,72617,72619-72623,72625-72629,72631-72644,72646-72653,72656-72657,72659-72668,72670,72672-72680,72682-72685,72687-72688,72691,72695,72697,72700-72720,72722-72726,72728-72729,72731-72735,72737-72744,72747-72749,72751-72763,72765-72767,72769-72773,72775,72778-72785,72788,72790,72792-72795,72797-72798,72800-72804,72806-72811,72814-72816,72818-72822,72824-72830,72835,72838-72839,72848,72852,72855,72859,72871-72872,72878,72882,72887,72893,72930,72932,72966,72971,72992,73016,73022,73026,73028,73030,73032-73041,73043-73044,73050-73059,73061-73067,73070,73075,73077-73082,73084-73088,73090-73108,73110-73120,73122-73134,73136-73144,73146,73148-73150,73152-73162,73164-73165,73167-73169,73171-73173,73175-73181,73183,73185,73187-73189,73191-73195,73198-73200,73202-73205,73207-73211,73214,73216,73218-73231,73233-73237,73239,73241-73242,73244-73246,73248-73249,73251,73253-73256,73259,73261-73269,73271,73273-73274,73276-73277,73283-73285,73287-73293,73295,73297-73298,73300-73302,73304-73307,73309-73311,73313,73315-73316,73319-73320,73322-73323,73327,73329-73330,73332-73333,73337-73339,73341-73344,73346-73349,73351-73352,73355-73360,73364-73366,73368-73369,73371,73373-73375,73377-73381,73383-73392,73399,73403,73406-73408,73410-73414,73416,73424-73431,73434,73437-73438,73440-73444,73446,73449-73456,73458,73464,73466-73470,73473-73479,73481-73484,73487,73491-73494,73497-73498,73500,73503-73508,73510-73512,73515-73517,73520-73531,73533,73535,73538-73539,73541-73543,73545,73547-73554,73557,73565,73575,73598,73653,73669,73677-73678,73680-73681,73774,73776,73790,73812,73870,73872-73876,73878-73883,73885-73887,73889-73890,73892-73894,73896-73900,73902-73908,73921,73946,73952,73954,73970,74040-74042
reverted:
--- python2.6-2.6.2/debian/patches/series
+++ python2.6-2.6.2.orig/debian/patches/series
@@ -1,22 +0,0 @@
-deb-setup
-deb-locations
-locale-module
-distutils-link
-distutils-sysconfig
-test-sundry
-tkinter-import
-link-opt
-egg-info-no-version
-debug-build
-hotshot-import
-profile-doc
-subprocess-eintr-safety
-webbrowser
-linecache
-doc-nodownload
-
-# FIXME
-#arm-float, for arm only
-
-# FIXME
-# enable-fpectl, if enabled
reverted:
--- python2.6-2.6.2/debian/patches/distutils-install-layout.dpatch.saved
+++ python2.6-2.6.2.orig/debian/patches/distutils-install-layout.dpatch.saved
@@ -1,244 +0,0 @@
-#! /bin/sh -e
-
-# DP: distutils: Add an option --install-layout=deb, which
-# DP: - installs into $prefix/dist-packages instead of $prefix/site-packages.
-# DP: - doesn't encode the python version into the egg name.
-
-dir=
-if [ $# -eq 3 -a "$2" = '-d' ]; then
- pdir="-d $3"
- dir="$3/"
-elif [ $# -ne 1 ]; then
- echo >&2 "usage: `basename $0`: -patch|-unpatch [-d ]"
- exit 1
-fi
-case "$1" in
- -patch)
- patch $pdir -f --no-backup-if-mismatch -p0 < $0
- ;;
- -unpatch)
- patch $pdir -f --no-backup-if-mismatch -R -p0 < $0
- ;;
- *)
- echo >&2 "usage: `basename $0`: -patch|-unpatch [-d ]"
- exit 1
-esac
-exit 0
-
---- ./Lib/site.py.orig 2009-04-02 16:40:23.000000000 +0200
-+++ ./Lib/site.py 2009-04-02 17:05:10.000000000 +0200
-@@ -249,6 +249,13 @@
-
- if ENABLE_USER_SITE and os.path.isdir(USER_SITE):
- addsitedir(USER_SITE, known_paths)
-+ if ENABLE_USER_SITE:
-+ for dist_libdir in ("lib", "local/lib"):
-+ user_site = os.path.join(USER_BASE, dist_libdir,
-+ "python" + sys.version[:3],
-+ "dist-packages")
-+ if os.path.isdir(user_site):
-+ addsitedir(user_site, known_paths)
- return known_paths
-
-
---- ./Lib/distutils/command/install_egg_info.py.orig 2009-03-27 19:47:42.000000000 +0100
-+++ ./Lib/distutils/command/install_egg_info.py 2009-03-31 14:19:04.000000000 +0200
-@@ -14,18 +14,37 @@
- description = "Install package's PKG-INFO metadata as an .egg-info file"
- user_options = [
- ('install-dir=', 'd', "directory to install to"),
-+ ('install-layout', None, "custom installation layout"),
- ]
-
- def initialize_options(self):
- self.install_dir = None
-+ self.install_layout = None
-+ self.prefix_option = None
-
- def finalize_options(self):
- self.set_undefined_options('install_lib',('install_dir','install_dir'))
-- basename = "%s-%s-py%s.egg-info" % (
-- to_filename(safe_name(self.distribution.get_name())),
-- to_filename(safe_version(self.distribution.get_version())),
-- sys.version[:3]
-- )
-+ self.set_undefined_options('install',('install_layout','install_layout'))
-+ self.set_undefined_options('install',('prefix_option','prefix_option'))
-+ if self.install_layout:
-+ basename = "%s-%s.egg-info" % (
-+ to_filename(safe_name(self.distribution.get_name())),
-+ to_filename(safe_version(self.distribution.get_version()))
-+ )
-+ if not self.install_layout.lower() in ['deb']:
-+ raise DistutilsOptionError(
-+ "unknown value for --install-layout")
-+ elif self.prefix_option or 'real_prefix' in sys.__dict__:
-+ basename = "%s-%s-py%s.egg-info" % (
-+ to_filename(safe_name(self.distribution.get_name())),
-+ to_filename(safe_version(self.distribution.get_version())),
-+ sys.version[:3]
-+ )
-+ else:
-+ basename = "%s-%s.egg-info" % (
-+ to_filename(safe_name(self.distribution.get_name())),
-+ to_filename(safe_version(self.distribution.get_version()))
-+ )
- self.target = os.path.join(self.install_dir, basename)
- self.outputs = [self.target]
-
---- ./Lib/distutils/command/install.py.orig 2009-03-27 19:47:42.000000000 +0100
-+++ ./Lib/distutils/command/install.py 2009-03-31 14:19:04.000000000 +0200
-@@ -47,6 +47,20 @@
- 'scripts': '$base/bin',
- 'data' : '$base',
- },
-+ 'unix_local': {
-+ 'purelib': '$base/local/lib/python$py_version_short/dist-packages',
-+ 'platlib': '$platbase/local/lib/python$py_version_short/dist-packages',
-+ 'headers': '$base/local/include/python$py_version_short/$dist_name',
-+ 'scripts': '$base/local/bin',
-+ 'data' : '$base/local',
-+ },
-+ 'deb_system': {
-+ 'purelib': '$base/lib/python$py_version_short/dist-packages',
-+ 'platlib': '$platbase/lib/python$py_version_short/dist-packages',
-+ 'headers': '$base/include/python$py_version_short/$dist_name',
-+ 'scripts': '$base/bin',
-+ 'data' : '$base',
-+ },
- 'unix_home': {
- 'purelib': '$base/lib/python',
- 'platlib': '$base/lib/python',
-@@ -168,6 +182,9 @@
-
- ('record=', None,
- "filename in which to record list of installed files"),
-+
-+ ('install-layout=', None,
-+ "installation layout to choose (known values: deb)"),
- ]
-
- boolean_options = ['compile', 'force', 'skip-build', 'user']
-@@ -182,6 +199,7 @@
- self.exec_prefix = None
- self.home = None
- self.user = 0
-+ self.prefix_option = None
-
- # These select only the installation base; it's up to the user to
- # specify the installation scheme (currently, that means supplying
-@@ -203,6 +221,9 @@
- self.install_userbase = USER_BASE
- self.install_usersite = USER_SITE
-
-+ # enable custom installation, known values: deb
-+ self.install_layout = None
-+
- self.compile = None
- self.optimize = None
-
-@@ -435,6 +456,7 @@
- self.install_base = self.install_platbase = self.home
- self.select_scheme("unix_home")
- else:
-+ self.prefix_option = self.prefix
- if self.prefix is None:
- if self.exec_prefix is not None:
- raise DistutilsOptionError, \
-@@ -449,7 +471,16 @@
-
- self.install_base = self.prefix
- self.install_platbase = self.exec_prefix
-- self.select_scheme("unix_prefix")
-+ if self.install_layout:
-+ if self.install_layout.lower() in ['deb']:
-+ self.select_scheme("deb_system")
-+ else:
-+ raise DistutilsOptionError(
-+ "unknown value for --install-layout")
-+ elif self.prefix_option or 'real_prefix' in sys.__dict__:
-+ self.select_scheme("unix_prefix")
-+ else:
-+ self.select_scheme("unix_local")
-
- # finalize_unix ()
-
---- ./Lib/distutils/sysconfig.py.orig 2009-03-27 19:47:42.000000000 +0100
-+++ ./Lib/distutils/sysconfig.py 2009-04-02 16:52:41.000000000 +0200
-@@ -111,6 +111,7 @@
- If 'prefix' is supplied, use it instead of sys.prefix or
- sys.exec_prefix -- i.e., ignore 'plat_specific'.
- """
-+ is_default_prefix = not prefix or os.path.normpath(prefix) in ('/usr', '/usr/local')
- if prefix is None:
- prefix = plat_specific and EXEC_PREFIX or PREFIX
-
-@@ -119,6 +120,8 @@
- "lib", "python" + get_python_version())
- if standard_lib:
- return libpython
-+ elif is_default_prefix and 'PYTHONUSERBASE' not in os.environ:
-+ return os.path.join(libpython, "dist-packages")
- else:
- return os.path.join(libpython, "site-packages")
-
---- Doc/install/index.rst~ 2009-01-04 13:57:46.000000000 +0100
-+++ Doc/install/index.rst 2009-04-10 15:50:58.000000000 +0200
-@@ -237,6 +237,8 @@
- +-----------------+-----------------------------------------------------+--------------------------------------------------+-------+
- | Platform | Standard installation location | Default value | Notes |
- +=================+=====================================================+==================================================+=======+
-+| Debian/Ubuntu | :file:`{prefix}/lib/python{X.Y}/dist-packages` | :file:`/usr/local/lib/python{X.Y}/dist-packages` | \(0) |
-++-----------------+-----------------------------------------------------+--------------------------------------------------+-------+
- | Unix (pure) | :file:`{prefix}/lib/python{X.Y}/site-packages` | :file:`/usr/local/lib/python{X.Y}/site-packages` | \(1) |
- +-----------------+-----------------------------------------------------+--------------------------------------------------+-------+
- | Unix (non-pure) | :file:`{exec-prefix}/lib/python{X.Y}/site-packages` | :file:`/usr/local/lib/python{X.Y}/site-packages` | \(1) |
-@@ -246,6 +248,14 @@
-
- Notes:
-
-+(0)
-+ Starting with Python-2.6 Debian/Ubuntu uses for the Python which comes within
-+ the Linux distribution a non-default name for the installation directory. This
-+ is to avoid overwriting of the python modules which come with the distribution,
-+ which unfortunately is the upstream behaviour of the installation tools. The
-+ non-default name in :file:`/usr/local` is used not to overwrite a local python
-+ installation (defaulting to :file:`/usr/local`).
-+
- (1)
- Most Linux distributions include Python as a standard part of the system, so
- :file:`{prefix}` and :file:`{exec-prefix}` are usually both :file:`/usr` on
-@@ -367,6 +377,15 @@
-
- /usr/bin/python setup.py install --prefix=/usr/local
-
-+Starting with Python-2.6 Debian/Ubuntu does use
-+:file:`/usr/lib/python{X.Y}/dist-packages` and
-+:file:`/usr/local/lib/python{X.Y}/dist-packages` for the installation
-+of python modules included in the Linux distribution. To overwrite
-+the name of the site directory, explicitely use the :option:`--prefix`
-+option, however make sure that the installation path is included in
-+``sys.path``. For packaging of python modules for Debian/Ubuntu, use
-+the new ``setup.py install`` option :option:`--install-layout=deb`.
-+
- Another possibility is a network filesystem where the name used to write to a
- remote directory is different from the name used to read it: for example, the
- Python interpreter accessed as :file:`/usr/local/bin/python` might search for
-@@ -605,6 +624,17 @@
- import them, this directory must be added to ``sys.path``. There are several
- different ways to add the directory.
-
-+On Debian/Ubuntu, starting with Python-2.6 the convention for system
-+installed packages is to put then in the
-+:file:`/usr/lib/python{X.Y}/dist-packages/` directory, and for locally
-+installed packages is to put them in the
-+:file:`/usr/lib/python{X.Y}/dist-packages/` directory. To share the
-+locally installed packages for the system provided Python with the
-+locally installed packages of a local python installation, make
-+:file:`/usr/lib/python{X.Y}/dist-packages/` a symbolic link to the
-+:file:`{...}/site-packages/` directory of your local python
-+installation.
-+
- The most convenient way is to add a path configuration file to a directory
- that's already on Python's path, usually to the :file:`.../site-packages/`
- directory. Path configuration files have an extension of :file:`.pth`, and each
only in patch2:
unchanged:
--- python2.6-2.6.2.orig/debian/libPVER.symbols.lpia.in
+++ python2.6-2.6.2/debian/libPVER.symbols.lpia.in
@@ -0,0 +1,4 @@
+libpython@VER@.so.1.0 libpython@VER@ #MINVER#
+ Py_InitModule4@Base @VER@
+ _Py_force_double@Base @VER@
+#include "libpython.symbols"
only in patch2:
unchanged:
--- python2.6-2.6.2.orig/debian/PVER-dbg.symbols.lpia.in
+++ python2.6-2.6.2/debian/PVER-dbg.symbols.lpia.in
@@ -0,0 +1,26 @@
+libpython@VER@_d.so.1.0 python@VER@-dbg #MINVER#
+ Py_InitModule4TraceRefs@Base @VER@
+#include "libpython.symbols"
+ _Py_force_double@Base 2.6.2
+ _PyDict_Dummy@Base @VER@
+ _PyObject_DebugCheckAddress@Base @VER@
+ _PyObject_DebugDumpAddress@Base @VER@
+ _PyObject_DebugFree@Base @VER@
+ _PyObject_DebugMalloc@Base @VER@
+ _PyObject_DebugMallocStats@Base @VER@
+ _PyObject_DebugRealloc@Base @VER@
+ _PySet_Dummy@Base @VER@
+ _Py_AddToAllObjects@Base @VER@
+ _Py_Dealloc@Base @VER@
+ _Py_ForgetReference@Base @VER@
+ _Py_GetObjects@Base @VER@
+ _Py_GetRefTotal@Base @VER@
+ _Py_NegativeRefcount@Base @VER@
+ _Py_NewReference@Base @VER@
+ _Py_PrintReferenceAddresses@Base @VER@
+ _Py_PrintReferences@Base @VER@
+ _Py_RefTotal@Base @VER@
+ _Py_dumptree@Base @VER@
+ _Py_printtree@Base @VER@
+ _Py_showtree@Base @VER@
+ _Py_tok_dump@Base @VER@
only in patch2:
unchanged:
--- python2.6-2.6.2.orig/debian/libPVER.symbols.i386.in
+++ python2.6-2.6.2/debian/libPVER.symbols.i386.in
@@ -0,0 +1,4 @@
+libpython@VER@.so.1.0 libpython@VER@ #MINVER#
+ Py_InitModule4@Base @VER@
+ _Py_force_double@Base @VER@
+#include "libpython.symbols"
only in patch2:
unchanged:
--- python2.6-2.6.2.orig/debian/PVER-dbg.symbols.i386.in
+++ python2.6-2.6.2/debian/PVER-dbg.symbols.i386.in
@@ -0,0 +1,26 @@
+libpython@VER@_d.so.1.0 python@VER@-dbg #MINVER#
+ Py_InitModule4TraceRefs@Base @VER@
+#include "libpython.symbols"
+ _Py_force_double@Base 2.6.2
+ _PyDict_Dummy@Base @VER@
+ _PyObject_DebugCheckAddress@Base @VER@
+ _PyObject_DebugDumpAddress@Base @VER@
+ _PyObject_DebugFree@Base @VER@
+ _PyObject_DebugMalloc@Base @VER@
+ _PyObject_DebugMallocStats@Base @VER@
+ _PyObject_DebugRealloc@Base @VER@
+ _PySet_Dummy@Base @VER@
+ _Py_AddToAllObjects@Base @VER@
+ _Py_Dealloc@Base @VER@
+ _Py_ForgetReference@Base @VER@
+ _Py_GetObjects@Base @VER@
+ _Py_GetRefTotal@Base @VER@
+ _Py_NegativeRefcount@Base @VER@
+ _Py_NewReference@Base @VER@
+ _Py_PrintReferenceAddresses@Base @VER@
+ _Py_PrintReferences@Base @VER@
+ _Py_RefTotal@Base @VER@
+ _Py_dumptree@Base @VER@
+ _Py_printtree@Base @VER@
+ _Py_showtree@Base @VER@
+ _Py_tok_dump@Base @VER@
|