OLD | NEW |
(Empty) | |
| 1 # Please see the Python header files (object.h/abstract.h) for docs |
| 2 |
| 3 cdef extern from "Python.h": |
| 4 |
| 5 cdef enum: |
| 6 PyBUF_SIMPLE, |
| 7 PyBUF_WRITABLE, |
| 8 PyBUF_WRITEABLE, # backwards compatability |
| 9 PyBUF_FORMAT, |
| 10 PyBUF_ND, |
| 11 PyBUF_STRIDES, |
| 12 PyBUF_C_CONTIGUOUS, |
| 13 PyBUF_F_CONTIGUOUS, |
| 14 PyBUF_ANY_CONTIGUOUS, |
| 15 PyBUF_INDIRECT, |
| 16 PyBUF_CONTIG, |
| 17 PyBUF_CONTIG_RO, |
| 18 PyBUF_STRIDED, |
| 19 PyBUF_STRIDED_RO, |
| 20 PyBUF_RECORDS, |
| 21 PyBUF_RECORDS_RO, |
| 22 PyBUF_FULL, |
| 23 PyBUF_FULL_RO, |
| 24 PyBUF_READ, |
| 25 PyBUF_WRITE, |
| 26 PyBUF_SHADOW |
| 27 |
| 28 bint PyObject_CheckBuffer(object obj) |
| 29 # Return 1 if obj supports the buffer interface otherwise 0. |
| 30 |
| 31 int PyObject_GetBuffer(object obj, Py_buffer *view, int flags) except -1 |
| 32 # Export obj into a Py_buffer, view. These arguments must never be |
| 33 # NULL. The flags argument is a bit field indicating what kind of |
| 34 # buffer the caller is prepared to deal with and therefore what |
| 35 # kind of buffer the exporter is allowed to return. The buffer |
| 36 # interface allows for complicated memory sharing possibilities, |
| 37 # but some caller may not be able to handle all the complexity but |
| 38 # may want to see if the exporter will let them take a simpler |
| 39 # view to its memory. |
| 40 |
| 41 # Some exporters may not be able to share memory in every possible |
| 42 # way and may need to raise errors to signal to some consumers |
| 43 # that something is just not possible. These errors should be a |
| 44 # BufferError unless there is another error that is actually |
| 45 # causing the problem. The exporter can use flags information to |
| 46 # simplify how much of the Py_buffer structure is filled in with |
| 47 # non-default values and/or raise an error if the object can’t |
| 48 # support a simpler view of its memory. |
| 49 |
| 50 # 0 is returned on success and -1 on error. |
| 51 |
| 52 void PyBuffer_Release(Py_buffer *view) |
| 53 # Release the buffer view. This should be called when the buffer |
| 54 # is no longer being used as it may free memory from it. |
| 55 |
| 56 void* PyBuffer_GetPointer(Py_buffer *view, Py_ssize_t *indices) |
| 57 # ?? |
| 58 |
| 59 Py_ssize_t PyBuffer_SizeFromFormat(char *) # actually const char |
| 60 # Return the implied ~Py_buffer.itemsize from the struct-stype |
| 61 # ~Py_buffer.format |
| 62 |
| 63 int PyBuffer_ToContiguous(void *buf, Py_buffer *view, Py_ssize_t len, char f
ort) |
| 64 # ?? |
| 65 |
| 66 int PyBuffer_FromContiguous(Py_buffer *view, void *buf, Py_ssize_t len, char
fort) |
| 67 # ?? |
| 68 |
| 69 int PyObject_CopyToObject(object obj, void *buf, Py_ssize_t len, char fortra
n) except -1 |
| 70 # Copy len bytes of data pointed to by the contiguous chunk of |
| 71 # memory pointed to by buf into the buffer exported by obj. The |
| 72 # buffer must of course be writable. Return 0 on success and |
| 73 # return -1 and raise an error on failure. If the object does not |
| 74 # have a writable buffer, then an error is raised. If fortran is |
| 75 # 'F', then if the object is multi-dimensional, then the data will |
| 76 # be copied into the array in Fortran-style (first dimension |
| 77 # varies the fastest). If fortran is 'C', then the data will be |
| 78 # copied into the array in C-style (last dimension varies the |
| 79 # fastest). If fortran is 'A', then it does not matter and the |
| 80 # copy will be made in whatever way is more efficient. |
| 81 |
| 82 int PyObject_CopyData(object dest, object src) except -1 |
| 83 # Copy the data from the src buffer to the buffer of destination |
| 84 |
| 85 bint PyBuffer_IsContiguous(Py_buffer *view, char fort) |
| 86 # Return 1 if the memory defined by the view is C-style (fortran |
| 87 # is 'C') or Fortran-style (fortran is 'F') contiguous or either |
| 88 # one (fortran is 'A'). Return 0 otherwise. |
| 89 |
| 90 void PyBuffer_FillContiguousStrides(int ndims, |
| 91 Py_ssize_t *shape, |
| 92 Py_ssize_t *strides, |
| 93 Py_ssize_t itemsize, |
| 94 char fort) |
| 95 # Fill the strides array with byte-strides of a contiguous |
| 96 # (Fortran-style if fort is 'F' or C-style otherwise) array of the |
| 97 # given shape with the given number of bytes per element. |
| 98 |
| 99 int PyBuffer_FillInfo(Py_buffer *view, object exporter, void *buf, |
| 100 Py_ssize_t len, int readonly, int flags) except -1 |
| 101 # Fill in a buffer-info structure, view, correctly for an exporter |
| 102 # that can only share a contiguous chunk of memory of “unsigned |
| 103 # bytes” of the given length. Return 0 on success and -1 (with |
| 104 # raising an error) on error. |
| 105 |
| 106 # DEPRECATED HERE: do not cimport from here, cimport from cpython.object ins
tead |
| 107 object PyObject_Format(object obj, object format_spec) |
| 108 # Takes an arbitrary object and returns the result of calling |
| 109 # obj.__format__(format_spec). |
OLD | NEW |