]> granicus.if.org Git - python/commitdiff
Merged revisions 85082 via svnmerge from
authorAntoine Pitrou <solipsis@pitrou.net>
Tue, 28 Sep 2010 23:41:31 +0000 (23:41 +0000)
committerAntoine Pitrou <solipsis@pitrou.net>
Tue, 28 Sep 2010 23:41:31 +0000 (23:41 +0000)
svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r85082 | antoine.pitrou | 2010-09-29 01:39:41 +0200 (mer., 29 sept. 2010) | 4 lines

  Buffers are not sequence objects (!). Put them in the abstract objects layers
  instead.
........

Doc/c-api/abstract.rst
Doc/c-api/buffer.rst
Doc/c-api/concrete.rst
Doc/c-api/objbuffer.rst

index 66426f72c3f0751707df2acc0ce1d15e2bbefa8a..aba804d5c3be1e3ee91eabff514bb13c55ebf2c4 100644 (file)
@@ -22,4 +22,5 @@ but whose items have not been set to some non-\ ``NULL`` value yet.
    sequence.rst
    mapping.rst
    iter.rst
+   buffer.rst
    objbuffer.rst
index 61673e8ccd4c9d8a6589888bff6f0d3caa7380f8..ce782d2107a47a09ae7c3d2d60ffd4fab965fe78 100644 (file)
@@ -2,8 +2,8 @@
 
 .. _bufferobjects:
 
-Buffer API
-----------
+Buffer Protocol
+---------------
 
 .. sectionauthor:: Greg Stein <gstein@lyra.org>
 .. sectionauthor:: Benjamin Peterson
@@ -50,21 +50,22 @@ How the buffer interface is exposed by a type object is described in the
 section :ref:`buffer-structs`, under the description for :ctype:`PyBufferProcs`.
 
 
-Buffer objects
-==============
+The buffer structure
+====================
 
-Buffer objects are useful as a way to expose the binary data from another
-object to the Python programmer.  They can also be used as a zero-copy
-slicing mechanism.  Using their ability to reference a block of memory, it is
-possible to expose any data to the Python programmer quite easily.  The memory
-could be a large, constant array in a C extension, it could be a raw block of
-memory for manipulation before passing to an operating system library, or it
-could be used to pass around structured data in its native, in-memory format.
+Buffer structures (or simply "buffers") are useful as a way to expose the
+binary data from another object to the Python programmer.  They can also be
+used as a zero-copy slicing mechanism.  Using their ability to reference a
+block of memory, it is possible to expose any data to the Python programmer
+quite easily.  The memory could be a large, constant array in a C extension,
+it could be a raw block of memory for manipulation before passing to an
+operating system library, or it could be used to pass around structured data
+in its native, in-memory format.
 
-Contrary to most data types exposed by the Python interpreter, buffer objects
+Contrary to most data types exposed by the Python interpreter, buffers
 are not :ctype:`PyObject` pointers but rather simple C structures.  This
 allows them to be created and copied very simply.  When a generic wrapper
-around a buffer object is needed, a :ref:`memoryview <memoryviewobjects>` object
+around a buffer is needed, a :ref:`memoryview <memoryviewobjects>` object
 can be created.
 
 
index d1fdec009eae474c9f7d8cd7f2b23f5e0774cb25..23f79b7cd3768f68a6dba1b1a34e45b45fb9e803 100644 (file)
@@ -68,7 +68,6 @@ intrinsic to the Python language.
    bytes.rst
    bytearray.rst
    unicode.rst
-   buffer.rst
    tuple.rst
    list.rst
 
index ef4e4ea606695c4e7a667347e921beb6301e3330..728d38343f4a0ea2d959bcc6b2bdafaec1e4eed8 100644 (file)
@@ -1,15 +1,16 @@
 .. highlightlang:: c
 
-Old buffer API
---------------
+Old Buffer Protocol
+-------------------
 
 .. deprecated:: 3.0
 
 These functions were part of the "old buffer protocol" API in Python 2.
-In Python 3, these functions are still exposed for ease of porting code.
-They act as a compatibility wrapper around the :ref:`new buffer API
-<bufferobjects>`, but they don't give you control over the lifetime of
-the resources acquired when a buffer is exported.
+In Python 3, this protocol doesn't exist anymore but the functions are still
+exposed to ease porting 2.x code.  They act as a compatibility wrapper
+around the :ref:`new buffer protocol <bufferobjects>`, but they don't give
+you control over the lifetime of the resources acquired when a buffer is
+exported.
 
 Therefore, it is recommended that you call :cfunc:`PyObject_GetBuffer`
 (or the ``y*`` or ``w*`` :ref:`format codes <arg-parsing>` with the
@@ -17,10 +18,6 @@ Therefore, it is recommended that you call :cfunc:`PyObject_GetBuffer`
 an object, and :cfunc:`PyBuffer_Release` when the buffer view can be released.
 
 
-Buffer Protocol
-===============
-
-
 .. cfunction:: int PyObject_AsCharBuffer(PyObject *obj, const char **buffer, Py_ssize_t *buffer_len)
 
    Returns a pointer to a read-only memory location usable as character-based