Mercurial > cpython-lru_cache-weakref
annotate Doc/c-api/objbuffer.rst @ 74135:9c19df6c8ea0 3.2
News entry for Issue12798
| author | Senthil Kumaran <senthil@uthcode.com> |
|---|---|
| date | Fri, 23 Dec 2011 11:11:21 +0800 |
| parents | 521eac31a893 |
| children |
| rev | line source |
|---|---|
|
44812
1e8b9e7c34ce
Split C API docs in Py3k branch.
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
1 .. highlightlang:: c |
|
1e8b9e7c34ce
Split C API docs in Py3k branch.
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
2 |
|
64996
4cf77d193f57
Buffers are not sequence objects (!). Put them in the abstract objects layers
Antoine Pitrou <solipsis@pitrou.net>
parents:
64989
diff
changeset
|
3 Old Buffer Protocol |
|
4cf77d193f57
Buffers are not sequence objects (!). Put them in the abstract objects layers
Antoine Pitrou <solipsis@pitrou.net>
parents:
64989
diff
changeset
|
4 ------------------- |
|
64989
dc3833984734
Discourage use of the old buffer API funcs
Antoine Pitrou <solipsis@pitrou.net>
parents:
53500
diff
changeset
|
5 |
|
dc3833984734
Discourage use of the old buffer API funcs
Antoine Pitrou <solipsis@pitrou.net>
parents:
53500
diff
changeset
|
6 .. deprecated:: 3.0 |
|
dc3833984734
Discourage use of the old buffer API funcs
Antoine Pitrou <solipsis@pitrou.net>
parents:
53500
diff
changeset
|
7 |
|
dc3833984734
Discourage use of the old buffer API funcs
Antoine Pitrou <solipsis@pitrou.net>
parents:
53500
diff
changeset
|
8 These functions were part of the "old buffer protocol" API in Python 2. |
|
64996
4cf77d193f57
Buffers are not sequence objects (!). Put them in the abstract objects layers
Antoine Pitrou <solipsis@pitrou.net>
parents:
64989
diff
changeset
|
9 In Python 3, this protocol doesn't exist anymore but the functions are still |
|
4cf77d193f57
Buffers are not sequence objects (!). Put them in the abstract objects layers
Antoine Pitrou <solipsis@pitrou.net>
parents:
64989
diff
changeset
|
10 exposed to ease porting 2.x code. They act as a compatibility wrapper |
|
4cf77d193f57
Buffers are not sequence objects (!). Put them in the abstract objects layers
Antoine Pitrou <solipsis@pitrou.net>
parents:
64989
diff
changeset
|
11 around the :ref:`new buffer protocol <bufferobjects>`, but they don't give |
|
4cf77d193f57
Buffers are not sequence objects (!). Put them in the abstract objects layers
Antoine Pitrou <solipsis@pitrou.net>
parents:
64989
diff
changeset
|
12 you control over the lifetime of the resources acquired when a buffer is |
|
4cf77d193f57
Buffers are not sequence objects (!). Put them in the abstract objects layers
Antoine Pitrou <solipsis@pitrou.net>
parents:
64989
diff
changeset
|
13 exported. |
|
64989
dc3833984734
Discourage use of the old buffer API funcs
Antoine Pitrou <solipsis@pitrou.net>
parents:
53500
diff
changeset
|
14 |
|
65137
521eac31a893
Migrate to Sphinx 1.0 C language constructs.
Georg Brandl <georg@python.org>
parents:
64996
diff
changeset
|
15 Therefore, it is recommended that you call :c:func:`PyObject_GetBuffer` |
|
64989
dc3833984734
Discourage use of the old buffer API funcs
Antoine Pitrou <solipsis@pitrou.net>
parents:
53500
diff
changeset
|
16 (or the ``y*`` or ``w*`` :ref:`format codes <arg-parsing>` with the |
|
65137
521eac31a893
Migrate to Sphinx 1.0 C language constructs.
Georg Brandl <georg@python.org>
parents:
64996
diff
changeset
|
17 :c:func:`PyArg_ParseTuple` family of functions) to get a buffer view over |
|
521eac31a893
Migrate to Sphinx 1.0 C language constructs.
Georg Brandl <georg@python.org>
parents:
64996
diff
changeset
|
18 an object, and :c:func:`PyBuffer_Release` when the buffer view can be released. |
|
64989
dc3833984734
Discourage use of the old buffer API funcs
Antoine Pitrou <solipsis@pitrou.net>
parents:
53500
diff
changeset
|
19 |
|
44812
1e8b9e7c34ce
Split C API docs in Py3k branch.
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
20 |
|
65137
521eac31a893
Migrate to Sphinx 1.0 C language constructs.
Georg Brandl <georg@python.org>
parents:
64996
diff
changeset
|
21 .. c:function:: int PyObject_AsCharBuffer(PyObject *obj, const char **buffer, Py_ssize_t *buffer_len) |
|
44812
1e8b9e7c34ce
Split C API docs in Py3k branch.
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
22 |
|
45435
42b3b117391d
Merged revisions 60481,60485,60489-60492,60494-60496,60498-60499,60501-60503,60505-60506,60508-60509,60523-60524,60532,60543,60545,60547-60548,60552,60554,60556-60559,60561-60562,60569,60571-60572,60574,60576-60583,60585-60586,60589,60591,60594-60595,60597-60598,60600-60601,60606-60612,60615,60617,60619-60621,60623-60625,60627-60629,60631,60633,60635,60647,60650,60652,60654,60656,60658-60659,60664-60666,60668-60670,60672,60676,60678,60680-60683,60685-60686,60688,60690,60692-60694,60697-60700,60705-60706,60708,60711,60714,60720,60724-60730,60732,60736,60742,60744,60746,60748,60750-60751,60753,60756-60757,60759-60761,60763-60764,60766,60769-60770,60774-60784,60787-60789,60793,60796,60799-60809,60812-60813,60815-60821,60823-60826,60828-60829,60831-60834,60836,60838-60839,60846-60849,60852-60854,60856-60859,60861-60870,60874-60875,60880-60881,60886,60888-60890,60892,60894-60898,60900-60931,60933-60958 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
44812
diff
changeset
|
23 Returns a pointer to a read-only memory location usable as character-based |
|
44812
1e8b9e7c34ce
Split C API docs in Py3k branch.
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
24 input. The *obj* argument must support the single-segment character buffer |
|
53498
1fca1c932696
Merged revisions 71920-71923,71925-71929,71931-71934,71937 via svnmerge from
Jeroen Ruigrok van der Werven <asmodai@in-nomine.org>
parents:
45435
diff
changeset
|
25 interface. On success, returns ``0``, sets *buffer* to the memory location |
|
1fca1c932696
Merged revisions 71920-71923,71925-71929,71931-71934,71937 via svnmerge from
Jeroen Ruigrok van der Werven <asmodai@in-nomine.org>
parents:
45435
diff
changeset
|
26 and *buffer_len* to the buffer length. Returns ``-1`` and sets a |
|
1fca1c932696
Merged revisions 71920-71923,71925-71929,71931-71934,71937 via svnmerge from
Jeroen Ruigrok van der Werven <asmodai@in-nomine.org>
parents:
45435
diff
changeset
|
27 :exc:`TypeError` on error. |
|
1fca1c932696
Merged revisions 71920-71923,71925-71929,71931-71934,71937 via svnmerge from
Jeroen Ruigrok van der Werven <asmodai@in-nomine.org>
parents:
45435
diff
changeset
|
28 |
|
44812
1e8b9e7c34ce
Split C API docs in Py3k branch.
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
29 |
|
65137
521eac31a893
Migrate to Sphinx 1.0 C language constructs.
Georg Brandl <georg@python.org>
parents:
64996
diff
changeset
|
30 .. c:function:: int PyObject_AsReadBuffer(PyObject *obj, const void **buffer, Py_ssize_t *buffer_len) |
|
44812
1e8b9e7c34ce
Split C API docs in Py3k branch.
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
31 |
|
53498
1fca1c932696
Merged revisions 71920-71923,71925-71929,71931-71934,71937 via svnmerge from
Jeroen Ruigrok van der Werven <asmodai@in-nomine.org>
parents:
45435
diff
changeset
|
32 Returns a pointer to a read-only memory location containing arbitrary data. |
|
1fca1c932696
Merged revisions 71920-71923,71925-71929,71931-71934,71937 via svnmerge from
Jeroen Ruigrok van der Werven <asmodai@in-nomine.org>
parents:
45435
diff
changeset
|
33 The *obj* argument must support the single-segment readable buffer |
|
1fca1c932696
Merged revisions 71920-71923,71925-71929,71931-71934,71937 via svnmerge from
Jeroen Ruigrok van der Werven <asmodai@in-nomine.org>
parents:
45435
diff
changeset
|
34 interface. On success, returns ``0``, sets *buffer* to the memory location |
|
1fca1c932696
Merged revisions 71920-71923,71925-71929,71931-71934,71937 via svnmerge from
Jeroen Ruigrok van der Werven <asmodai@in-nomine.org>
parents:
45435
diff
changeset
|
35 and *buffer_len* to the buffer length. Returns ``-1`` and sets a |
|
1fca1c932696
Merged revisions 71920-71923,71925-71929,71931-71934,71937 via svnmerge from
Jeroen Ruigrok van der Werven <asmodai@in-nomine.org>
parents:
45435
diff
changeset
|
36 :exc:`TypeError` on error. |
|
1fca1c932696
Merged revisions 71920-71923,71925-71929,71931-71934,71937 via svnmerge from
Jeroen Ruigrok van der Werven <asmodai@in-nomine.org>
parents:
45435
diff
changeset
|
37 |
|
44812
1e8b9e7c34ce
Split C API docs in Py3k branch.
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
38 |
|
65137
521eac31a893
Migrate to Sphinx 1.0 C language constructs.
Georg Brandl <georg@python.org>
parents:
64996
diff
changeset
|
39 .. c:function:: int PyObject_CheckReadBuffer(PyObject *o) |
|
44812
1e8b9e7c34ce
Split C API docs in Py3k branch.
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
40 |
|
1e8b9e7c34ce
Split C API docs in Py3k branch.
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
41 Returns ``1`` if *o* supports the single-segment readable buffer interface. |
|
1e8b9e7c34ce
Split C API docs in Py3k branch.
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
42 Otherwise returns ``0``. |
|
1e8b9e7c34ce
Split C API docs in Py3k branch.
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
43 |
|
1e8b9e7c34ce
Split C API docs in Py3k branch.
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
44 |
|
65137
521eac31a893
Migrate to Sphinx 1.0 C language constructs.
Georg Brandl <georg@python.org>
parents:
64996
diff
changeset
|
45 .. c:function:: int PyObject_AsWriteBuffer(PyObject *obj, void **buffer, Py_ssize_t *buffer_len) |
|
44812
1e8b9e7c34ce
Split C API docs in Py3k branch.
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
46 |
|
1e8b9e7c34ce
Split C API docs in Py3k branch.
Georg Brandl <georg@python.org>
parents:
diff
changeset
|
47 Returns a pointer to a writable memory location. The *obj* argument must |
|
53498
1fca1c932696
Merged revisions 71920-71923,71925-71929,71931-71934,71937 via svnmerge from
Jeroen Ruigrok van der Werven <asmodai@in-nomine.org>
parents:
45435
diff
changeset
|
48 support the single-segment, character buffer interface. On success, |
|
1fca1c932696
Merged revisions 71920-71923,71925-71929,71931-71934,71937 via svnmerge from
Jeroen Ruigrok van der Werven <asmodai@in-nomine.org>
parents:
45435
diff
changeset
|
49 returns ``0``, sets *buffer* to the memory location and *buffer_len* to the |
|
1fca1c932696
Merged revisions 71920-71923,71925-71929,71931-71934,71937 via svnmerge from
Jeroen Ruigrok van der Werven <asmodai@in-nomine.org>
parents:
45435
diff
changeset
|
50 buffer length. Returns ``-1`` and sets a :exc:`TypeError` on error. |
|
1fca1c932696
Merged revisions 71920-71923,71925-71929,71931-71934,71937 via svnmerge from
Jeroen Ruigrok van der Werven <asmodai@in-nomine.org>
parents:
45435
diff
changeset
|
51 |
