diff options
author | Georg Brandl <georg@python.org> | 2008-12-05 08:35:09 (GMT) |
---|---|---|
committer | Georg Brandl <georg@python.org> | 2008-12-05 08:35:09 (GMT) |
commit | bb608a84aa8f1b879f42c418c28045468dedc22a (patch) | |
tree | d94b550a3ca56a879b8426a5c5157a2c1544cc82 | |
parent | 6b257f4b3d1b804c636e0ae41d42366f7a2831a8 (diff) | |
download | cpython-bb608a84aa8f1b879f42c418c28045468dedc22a.zip cpython-bb608a84aa8f1b879f42c418c28045468dedc22a.tar.gz cpython-bb608a84aa8f1b879f42c418c28045468dedc22a.tar.bz2 |
Merged revisions 67154,67157-67159,67162-67163,67166,67175-67176,67189,67224-67225,67243 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r67154 | hirokazu.yamamoto | 2008-11-08 04:46:17 +0100 (Sat, 08 Nov 2008) | 1 line
Issue #4071: ntpath.abspath returned an empty string for long unicode path.
........
r67157 | georg.brandl | 2008-11-08 12:47:44 +0100 (Sat, 08 Nov 2008) | 2 lines
Don't use "HOWTO" as the title for all howto .tex files.
........
r67158 | georg.brandl | 2008-11-08 12:48:20 +0100 (Sat, 08 Nov 2008) | 2 lines
Update "Documenting" a bit. Concentrate on Python-specifics.
........
r67159 | georg.brandl | 2008-11-08 13:52:25 +0100 (Sat, 08 Nov 2008) | 2 lines
Fix warning.
........
r67162 | benjamin.peterson | 2008-11-08 17:55:33 +0100 (Sat, 08 Nov 2008) | 1 line
a few compile() and ast doc improvements
........
r67163 | benjamin.peterson | 2008-11-08 18:04:18 +0100 (Sat, 08 Nov 2008) | 1 line
move context clue to versionchanged tag
........
r67166 | benjamin.peterson | 2008-11-08 18:07:06 +0100 (Sat, 08 Nov 2008) | 1 line
clarify what was added
........
r67175 | benjamin.peterson | 2008-11-09 02:44:32 +0100 (Sun, 09 Nov 2008) | 1 line
update link
........
r67176 | benjamin.peterson | 2008-11-09 02:52:32 +0100 (Sun, 09 Nov 2008) | 1 line
fix comment
........
r67189 | benjamin.peterson | 2008-11-11 22:56:06 +0100 (Tue, 11 Nov 2008) | 1 line
use correct name
........
r67224 | georg.brandl | 2008-11-15 09:10:04 +0100 (Sat, 15 Nov 2008) | 2 lines
#4324: fix getlocale() argument.
........
r67225 | brett.cannon | 2008-11-15 23:33:25 +0100 (Sat, 15 Nov 2008) | 1 line
Clarify the docs for the 'strict' argument to httplib.HTTPConnection.
........
r67243 | benjamin.peterson | 2008-11-17 22:39:05 +0100 (Mon, 17 Nov 2008) | 1 line
a few fixes on the download page
........
-rw-r--r-- | Doc/conf.py | 2 | ||||
-rw-r--r-- | Doc/documenting/index.rst | 7 | ||||
-rw-r--r-- | Doc/documenting/markup.rst | 26 | ||||
-rw-r--r-- | Doc/documenting/rest.rst | 8 | ||||
-rw-r--r-- | Doc/documenting/sphinx.rst | 76 | ||||
-rw-r--r-- | Doc/documenting/style.rst | 2 | ||||
-rw-r--r-- | Doc/library/ast.rst | 11 | ||||
-rw-r--r-- | Doc/library/functions.rst | 38 | ||||
-rw-r--r-- | Doc/library/httplib.rst | 3 | ||||
-rw-r--r-- | Doc/library/locale.rst | 2 | ||||
-rw-r--r-- | Doc/library/multiprocessing.rst | 2 | ||||
-rw-r--r-- | Doc/tools/sphinxext/download.html | 4 | ||||
-rw-r--r-- | Lib/string.py | 5 | ||||
-rw-r--r-- | Modules/posixmodule.c | 26 |
14 files changed, 64 insertions, 148 deletions
diff --git a/Doc/conf.py b/Doc/conf.py index f2e6674..76415b0 100644 --- a/Doc/conf.py +++ b/Doc/conf.py @@ -128,7 +128,7 @@ latex_documents = [ ] # Collect all HOWTOs individually latex_documents.extend(('howto/' + fn[:-4], 'howto-' + fn[:-4] + '.tex', - 'HOWTO', _stdauthor, 'howto') + '', _stdauthor, 'howto') for fn in os.listdir('howto') if fn.endswith('.rst') and fn != 'index.rst') diff --git a/Doc/documenting/index.rst b/Doc/documenting/index.rst index 5adbd46..5ec9fb6 100644 --- a/Doc/documenting/index.rst +++ b/Doc/documenting/index.rst @@ -8,7 +8,7 @@ The Python language has a substantial body of documentation, much of it contributed by various authors. The markup used for the Python documentation is `reStructuredText`_, developed by the `docutils`_ project, amended by custom -directives and using a toolset named *Sphinx* to postprocess the HTML output. +directives and using a toolset named `Sphinx`_ to postprocess the HTML output. This document describes the style guide for our documentation, the custom reStructuredText markup introduced to support Python documentation and how it @@ -16,6 +16,7 @@ should be used, as well as the Sphinx build system. .. _reStructuredText: http://docutils.sf.net/rst.html .. _docutils: http://docutils.sf.net/ +.. _Sphinx: http://sphinx.pocoo.org/ If you're interested in contributing to Python's documentation, there's no need to write reStructuredText if you're not so inclined; plain text contributions @@ -28,7 +29,3 @@ are more than welcome as well. rest.rst markup.rst fromlatex.rst - sphinx.rst - -.. XXX add credits, thanks etc. - diff --git a/Doc/documenting/markup.rst b/Doc/documenting/markup.rst index 7cf89b0..e6f6a52 100644 --- a/Doc/documenting/markup.rst +++ b/Doc/documenting/markup.rst @@ -8,24 +8,11 @@ markup. This section contains the reference material for these facilities. Documentation for "standard" reST constructs is not included here, though they are used in the Python documentation. -File-wide metadata ------------------- - -reST has the concept of "field lists"; these are a sequence of fields marked up -like this:: - - :Field name: Field content - -A field list at the very top of a file is parsed as the "docinfo", which in -normal documents can be used to record the author, date of publication and -other metadata. In Sphinx, the docinfo is used as metadata, too, but not -displayed in the output. - -At the moment, only one metadata field is recognized: +.. note:: -``nocomments`` - If set, the web application won't display a comment form for a page generated - from this source file. + This is just an overview of Sphinx' extended markup capabilities; full + coverage can be found in `its own documentation + <http://sphinx.pocoo.org/contents.html>`_. Meta-information markup @@ -88,7 +75,6 @@ As you can see, the module-specific markup consists of two directives, the authors of the module code, just like ``sectionauthor`` names the author(s) of a piece of documentation. It too does not result in any output currently. - .. note:: It is important to make the section title of a module-describing file @@ -272,7 +258,7 @@ Syntax highlighting is handled in a smart way: This language is used until the next ``highlightlang`` directive is encountered. -* The valid values for the highlighting language are: +* The values normally used for the highlighting language are: * ``python`` (the default) * ``c`` @@ -799,7 +785,7 @@ Substitutions ------------- The documentation system provides three substitutions that are defined by default. -They are set in the build configuration file, see :ref:`doc-build-config`. +They are set in the build configuration file :file:`conf.py`. .. describe:: |release| diff --git a/Doc/documenting/rest.rst b/Doc/documenting/rest.rst index 8a4fc3d..e018373 100644 --- a/Doc/documenting/rest.rst +++ b/Doc/documenting/rest.rst @@ -67,12 +67,6 @@ autonumbered using a ``#`` sign:: #. This is a numbered list. #. It has two items too. -Note that Sphinx disables the use of enumerated lists introduced by alphabetic -or roman numerals, such as :: - - A. First item - B. Second item - Nested lists are possible, but be aware that they must be separated from the parent list items by blank lines:: @@ -247,5 +241,3 @@ There are some problems one commonly runs into while authoring reST documents: * **Separation of inline markup:** As said above, inline markup spans must be separated from the surrounding text by non-word characters, you have to use an escaped space to get around that. - -.. XXX more? diff --git a/Doc/documenting/sphinx.rst b/Doc/documenting/sphinx.rst deleted file mode 100644 index 43da14e..0000000 --- a/Doc/documenting/sphinx.rst +++ /dev/null @@ -1,76 +0,0 @@ -.. highlightlang:: rest - -The Sphinx build system -======================= - -.. XXX: intro... - -.. _doc-build-config: - -The build configuration file ----------------------------- - -The documentation root, that is the ``Doc`` subdirectory of the source -distribution, contains a file named ``conf.py``. This file is called the "build -configuration file", and it contains several variables that are read and used -during a build run. - -These variables are: - -version : string - A string that is used as a replacement for the ``|version|`` reST - substitution. It should be the Python version the documentation refers to. - This consists only of the major and minor version parts, e.g. ``2.5``, even - for version 2.5.1. - -release : string - A string that is used as a replacement for the ``|release|`` reST - substitution. It should be the full version string including - alpha/beta/release candidate tags, e.g. ``2.5.2b3``. - -Both ``release`` and ``version`` can be ``'auto'``, which means that they are -determined at runtime from the ``Include/patchlevel.h`` file, if a complete -Python source distribution can be found, or else from the interpreter running -Sphinx. - -today_fmt : string - A ``strftime`` format that is used to format a replacement for the - ``|today|`` reST substitution. - -today : string - A string that can contain a date that should be written to the documentation - output literally. If this is nonzero, it is used instead of - ``strftime(today_fmt)``. - -unused_files : list of strings - A list of reST filenames that are to be disregarded during building. This - could be docs for temporarily disabled modules or documentation that's not - yet ready for public consumption. - -add_function_parentheses : bool - If true, ``()`` will be appended to the content of ``:func:``, ``:meth:`` and - ``:cfunc:`` cross-references. - -add_module_names : bool - If true, the current module name will be prepended to all description unit - titles (such as ``.. function::``). - -Builder-specific variables -^^^^^^^^^^^^^^^^^^^^^^^^^^ - -html_download_base_url : string - The base URL for download links on the download page. - -html_last_updated_fmt : string - If this is not an empty string, it will be given to ``time.strftime()`` and - written to each generated output file after "last updated on:". - -html_use_smartypants : bool - If true, use SmartyPants to convert quotes and dashes to the typographically - correct entities. - -latex_paper_size : "letter" or "a4" - The paper size option for the LaTeX document class. - -latex_font_size : "10pt", "11pt" or "12pt" - The font size option for the LaTeX document class.
\ No newline at end of file diff --git a/Doc/documenting/style.rst b/Doc/documenting/style.rst index 5821bd8..593f6da 100644 --- a/Doc/documenting/style.rst +++ b/Doc/documenting/style.rst @@ -66,5 +66,5 @@ Unix 1970s. -.. _Apple Publications Style Guide: http://developer.apple.com/documentation/UserExperience/Conceptual/APStyleGuide/AppleStyleGuide2006.pdf +.. _Apple Publications Style Guide: http://developer.apple.com/documentation/UserExperience/Conceptual/APStyleGuide/APSG_2008.pdf diff --git a/Doc/library/ast.rst b/Doc/library/ast.rst index 2192d11..e1a8ac0 100644 --- a/Doc/library/ast.rst +++ b/Doc/library/ast.rst @@ -21,13 +21,12 @@ abstract syntax grammar. The abstract syntax itself might change with each Python release; this module helps to find out programmatically what the current grammar looks like. -An abstract syntax tree can be generated by passing :data:`_ast.PyCF_ONLY_AST` -as a flag to the :func:`compile` builtin function, or using the :func:`parse` +An abstract syntax tree can be generated by passing :data:`ast.PyCF_ONLY_AST` as +a flag to the :func:`compile` builtin function, or using the :func:`parse` helper provided in this module. The result will be a tree of objects whose -classes all inherit from :class:`ast.AST`. +classes all inherit from :class:`ast.AST`. An abstract syntax tree can be +compiled into a Python code object using the built-in :func:`compile` function. -A modified abstract syntax tree can be compiled into a Python code object using -the built-in :func:`compile` function. Node classes ------------ @@ -126,7 +125,7 @@ and classes for traversing abstract syntax trees: .. function:: parse(expr, filename='<unknown>', mode='exec') Parse an expression into an AST node. Equivalent to ``compile(expr, - filename, mode, PyCF_ONLY_AST)``. + filename, mode, ast.PyCF_ONLY_AST)``. .. function:: literal_eval(node_or_string) diff --git a/Doc/library/functions.rst b/Doc/library/functions.rst index 78d2ad1..daa2704 100644 --- a/Doc/library/functions.rst +++ b/Doc/library/functions.rst @@ -199,15 +199,8 @@ available. They are listed here in alphabetical order. Compile the *source* into a code or AST object. Code objects can be executed by an :keyword:`exec` statement or evaluated by a call to :func:`eval`. - *source* can either be a string or an AST object. Refer to the :mod:`_ast` - module documentation for information on how to compile into and from AST - objects. - - When compiling a string with multi-line statements, two caveats apply: line - endings must be represented by a single newline character (``'\n'``), and the - input must be terminated by at least one newline character. If line endings - are represented by ``'\r\n'``, use the string :meth:`replace` method to - change them into ``'\n'``. + *source* can either be a string or an AST object. Refer to the :mod:`ast` + module documentation for information on how to work with AST objects. The *filename* argument should give the file from which the code was read; pass some recognizable value if it wasn't read from a file (``'<string>'`` is @@ -219,15 +212,15 @@ available. They are listed here in alphabetical order. interactive statement (in the latter case, expression statements that evaluate to something else than ``None`` will be printed). - The optional arguments *flags* and *dont_inherit* (which are new in Python 2.2) - control which future statements (see :pep:`236`) affect the compilation of - *source*. If neither is present (or both are zero) the code is compiled with - those future statements that are in effect in the code that is calling compile. - If the *flags* argument is given and *dont_inherit* is not (or is zero) then the + The optional arguments *flags* and *dont_inherit* control which future + statements (see :pep:`236`) affect the compilation of *source*. If neither + is present (or both are zero) the code is compiled with those future + statements that are in effect in the code that is calling compile. If the + *flags* argument is given and *dont_inherit* is not (or is zero) then the future statements specified by the *flags* argument are used in addition to those that would be used anyway. If *dont_inherit* is a non-zero integer then - the *flags* argument is it -- the future statements in effect around the call to - compile are ignored. + the *flags* argument is it -- the future statements in effect around the call + to compile are ignored. Future statements are specified by bits which can be bitwise ORed together to specify multiple statements. The bitfield required to specify a given feature @@ -237,7 +230,18 @@ available. They are listed here in alphabetical order. This function raises :exc:`SyntaxError` if the compiled source is invalid, and :exc:`TypeError` if the source contains null bytes. - .. versionadded:: 2.6 + .. note:: + + When compiling a string with multi-line statements, line endings must be + represented by a single newline character (``'\n'``), and the input must + be terminated by at least one newline character. If line endings are + represented by ``'\r\n'``, use :meth:`str.replace` to change them into + ``'\n'``. + + .. versionchanged:: 2.3 + The *flags* and *dont_inherit* arguments were added. + + .. versionchanged:: 2.6 Support for compiling AST objects. diff --git a/Doc/library/httplib.rst b/Doc/library/httplib.rst index 4c87d17..874fd54 100644 --- a/Doc/library/httplib.rst +++ b/Doc/library/httplib.rst @@ -40,7 +40,8 @@ The module provides the following classes: server. It should be instantiated passing it a host and optional port number. If no port number is passed, the port is extracted from the host string if it has the form ``host:port``, else the default HTTP port (80) is - used. When True, the optional parameter *strict* causes ``BadStatusLine`` to + used. When True, the optional parameter *strict* (which defaults to a false + value) causes ``BadStatusLine`` to be raised if the status line can't be parsed as a valid HTTP/1.0 or 1.1 status line. If the optional *timeout* parameter is given, blocking operations (like connection attempts) will timeout after that many seconds diff --git a/Doc/library/locale.rst b/Doc/library/locale.rst index 6d427b7..3dfefa2 100644 --- a/Doc/library/locale.rst +++ b/Doc/library/locale.rst @@ -492,7 +492,7 @@ descriptions are taken from the corresponding description in the GNU C library. Example:: >>> import locale - >>> loc = locale.getlocale(locale.LC_ALL) # get current locale + >>> loc = locale.getlocale() # get current locale >>> locale.setlocale(locale.LC_ALL, 'de_DE') # use German locale; name might vary with platform >>> locale.strcoll('f\xe4n', 'foo') # compare a string containing an umlaut >>> locale.setlocale(locale.LC_ALL, '') # use user's preferred locale diff --git a/Doc/library/multiprocessing.rst b/Doc/library/multiprocessing.rst index 16bb8f9..7a13183 100644 --- a/Doc/library/multiprocessing.rst +++ b/Doc/library/multiprocessing.rst @@ -1870,7 +1870,7 @@ handler type) for messages from different processes to get mixed up. Below is an example session with logging turned on:: >>> import multiprocessing, logging - >>> logger = multiprocessing.getLogger() + >>> logger = multiprocessing.get_logger() >>> logger.setLevel(logging.INFO) >>> logger.warning('doomed') [WARNING/MainProcess] doomed diff --git a/Doc/tools/sphinxext/download.html b/Doc/tools/sphinxext/download.html index 181483c..82ee251 100644 --- a/Doc/tools/sphinxext/download.html +++ b/Doc/tools/sphinxext/download.html @@ -14,7 +14,7 @@ <p>To download an archive containing all the documents for this version of Python in one of various formats, follow one of links in this table. The numbers -in the table are the size of the download files in Kilobytes.</p> +in the table are the size of the download files in megabytes.</p> <table class="docutils"> <tr><th>Format</th><th>Packed as .zip</th><th>Packed as .tar.bz2</th></tr> @@ -54,7 +54,7 @@ platform. These are created on Unix using the InfoZIP zip program.</p> <h2>Problems</h2> <p>If you have comments or suggestions for the Python documentation, please send -email to <a href="docs@python.org">docs@python.org</a>.</p> +email to <a href="mailto:docs@python.org">docs@python.org</a>.</p> {% endif %} {% endblock %} diff --git a/Lib/string.py b/Lib/string.py index daf9863..e4d9e4f 100644 --- a/Lib/string.py +++ b/Lib/string.py @@ -532,9 +532,8 @@ except ImportError: # the Formatter class # see PEP 3101 for details and purpose of this class -# The hard parts are reused from the C implementation. They're -# exposed here via the sys module. sys was chosen because it's always -# available and doesn't have to be dynamically loaded. +# The hard parts are reused from the C implementation. They're exposed as "_" +# prefixed methods of str and unicode. # The overall parser is implemented in str._formatter_parser. # The field name parser is implemented in str._formatter_field_name_split diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c index 4c580c4..1d0b7ec 100644 --- a/Modules/posixmodule.c +++ b/Modules/posixmodule.c @@ -2393,13 +2393,27 @@ posix__getfullpathname(PyObject *self, PyObject *args) if (unicode_file_names()) { PyUnicodeObject *po; if (PyArg_ParseTuple(args, "U|:_getfullpathname", &po)) { - Py_UNICODE woutbuf[MAX_PATH*2]; + Py_UNICODE *wpath = PyUnicode_AS_UNICODE(po); + Py_UNICODE woutbuf[MAX_PATH*2], *woutbufp = woutbuf; Py_UNICODE *wtemp; - if (!GetFullPathNameW(PyUnicode_AS_UNICODE(po), - sizeof(woutbuf)/sizeof(woutbuf[0]), - woutbuf, &wtemp)) - return win32_error("GetFullPathName", ""); - return PyUnicode_FromUnicode(woutbuf, wcslen(woutbuf)); + DWORD result; + PyObject *v; + result = GetFullPathNameW(wpath, + sizeof(woutbuf)/sizeof(woutbuf[0]), + woutbuf, &wtemp); + if (result > sizeof(woutbuf)/sizeof(woutbuf[0])) { + woutbufp = malloc(result * sizeof(Py_UNICODE)); + if (!woutbufp) + return PyErr_NoMemory(); + result = GetFullPathNameW(wpath, result, woutbufp, &wtemp); + } + if (result) + v = PyUnicode_FromUnicode(woutbufp, wcslen(woutbufp)); + else + v = win32_error_unicode("GetFullPathNameW", wpath); + if (woutbufp != woutbuf) + free(woutbufp); + return v; } /* Drop the argument parsing error as narrow strings are also valid. */ |