Merged revisions 83593 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/release27-maint ................ r83593 | georg.brandl | 2010-08-02 23:44:25 +0200 (Mo, 02 Aug 2010) | 57 lines Merged revisions 83536,83546-83548,83550,83554-83555,83558,83563,83565,83571,83574-83575 via svnmerge from svn+ssh://pythondev@svn.python.org/python/branches/py3k ........ r83536 | georg.brandl | 2010-08-02 19:49:25 +0200 (Mo, 02 Aug 2010) | 1 line #8578: mention danger of not incref'ing weak referenced object. ........ r83546 | georg.brandl | 2010-08-02 21:16:34 +0200 (Mo, 02 Aug 2010) | 1 line #7973: Fix distutils options spelling. ........ r83547 | georg.brandl | 2010-08-02 21:19:26 +0200 (Mo, 02 Aug 2010) | 1 line #7386: add example that shows that trailing path separators are stripped. ........ r83548 | georg.brandl | 2010-08-02 21:23:34 +0200 (Mo, 02 Aug 2010) | 1 line #8172: how does one use a property? ........ r83550 | georg.brandl | 2010-08-02 21:32:43 +0200 (Mo, 02 Aug 2010) | 1 line #9451: strengthen warning about __*__ special name usage. ........ r83554 | georg.brandl | 2010-08-02 21:43:05 +0200 (Mo, 02 Aug 2010) | 1 line #7280: note about nasmw.exe. ........ r83555 | georg.brandl | 2010-08-02 21:44:48 +0200 (Mo, 02 Aug 2010) | 1 line #8861: remove unused variable. ........ r83558 | georg.brandl | 2010-08-02 22:05:19 +0200 (Mo, 02 Aug 2010) | 1 line #8648: document UTF-7 codec functions. ........ r83563 | georg.brandl | 2010-08-02 22:21:21 +0200 (Mo, 02 Aug 2010) | 1 line #9037: add example how to raise custom exceptions from C code. ........ r83565 | georg.brandl | 2010-08-02 22:27:20 +0200 (Mo, 02 Aug 2010) | 1 line #9111: document that do_help() looks at docstrings. ........ r83571 | georg.brandl | 2010-08-02 22:44:34 +0200 (Mo, 02 Aug 2010) | 1 line Clarify that abs() is not a namespace. ........ r83574 | georg.brandl | 2010-08-02 22:47:56 +0200 (Mo, 02 Aug 2010) | 1 line #6867: epoll.register() returns None. ........ r83575 | georg.brandl | 2010-08-02 22:52:10 +0200 (Mo, 02 Aug 2010) | 1 line #9238: zipfile does handle archive comments. ........ ................
This commit is contained in:
parent
f287d640ad
commit
0771591fe1
|
@ -567,6 +567,38 @@ These are the UTF-16 codec APIs:
|
||||||
*NULL* if an exception was raised by the codec.
|
*NULL* if an exception was raised by the codec.
|
||||||
|
|
||||||
|
|
||||||
|
UTF-7 Codecs
|
||||||
|
""""""""""""
|
||||||
|
|
||||||
|
These are the UTF-7 codec APIs:
|
||||||
|
|
||||||
|
|
||||||
|
.. cfunction:: PyObject* PyUnicode_DecodeUTF7(const char *s, Py_ssize_t size, const char *errors)
|
||||||
|
|
||||||
|
Create a Unicode object by decoding *size* bytes of the UTF-7 encoded string
|
||||||
|
*s*. Return *NULL* if an exception was raised by the codec.
|
||||||
|
|
||||||
|
|
||||||
|
.. cfunction:: PyObject* PyUnicode_DecodeUTF8Stateful(const char *s, Py_ssize_t size, const char *errors, Py_ssize_t *consumed)
|
||||||
|
|
||||||
|
If *consumed* is *NULL*, behave like :cfunc:`PyUnicode_DecodeUTF7`. If
|
||||||
|
*consumed* is not *NULL*, trailing incomplete UTF-7 base-64 sections will not
|
||||||
|
be treated as an error. Those bytes will not be decoded and the number of
|
||||||
|
bytes that have been decoded will be stored in *consumed*.
|
||||||
|
|
||||||
|
|
||||||
|
.. cfunction:: PyObject* PyUnicode_EncodeUTF7(const Py_UNICODE *s, Py_ssize_t size, int base64SetO, int base64WhiteSpace, const char *errors)
|
||||||
|
|
||||||
|
Encode the :ctype:`Py_UNICODE` buffer of the given size using UTF-7 and
|
||||||
|
return a Python bytes object. Return *NULL* if an exception was raised by
|
||||||
|
the codec.
|
||||||
|
|
||||||
|
If *base64SetO* is nonzero, "Set O" (punctuation that has no otherwise
|
||||||
|
special meaning) will be encoded in base-64. If *base64WhiteSpace* is
|
||||||
|
nonzero, whitespace will be encoded in base-64. Both are set to zero for the
|
||||||
|
Python "utf-7" codec.
|
||||||
|
|
||||||
|
|
||||||
Unicode-Escape Codecs
|
Unicode-Escape Codecs
|
||||||
"""""""""""""""""""""
|
"""""""""""""""""""""
|
||||||
|
|
||||||
|
|
|
@ -63,10 +63,17 @@ as much as it can.
|
||||||
.. cfunction:: PyObject* PyWeakref_GetObject(PyObject *ref)
|
.. cfunction:: PyObject* PyWeakref_GetObject(PyObject *ref)
|
||||||
|
|
||||||
Return the referenced object from a weak reference, *ref*. If the referent is
|
Return the referenced object from a weak reference, *ref*. If the referent is
|
||||||
no longer live, returns ``None``.
|
no longer live, returns :const:`Py_None`.
|
||||||
|
|
||||||
.. versionadded:: 2.2
|
.. versionadded:: 2.2
|
||||||
|
|
||||||
|
.. warning::
|
||||||
|
|
||||||
|
This function returns a **borrowed reference** to the referenced object.
|
||||||
|
This means that you should always call :cfunc:`Py_INCREF` on the object
|
||||||
|
except if you know that it cannot be destroyed while you are still
|
||||||
|
using it.
|
||||||
|
|
||||||
|
|
||||||
.. cfunction:: PyObject* PyWeakref_GET_OBJECT(PyObject *ref)
|
.. cfunction:: PyObject* PyWeakref_GET_OBJECT(PyObject *ref)
|
||||||
|
|
||||||
|
|
|
@ -173,7 +173,7 @@ easily specify multiple formats in one run. If you need to do both, you can
|
||||||
explicitly specify multiple :command:`bdist_\*` commands and their options::
|
explicitly specify multiple :command:`bdist_\*` commands and their options::
|
||||||
|
|
||||||
python setup.py bdist_rpm --packager="John Doe <jdoe@example.org>" \
|
python setup.py bdist_rpm --packager="John Doe <jdoe@example.org>" \
|
||||||
bdist_wininst --target_version="2.0"
|
bdist_wininst --target-version="2.0"
|
||||||
|
|
||||||
Creating RPM packages is driven by a :file:`.spec` file, much as using the
|
Creating RPM packages is driven by a :file:`.spec` file, much as using the
|
||||||
Distutils is driven by the setup script. To make your life easier, the
|
Distutils is driven by the setup script. To make your life easier, the
|
||||||
|
|
|
@ -228,9 +228,28 @@ needed to ensure that it will not be discarded, causing :cdata:`SpamError` to
|
||||||
become a dangling pointer. Should it become a dangling pointer, C code which
|
become a dangling pointer. Should it become a dangling pointer, C code which
|
||||||
raises the exception could cause a core dump or other unintended side effects.
|
raises the exception could cause a core dump or other unintended side effects.
|
||||||
|
|
||||||
We discuss the use of PyMODINIT_FUNC as a function return type later in this
|
We discuss the use of ``PyMODINIT_FUNC`` as a function return type later in this
|
||||||
sample.
|
sample.
|
||||||
|
|
||||||
|
The :exc:`spam.error` exception can be raised in your extension module using a
|
||||||
|
call to :cfunc:`PyErr_SetString` as shown below::
|
||||||
|
|
||||||
|
static PyObject *
|
||||||
|
spam_system(PyObject *self, PyObject *args)
|
||||||
|
{
|
||||||
|
const char *command;
|
||||||
|
int sts;
|
||||||
|
|
||||||
|
if (!PyArg_ParseTuple(args, "s", &command))
|
||||||
|
return NULL;
|
||||||
|
sts = system(command);
|
||||||
|
if (sts < 0) {
|
||||||
|
PyErr_SetString(SpamError, "System command failed");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
return PyLong_FromLong(sts);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
.. _backtoexample:
|
.. _backtoexample:
|
||||||
|
|
||||||
|
|
|
@ -80,11 +80,13 @@ A :class:`Cmd` instance has the following methods:
|
||||||
are the beginning and ending indexes of the prefix text, which could be used to
|
are the beginning and ending indexes of the prefix text, which could be used to
|
||||||
provide different completion depending upon which position the argument is in.
|
provide different completion depending upon which position the argument is in.
|
||||||
|
|
||||||
All subclasses of :class:`Cmd` inherit a predefined :meth:`do_help`. This
|
All subclasses of :class:`Cmd` inherit a predefined :meth:`do_help`. This
|
||||||
method, called with an argument ``'bar'``, invokes the corresponding method
|
method, called with an argument ``'bar'``, invokes the corresponding method
|
||||||
:meth:`help_bar`. With no argument, :meth:`do_help` lists all available help
|
:meth:`help_bar`, and if that is not present, prints the docstring of
|
||||||
topics (that is, all commands with corresponding :meth:`help_\*` methods), and
|
:meth:`do_bar`, if available. With no argument, :meth:`do_help` lists all
|
||||||
also lists any undocumented commands.
|
available help topics (that is, all commands with corresponding
|
||||||
|
:meth:`help_\*` methods or commands that have docstrings), and also lists any
|
||||||
|
undocumented commands.
|
||||||
|
|
||||||
|
|
||||||
.. method:: Cmd.onecmd(str)
|
.. method:: Cmd.onecmd(str)
|
||||||
|
|
|
@ -864,7 +864,7 @@ available. They are listed here in alphabetical order.
|
||||||
|
|
||||||
*fget* is a function for getting an attribute value, likewise *fset* is a
|
*fget* is a function for getting an attribute value, likewise *fset* is a
|
||||||
function for setting, and *fdel* a function for del'ing, an attribute. Typical
|
function for setting, and *fdel* a function for del'ing, an attribute. Typical
|
||||||
use is to define a managed attribute x::
|
use is to define a managed attribute ``x``::
|
||||||
|
|
||||||
class C(object):
|
class C(object):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
|
@ -878,6 +878,9 @@ available. They are listed here in alphabetical order.
|
||||||
del self._x
|
del self._x
|
||||||
x = property(getx, setx, delx, "I'm the 'x' property.")
|
x = property(getx, setx, delx, "I'm the 'x' property.")
|
||||||
|
|
||||||
|
If then *c* is an instance of *C*, ``c.x`` will invoke the getter,
|
||||||
|
``c.x = value`` will invoke the setter and ``del c.x`` the deleter.
|
||||||
|
|
||||||
If given, *doc* will be the docstring of the property attribute. Otherwise, the
|
If given, *doc* will be the docstring of the property attribute. Otherwise, the
|
||||||
property will copy *fget*'s docstring (if it exists). This makes it possible to
|
property will copy *fget*'s docstring (if it exists). This makes it possible to
|
||||||
create read-only properties easily using :func:`property` as a :term:`decorator`::
|
create read-only properties easily using :func:`property` as a :term:`decorator`::
|
||||||
|
|
|
@ -212,7 +212,9 @@ write files see :func:`open`, and for accessing the filesystem see the
|
||||||
.. function:: normpath(path)
|
.. function:: normpath(path)
|
||||||
|
|
||||||
Normalize a pathname. This collapses redundant separators and up-level
|
Normalize a pathname. This collapses redundant separators and up-level
|
||||||
references so that ``A//B``, ``A/./B`` and ``A/foo/../B`` all become ``A/B``.
|
references so that ``A//B``, ``A/B/``, ``A/./B`` and ``A/foo/../B`` all become
|
||||||
|
``A/B``.
|
||||||
|
|
||||||
It does not normalize the case (use :func:`normcase` for that). On Windows, it
|
It does not normalize the case (use :func:`normcase` for that). On Windows, it
|
||||||
converts forward slashes to backward slashes. It should be understood that this
|
converts forward slashes to backward slashes. It should be understood that this
|
||||||
may change the meaning of the path if it contains symbolic links!
|
may change the meaning of the path if it contains symbolic links!
|
||||||
|
|
|
@ -15,10 +15,8 @@ advanced use of this module will require an understanding of the format, as
|
||||||
defined in `PKZIP Application Note
|
defined in `PKZIP Application Note
|
||||||
<http://www.pkware.com/documents/casestudies/APPNOTE.TXT>`_.
|
<http://www.pkware.com/documents/casestudies/APPNOTE.TXT>`_.
|
||||||
|
|
||||||
This module does not currently handle multi-disk ZIP files, or ZIP files
|
This module does not currently handle multi-disk ZIP files.
|
||||||
which have appended comments (although it correctly handles comments
|
It can handle ZIP files that use the ZIP64 extensions
|
||||||
added to individual archive members---for which see the :ref:`zipinfo-objects`
|
|
||||||
documentation). It can handle ZIP files that use the ZIP64 extensions
|
|
||||||
(that is ZIP files that are more than 4 GByte in size). It supports
|
(that is ZIP files that are more than 4 GByte in size). It supports
|
||||||
decryption of encrypted files in ZIP archives, but it currently cannot
|
decryption of encrypted files in ZIP archives, but it currently cannot
|
||||||
create an encrypted file. Decryption is extremely slow as it is
|
create an encrypted file. Decryption is extremely slow as it is
|
||||||
|
@ -66,8 +64,7 @@ The module defines the following items:
|
||||||
.. function:: is_zipfile(filename)
|
.. function:: is_zipfile(filename)
|
||||||
|
|
||||||
Returns ``True`` if *filename* is a valid ZIP file based on its magic number,
|
Returns ``True`` if *filename* is a valid ZIP file based on its magic number,
|
||||||
otherwise returns ``False``. This module does not currently handle ZIP files
|
otherwise returns ``False``.
|
||||||
which have appended comments.
|
|
||||||
|
|
||||||
|
|
||||||
.. data:: ZIP_STORED
|
.. data:: ZIP_STORED
|
||||||
|
|
|
@ -386,11 +386,12 @@ characters:
|
||||||
information on this convention.
|
information on this convention.
|
||||||
|
|
||||||
``__*__``
|
``__*__``
|
||||||
System-defined names. These names are defined by the interpreter and its
|
System-defined names. These names are defined by the interpreter and its
|
||||||
implementation (including the standard library); applications should not expect
|
implementation (including the standard library). Current system names are
|
||||||
to define additional names using this convention. The set of names of this
|
discussed in the :ref:`specialnames` section and elsewhere. More will likely
|
||||||
class defined by Python may be extended in future versions. See section
|
be defined in future versions of Python. *Any* use of ``__*__`` names, in
|
||||||
:ref:`specialnames`.
|
any context, that does not follow explicitly documented use, is subject to
|
||||||
|
breakage without warning.
|
||||||
|
|
||||||
``__*``
|
``__*``
|
||||||
Class-private names. Names in this category, when used within the context of a
|
Class-private names. Names in this category, when used within the context of a
|
||||||
|
|
|
@ -64,7 +64,7 @@ Let's begin with some definitions.
|
||||||
A *namespace* is a mapping from names to objects. Most namespaces are currently
|
A *namespace* is a mapping from names to objects. Most namespaces are currently
|
||||||
implemented as Python dictionaries, but that's normally not noticeable in any
|
implemented as Python dictionaries, but that's normally not noticeable in any
|
||||||
way (except for performance), and it may change in the future. Examples of
|
way (except for performance), and it may change in the future. Examples of
|
||||||
namespaces are: the set of built-in names (functions such as :func:`abs`, and
|
namespaces are: the set of built-in names (containing functions such as :func:`abs`, and
|
||||||
built-in exception names); the global names in a module; and the local names in
|
built-in exception names); the global names in a module; and the local names in
|
||||||
a function invocation. In a sense the set of attributes of an object also form
|
a function invocation. In a sense the set of attributes of an object also form
|
||||||
a namespace. The important thing to know about namespaces is that there is
|
a namespace. The important thing to know about namespaces is that there is
|
||||||
|
|
|
@ -17,10 +17,9 @@ def wrapper(func, *args, **kwds):
|
||||||
wrapper().
|
wrapper().
|
||||||
"""
|
"""
|
||||||
|
|
||||||
res = None
|
|
||||||
try:
|
try:
|
||||||
# Initialize curses
|
# Initialize curses
|
||||||
stdscr=curses.initscr()
|
stdscr = curses.initscr()
|
||||||
|
|
||||||
# Turn off echoing of keys, and enter cbreak mode,
|
# Turn off echoing of keys, and enter cbreak mode,
|
||||||
# where no buffering is performed on keyboard input
|
# where no buffering is performed on keyboard input
|
||||||
|
|
|
@ -138,7 +138,7 @@ class bdist_msi (Command):
|
||||||
if not self.skip_build and self.distribution.has_ext_modules()\
|
if not self.skip_build and self.distribution.has_ext_modules()\
|
||||||
and self.target_version != short_version:
|
and self.target_version != short_version:
|
||||||
raise DistutilsOptionError, \
|
raise DistutilsOptionError, \
|
||||||
"target version can only be %s, or the '--skip_build'" \
|
"target version can only be %s, or the '--skip-build'" \
|
||||||
" option must be specified" % (short_version,)
|
" option must be specified" % (short_version,)
|
||||||
else:
|
else:
|
||||||
self.target_version = short_version
|
self.target_version = short_version
|
||||||
|
|
|
@ -93,7 +93,7 @@ class bdist_wininst (Command):
|
||||||
short_version = get_python_version()
|
short_version = get_python_version()
|
||||||
if self.target_version and self.target_version != short_version:
|
if self.target_version and self.target_version != short_version:
|
||||||
raise DistutilsOptionError, \
|
raise DistutilsOptionError, \
|
||||||
"target version can only be %s, or the '--skip_build'" \
|
"target version can only be %s, or the '--skip-build'" \
|
||||||
" option must be specified" % (short_version,)
|
" option must be specified" % (short_version,)
|
||||||
self.target_version = short_version
|
self.target_version = short_version
|
||||||
|
|
||||||
|
|
|
@ -910,10 +910,9 @@ pyepoll_register(pyEpoll_Object *self, PyObject *args, PyObject *kwds)
|
||||||
}
|
}
|
||||||
|
|
||||||
PyDoc_STRVAR(pyepoll_register_doc,
|
PyDoc_STRVAR(pyepoll_register_doc,
|
||||||
"register(fd[, eventmask]) -> bool\n\
|
"register(fd[, eventmask]) -> None\n\
|
||||||
\n\
|
\n\
|
||||||
Registers a new fd or modifies an already registered fd. register() returns\n\
|
Registers a new fd or modifies an already registered fd.\n\
|
||||||
True if a new fd was registered or False if the event mask for fd was modified.\n\
|
|
||||||
fd is the target file descriptor of the operation.\n\
|
fd is the target file descriptor of the operation.\n\
|
||||||
events is a bit set composed of the various EPOLL constants; the default\n\
|
events is a bit set composed of the various EPOLL constants; the default\n\
|
||||||
is EPOLL_IN | EPOLL_OUT | EPOLL_PRI.\n\
|
is EPOLL_IN | EPOLL_OUT | EPOLL_PRI.\n\
|
||||||
|
|
|
@ -155,6 +155,8 @@ _ssl
|
||||||
You must install the NASM assembler from
|
You must install the NASM assembler from
|
||||||
http://nasm.sf.net
|
http://nasm.sf.net
|
||||||
for x86 builds. Put nasmw.exe anywhere in your PATH.
|
for x86 builds. Put nasmw.exe anywhere in your PATH.
|
||||||
|
Note: recent releases of nasm only have nasm.exe. Just rename it to
|
||||||
|
nasmw.exe.
|
||||||
|
|
||||||
You can also install ActivePerl from
|
You can also install ActivePerl from
|
||||||
http://www.activestate.com/Products/ActivePerl/
|
http://www.activestate.com/Products/ActivePerl/
|
||||||
|
|
Loading…
Reference in New Issue