Commit 2c181616 authored by Christian Heimes's avatar Christian Heimes

Merged revisions 59512-59540 via svnmerge from

svn+ssh://pythondev@svn.python.org/python/trunk

........
  r59513 | raymond.hettinger | 2007-12-15 01:07:25 +0100 (Sat, 15 Dec 2007) | 6 lines

  Optimize PyList_AsTuple(). Improve cache performance by doing the
  pointer copy and object increment in one pass.  For small lists,
  save the overhead of the call to memcpy() -- this comes up in
  calls like f(*listcomp).
........
  r59519 | christian.heimes | 2007-12-15 06:38:35 +0100 (Sat, 15 Dec 2007) | 2 lines

  Fixed #1624: Remove output comparison for test_pep277
  I had to modify Brett's patch slightly.
........
  r59520 | georg.brandl | 2007-12-15 10:34:59 +0100 (Sat, 15 Dec 2007) | 2 lines

  Add note about future import needed for with statement.
........
  r59522 | georg.brandl | 2007-12-15 10:36:37 +0100 (Sat, 15 Dec 2007) | 2 lines

  Argh, wrong version.
........
  r59524 | georg.brandl | 2007-12-16 12:06:09 +0100 (Sun, 16 Dec 2007) | 2 lines

  Dummy commit to investigate #1617.
........
  r59525 | georg.brandl | 2007-12-16 12:21:48 +0100 (Sun, 16 Dec 2007) | 2 lines

  Revert dummy commit now that the build slave is building.
........
  r59527 | georg.brandl | 2007-12-16 16:47:46 +0100 (Sun, 16 Dec 2007) | 2 lines

  Remove orphaned footnote reference.
........
  r59528 | georg.brandl | 2007-12-16 16:53:49 +0100 (Sun, 16 Dec 2007) | 2 lines

  Remove gratuitous unicode character.
........
  r59529 | georg.brandl | 2007-12-16 16:59:19 +0100 (Sun, 16 Dec 2007) | 2 lines

  Remove another unnecessary Unicode character.
........
  r59530 | georg.brandl | 2007-12-16 17:00:36 +0100 (Sun, 16 Dec 2007) | 2 lines

  Remove curious space-like characters.
........
  r59532 | georg.brandl | 2007-12-16 20:36:51 +0100 (Sun, 16 Dec 2007) | 2 lines

  Adapt conf.py to new option names.
........
  r59533 | christian.heimes | 2007-12-16 22:39:43 +0100 (Sun, 16 Dec 2007) | 1 line

  Fixed #1638: %zd configure test fails on Linux
........
  r59536 | georg.brandl | 2007-12-17 00:11:16 +0100 (Mon, 17 Dec 2007) | 2 lines

  Simplify.
........
  r59537 | georg.brandl | 2007-12-17 00:13:29 +0100 (Mon, 17 Dec 2007) | 2 lines

  Use PEP 8.
........
  r59539 | georg.brandl | 2007-12-17 00:15:07 +0100 (Mon, 17 Dec 2007) | 2 lines

  Don't use quotes for non-string code.
........
  r59540 | facundo.batista | 2007-12-17 15:18:42 +0100 (Mon, 17 Dec 2007) | 4 lines


  Removed the private _rounding_decision: it was not needed, and the code
  is now simpler.  Thanks Mark Dickinson.
........
parent 33770554
...@@ -7,8 +7,10 @@ ...@@ -7,8 +7,10 @@
PYTHON = python2.5 PYTHON = python2.5
SVNROOT = http://svn.python.org/projects SVNROOT = http://svn.python.org/projects
SPHINXOPTS = SPHINXOPTS =
PAPER =
ALLSPHINXOPTS = -b$(BUILDER) -dbuild/doctrees $(SPHINXOPTS) . build/$(BUILDER) ALLSPHINXOPTS = -b $(BUILDER) -d build/doctrees -D latex_paper_size=$(PAPER) \
$(SPHINXOPTS) . build/$(BUILDER)
.PHONY: help checkout update build html web htmlhelp clean .PHONY: help checkout update build html web htmlhelp clean
...@@ -17,6 +19,7 @@ help: ...@@ -17,6 +19,7 @@ help:
@echo " html to make standalone HTML files" @echo " html to make standalone HTML files"
@echo " web to make file usable by Sphinx.web" @echo " web to make file usable by Sphinx.web"
@echo " htmlhelp to make HTML files and a HTML help project" @echo " htmlhelp to make HTML files and a HTML help project"
@echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
checkout: checkout:
@if [ ! -d tools/sphinx ]; then \ @if [ ! -d tools/sphinx ]; then \
...@@ -60,6 +63,8 @@ htmlhelp: build ...@@ -60,6 +63,8 @@ htmlhelp: build
latex: BUILDER = latex latex: BUILDER = latex
latex: build latex: build
@echo "Build finished; the LaTeX files are in build/latex." @echo "Build finished; the LaTeX files are in build/latex."
@echo "Run \`make all-pdf' or \`make all-ps' in that directory to" \
"run these through (pdf)latex."
clean: clean:
-rm -rf build/* -rm -rf build/*
......
...@@ -4,7 +4,9 @@ ...@@ -4,7 +4,9 @@
# #
# The contents of this file are pickled, so don't put values in the namespace # The contents of this file are pickled, so don't put values in the namespace
# that aren't pickleable (module imports are okay, they're removed automatically). # that aren't pickleable (module imports are okay, they're removed automatically).
#
# General configuration
# ---------------------
# The default replacements for |version| and |release|. # The default replacements for |version| and |release|.
# If 'auto', Sphinx looks for the Include/patchlevel.h file in the current Python # If 'auto', Sphinx looks for the Include/patchlevel.h file in the current Python
...@@ -23,9 +25,6 @@ today = '' ...@@ -23,9 +25,6 @@ today = ''
# Else, today_fmt is used as the format for a strftime call. # Else, today_fmt is used as the format for a strftime call.
today_fmt = '%B %d, %Y' today_fmt = '%B %d, %Y'
# The base URL for download links.
download_base_url = 'http://docs.python.org/ftp/python/doc/'
# List of files that shouldn't be included in the build. # List of files that shouldn't be included in the build.
unused_files = [ unused_files = [
'whatsnew/2.0.rst', 'whatsnew/2.0.rst',
...@@ -40,17 +39,34 @@ unused_files = [ ...@@ -40,17 +39,34 @@ unused_files = [
'library/xml.etree.rst', 'library/xml.etree.rst',
] ]
# If true, '()' will be appended to :func: etc. cross-reference text.
add_function_parentheses = True
# If true, the current module name will be prepended to all description
# unit titles (such as .. function::).
add_module_names = True
# Options for HTML output
# -----------------------
# The base URL for download links.
html_download_base_url = 'http://docs.python.org/ftp/python/doc/'
# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
# using the given strftime format. # using the given strftime format.
last_updated_format = '%b %d, %Y' html_last_updated_fmt = '%b %d, %Y'
# If true, SmartyPants will be used to convert quotes and dashes to # If true, SmartyPants will be used to convert quotes and dashes to
# typographically correct entities. # typographically correct entities.
use_smartypants = True html_use_smartypants = True
# If true, '()' will be appended to :func: etc. cross-reference text.
add_function_parentheses = True
# If true, the current module name will be prepended to all description # Options for LaTeX output
# unit titles (such as .. function::). # ------------------------
add_module_names = True
# The paper size ("letter" or "a4").
latex_paper_size = "a4"
# The font size ("10pt", "11pt" or "12pt").
latex_font_size = "10pt"
...@@ -16,7 +16,7 @@ Names for built-in exceptions and functions and a number of constants are found ...@@ -16,7 +16,7 @@ Names for built-in exceptions and functions and a number of constants are found
in a separate symbol table. This table is searched last when the interpreter in a separate symbol table. This table is searched last when the interpreter
looks up the meaning of a name, so local and global user-defined names can looks up the meaning of a name, so local and global user-defined names can
override built-in names. Built-in types are described together here for easy override built-in names. Built-in types are described together here for easy
reference. [#]_ reference.
The tables in this chapter document the priorities of operators by listing them The tables in this chapter document the priorities of operators by listing them
in order of ascending priority (within a table) and grouping operators that have in order of ascending priority (within a table) and grouping operators that have
......
...@@ -63,14 +63,14 @@ also available for Python: ...@@ -63,14 +63,14 @@ also available for Python:
`wxPython <http://www.wxpython.org>`_ `wxPython <http://www.wxpython.org>`_
wxPython is a cross-platform GUI toolkit for Python that is built around wxPython is a cross-platform GUI toolkit for Python that is built around
the popular `wxWidgets <http://www.wxwidgets.org/>`_ (formerly wxWindows) the popular `wxWidgets <http://www.wxwidgets.org/>`_ (formerly wxWindows)
C++ toolkit.  It provides a native look and feel for applications on C++ toolkit. It provides a native look and feel for applications on
Windows, Mac OS X, and Unix systems by using each platform's native Windows, Mac OS X, and Unix systems by using each platform's native
widgets where ever possible, (GTK+ on Unix-like systems).  In addition to widgets where ever possible, (GTK+ on Unix-like systems). In addition to
an extensive set of widgets, wxPython provides classes for online an extensive set of widgets, wxPython provides classes for online
documentation and context sensitive help, printing, HTML viewing, documentation and context sensitive help, printing, HTML viewing,
low-level device context drawing, drag and drop, system clipboard access, low-level device context drawing, drag and drop, system clipboard access,
an XML-based resource format and more, including an ever growing library an XML-based resource format and more, including an ever growing library
of user-contributed modules.  wxPython has a book, `wxPython in Action of user-contributed modules. wxPython has a book, `wxPython in Action
<http://www.amazon.com/exec/obidos/ASIN/1932394621>`_, by Noel Rappin and <http://www.amazon.com/exec/obidos/ASIN/1932394621>`_, by Noel Rappin and
Robin Dunn. Robin Dunn.
......
...@@ -608,7 +608,7 @@ Notes: ...@@ -608,7 +608,7 @@ Notes:
(5) (5)
The slice of *s* from *i* to *j* with step *k* is defined as the sequence of The slice of *s* from *i* to *j* with step *k* is defined as the sequence of
items with index ``x = i + n*k`` such that 0 ≤n < (j-i)/(k). In other words, items with index ``x = i + n*k`` such that ``0 <= n < (j-i)/k``. In other words,
the indices are ``i``, ``i+k``, ``i+2*k``, ``i+3*k`` and so on, stopping when the indices are ``i``, ``i+k``, ``i+2*k``, ``i+3*k`` and so on, stopping when
*j* is reached (but never including *j*). If *i* or *j* is greater than *j* is reached (but never including *j*). If *i* or *j* is greater than
``len(s)``, use ``len(s)``. If *i* or *j* are omitted or ``None``, they become ``len(s)``, use ``len(s)``. If *i* or *j* are omitted or ``None``, they become
......
...@@ -285,5 +285,5 @@ corresponding to a full circle: ...@@ -285,5 +285,5 @@ corresponding to a full circle:
.. method:: Turtle.degrees([fullcircle]) .. method:: Turtle.degrees([fullcircle])
*fullcircle* is by default 360. This can cause the pen to have any angular units *fullcircle* is by default 360. This can cause the pen to have any angular units
whatever: give *fullcircle* 2\*$π for radians, or 400 for gradians. whatever: give *fullcircle* ``2*pi`` for radians, or 400 for gradians.
...@@ -276,9 +276,7 @@ releases are built, the source tree contains solutions/project files. View the ...@@ -276,9 +276,7 @@ releases are built, the source tree contains solutions/project files. View the
+--------------------+--------------+-----------------------+ +--------------------+--------------+-----------------------+
| Directory | MSVC version | Visual Studio version | | Directory | MSVC version | Visual Studio version |
+====================+==============+=======================+ +====================+==============+=======================+
| :file:`PC/VC6/` | 5.0 | 97 | | :file:`PC/VC6/` | 6.0 | 97 |
| +--------------+-----------------------+
| | 6.0 | 6.0 |
+--------------------+--------------+-----------------------+ +--------------------+--------------+-----------------------+
| :file:`PCbuild/` | 7.1 | 2003 | | :file:`PCbuild/` | 7.1 | 2003 |
+--------------------+--------------+-----------------------+ +--------------------+--------------+-----------------------+
......
...@@ -202,7 +202,7 @@ A high-level explanation of the context management protocol is: ...@@ -202,7 +202,7 @@ A high-level explanation of the context management protocol is:
methods. methods.
* The context manager's :meth:`__enter__` method is called. The value returned * The context manager's :meth:`__enter__` method is called. The value returned
is assigned to *VAR*. If no ``'as VAR'`` clause is present, the value is simply is assigned to *VAR*. If no ``as VAR`` clause is present, the value is simply
discarded. discarded.
* The code in *BLOCK* is executed. * The code in *BLOCK* is executed.
...@@ -242,11 +242,11 @@ rolled back if there's an exception. Here's the basic interface for ...@@ -242,11 +242,11 @@ rolled back if there's an exception. Here's the basic interface for
class DatabaseConnection: class DatabaseConnection:
# Database interface # Database interface
def cursor (self): def cursor(self):
"Returns a cursor object and starts a new transaction" "Returns a cursor object and starts a new transaction"
def commit (self): def commit(self):
"Commits current transaction" "Commits current transaction"
def rollback (self): def rollback(self):
"Rolls back current transaction" "Rolls back current transaction"
The :meth:`__enter__` method is pretty easy, having only to start a new The :meth:`__enter__` method is pretty easy, having only to start a new
...@@ -256,7 +256,7 @@ their ':keyword:`with`' statement to bind the cursor to a variable name. :: ...@@ -256,7 +256,7 @@ their ':keyword:`with`' statement to bind the cursor to a variable name. ::
class DatabaseConnection: class DatabaseConnection:
... ...
def __enter__ (self): def __enter__(self):
# Code to start a new transaction # Code to start a new transaction
cursor = self.cursor() cursor = self.cursor()
return cursor return cursor
...@@ -273,7 +273,7 @@ add a :keyword:`return` statement at the marked location. :: ...@@ -273,7 +273,7 @@ add a :keyword:`return` statement at the marked location. ::
class DatabaseConnection: class DatabaseConnection:
... ...
def __exit__ (self, type, value, tb): def __exit__(self, type, value, tb):
if tb is None: if tb is None:
# No exception, so commit # No exception, so commit
self.commit() self.commit()
...@@ -306,7 +306,7 @@ decorator as:: ...@@ -306,7 +306,7 @@ decorator as::
from contextlib import contextmanager from contextlib import contextmanager
@contextmanager @contextmanager
def db_transaction (connection): def db_transaction(connection):
cursor = connection.cursor() cursor = connection.cursor()
try: try:
yield cursor yield cursor
......
This diff is collapsed.
test_pep277
'\xdf-\u66e8\u66e9\u66eb'
['Gr\xfc\xdf-Gott', 'abc', 'ascii', '\u0393\u03b5\u03b9\u03ac-\u03c3\u03b1\u03c2', '\u0417\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439\u0442\u0435', '\u05d4\u05e9\u05e7\u05e6\u05e5\u05e1', '\u306b\u307d\u3093', '\u66e8\u05e9\u3093\u0434\u0393\xdf', '\u66e8\u66e9\u66eb']
...@@ -78,12 +78,12 @@ class UnicodeFileTests(unittest.TestCase): ...@@ -78,12 +78,12 @@ class UnicodeFileTests(unittest.TestCase):
def test_listdir(self): def test_listdir(self):
f1 = os.listdir(test_support.TESTFN) f1 = os.listdir(test_support.TESTFN)
# Printing f1 is not appropriate, as specific filenames
# returned depend on the local encoding
f2 = os.listdir(str(test_support.TESTFN.encode("utf-8"), f2 = os.listdir(str(test_support.TESTFN.encode("utf-8"),
sys.getfilesystemencoding())) sys.getfilesystemencoding()))
f2.sort() sf2 = set("\\".join((unicode(test_support.TESTFN), f))
print(f2) for f in f2)
self.failUnlessEqual(len(f1), len(self.files))
self.failUnlessEqual(sf2, set(self.files))
def test_rename(self): def test_rename(self):
for name in self.files: for name in self.files:
...@@ -99,7 +99,6 @@ class UnicodeFileTests(unittest.TestCase): ...@@ -99,7 +99,6 @@ class UnicodeFileTests(unittest.TestCase):
f = open(filename, 'wb') f = open(filename, 'wb')
f.write((filename + '\n').encode("utf-8")) f.write((filename + '\n').encode("utf-8"))
f.close() f.close()
print(repr(filename))
os.access(filename,os.R_OK) os.access(filename,os.R_OK)
os.remove(filename) os.remove(filename)
os.chdir(oldwd) os.chdir(oldwd)
......
...@@ -2177,7 +2177,7 @@ PyObject * ...@@ -2177,7 +2177,7 @@ PyObject *
PyList_AsTuple(PyObject *v) PyList_AsTuple(PyObject *v)
{ {
PyObject *w; PyObject *w;
PyObject **p; PyObject **p, **q;
Py_ssize_t n; Py_ssize_t n;
if (v == NULL || !PyList_Check(v)) { if (v == NULL || !PyList_Check(v)) {
PyErr_BadInternalCall(); PyErr_BadInternalCall();
...@@ -2188,12 +2188,12 @@ PyList_AsTuple(PyObject *v) ...@@ -2188,12 +2188,12 @@ PyList_AsTuple(PyObject *v)
if (w == NULL) if (w == NULL)
return NULL; return NULL;
p = ((PyTupleObject *)w)->ob_item; p = ((PyTupleObject *)w)->ob_item;
memcpy((void *)p, q = ((PyListObject *)v)->ob_item;
(void *)((PyListObject *)v)->ob_item,
n*sizeof(PyObject *));
while (--n >= 0) { while (--n >= 0) {
Py_INCREF(*p); Py_INCREF(*q);
*p = *q;
p++; p++;
q++;
} }
return w; return w;
} }
......
...@@ -23389,9 +23389,9 @@ cat >>conftest.$ac_ext <<_ACEOF ...@@ -23389,9 +23389,9 @@ cat >>conftest.$ac_ext <<_ACEOF
#include <stddef.h> #include <stddef.h>
#include <string.h> #include <string.h>
int main() #ifdef HAVE_SYS_TYPES_H
{ #include <sys/types.h>
char buffer[256]; #endif
#ifdef HAVE_SSIZE_T #ifdef HAVE_SSIZE_T
typedef ssize_t Py_ssize_t; typedef ssize_t Py_ssize_t;
...@@ -23401,6 +23401,10 @@ typedef long Py_ssize_t; ...@@ -23401,6 +23401,10 @@ typedef long Py_ssize_t;
typedef int Py_ssize_t; typedef int Py_ssize_t;
#endif #endif
int main()
{
char buffer[256];
if(sprintf(buffer, "%zd", (size_t)123) < 0) if(sprintf(buffer, "%zd", (size_t)123) < 0)
return 1; return 1;
......
...@@ -3429,9 +3429,9 @@ AC_TRY_RUN([#include <stdio.h> ...@@ -3429,9 +3429,9 @@ AC_TRY_RUN([#include <stdio.h>
#include <stddef.h> #include <stddef.h>
#include <string.h> #include <string.h>
int main() #ifdef HAVE_SYS_TYPES_H
{ #include <sys/types.h>
char buffer[256]; #endif
#ifdef HAVE_SSIZE_T #ifdef HAVE_SSIZE_T
typedef ssize_t Py_ssize_t; typedef ssize_t Py_ssize_t;
...@@ -3441,6 +3441,10 @@ typedef long Py_ssize_t; ...@@ -3441,6 +3441,10 @@ typedef long Py_ssize_t;
typedef int Py_ssize_t; typedef int Py_ssize_t;
#endif #endif
int main()
{
char buffer[256];
if(sprintf(buffer, "%zd", (size_t)123) < 0) if(sprintf(buffer, "%zd", (size_t)123) < 0)
return 1; return 1;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment