aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/tools/cython/Cython/Includes/cpython/buffer.pxd
diff options
context:
space:
mode:
authoralexv-smirnov <alex@ydb.tech>2023-03-15 19:59:12 +0300
committeralexv-smirnov <alex@ydb.tech>2023-03-15 19:59:12 +0300
commit056bb284ccf8dd6793ec3a54ffa36c4fb2b9ad11 (patch)
tree4740980126f32e3af7937ba0ca5f83e59baa4ab0 /contrib/tools/cython/Cython/Includes/cpython/buffer.pxd
parent269126dcced1cc8b53eb4398b4a33e5142f10290 (diff)
downloadydb-056bb284ccf8dd6793ec3a54ffa36c4fb2b9ad11.tar.gz
add library/cpp/actors, ymake build to ydb oss export
Diffstat (limited to 'contrib/tools/cython/Cython/Includes/cpython/buffer.pxd')
-rw-r--r--contrib/tools/cython/Cython/Includes/cpython/buffer.pxd112
1 files changed, 112 insertions, 0 deletions
diff --git a/contrib/tools/cython/Cython/Includes/cpython/buffer.pxd b/contrib/tools/cython/Cython/Includes/cpython/buffer.pxd
new file mode 100644
index 0000000000..3f1ada774a
--- /dev/null
+++ b/contrib/tools/cython/Cython/Includes/cpython/buffer.pxd
@@ -0,0 +1,112 @@
+# Please see the Python header files (object.h/abstract.h) for docs
+
+cdef extern from "Python.h":
+
+ cdef enum:
+ PyBUF_MAX_NDIM
+
+ cdef enum:
+ PyBUF_SIMPLE,
+ PyBUF_WRITABLE,
+ PyBUF_WRITEABLE, # backwards compatibility
+ PyBUF_FORMAT,
+ PyBUF_ND,
+ PyBUF_STRIDES,
+ PyBUF_C_CONTIGUOUS,
+ PyBUF_F_CONTIGUOUS,
+ PyBUF_ANY_CONTIGUOUS,
+ PyBUF_INDIRECT,
+ PyBUF_CONTIG,
+ PyBUF_CONTIG_RO,
+ PyBUF_STRIDED,
+ PyBUF_STRIDED_RO,
+ PyBUF_RECORDS,
+ PyBUF_RECORDS_RO,
+ PyBUF_FULL,
+ PyBUF_FULL_RO,
+ PyBUF_READ,
+ PyBUF_WRITE,
+ PyBUF_SHADOW
+
+ bint PyObject_CheckBuffer(object obj)
+ # Return 1 if obj supports the buffer interface otherwise 0.
+
+ int PyObject_GetBuffer(object obj, Py_buffer *view, int flags) except -1
+ # Export obj into a Py_buffer, view. These arguments must never be
+ # NULL. The flags argument is a bit field indicating what kind of
+ # buffer the caller is prepared to deal with and therefore what
+ # kind of buffer the exporter is allowed to return. The buffer
+ # interface allows for complicated memory sharing possibilities,
+ # but some caller may not be able to handle all the complexity but
+ # may want to see if the exporter will let them take a simpler
+ # view to its memory.
+
+ # Some exporters may not be able to share memory in every possible
+ # way and may need to raise errors to signal to some consumers
+ # that something is just not possible. These errors should be a
+ # BufferError unless there is another error that is actually
+ # causing the problem. The exporter can use flags information to
+ # simplify how much of the Py_buffer structure is filled in with
+ # non-default values and/or raise an error if the object can’t
+ # support a simpler view of its memory.
+
+ # 0 is returned on success and -1 on error.
+
+ void PyBuffer_Release(Py_buffer *view)
+ # Release the buffer view. This should be called when the buffer
+ # is no longer being used as it may free memory from it.
+
+ void* PyBuffer_GetPointer(Py_buffer *view, Py_ssize_t *indices)
+ # ??
+
+ Py_ssize_t PyBuffer_SizeFromFormat(char *) # actually const char
+ # Return the implied ~Py_buffer.itemsize from the struct-stype
+ # ~Py_buffer.format
+
+ int PyBuffer_ToContiguous(void *buf, Py_buffer *view, Py_ssize_t len, char fort)
+ # ??
+
+ int PyBuffer_FromContiguous(Py_buffer *view, void *buf, Py_ssize_t len, char fort)
+ # ??
+
+ int PyObject_CopyToObject(object obj, void *buf, Py_ssize_t len, char fortran) except -1
+ # Copy len bytes of data pointed to by the contiguous chunk of
+ # memory pointed to by buf into the buffer exported by obj. The
+ # buffer must of course be writable. Return 0 on success and
+ # return -1 and raise an error on failure. If the object does not
+ # have a writable buffer, then an error is raised. If fortran is
+ # 'F', then if the object is multi-dimensional, then the data will
+ # be copied into the array in Fortran-style (first dimension
+ # varies the fastest). If fortran is 'C', then the data will be
+ # copied into the array in C-style (last dimension varies the
+ # fastest). If fortran is 'A', then it does not matter and the
+ # copy will be made in whatever way is more efficient.
+
+ int PyObject_CopyData(object dest, object src) except -1
+ # Copy the data from the src buffer to the buffer of destination
+
+ bint PyBuffer_IsContiguous(Py_buffer *view, char fort)
+ # Return 1 if the memory defined by the view is C-style (fortran
+ # is 'C') or Fortran-style (fortran is 'F') contiguous or either
+ # one (fortran is 'A'). Return 0 otherwise.
+
+ void PyBuffer_FillContiguousStrides(int ndims,
+ Py_ssize_t *shape,
+ Py_ssize_t *strides,
+ Py_ssize_t itemsize,
+ char fort)
+ # Fill the strides array with byte-strides of a contiguous
+ # (Fortran-style if fort is 'F' or C-style otherwise) array of the
+ # given shape with the given number of bytes per element.
+
+ int PyBuffer_FillInfo(Py_buffer *view, object exporter, void *buf,
+ Py_ssize_t len, int readonly, int flags) except -1
+ # Fill in a buffer-info structure, view, correctly for an exporter
+ # that can only share a contiguous chunk of memory of “unsigned
+ # bytes” of the given length. Return 0 on success and -1 (with
+ # raising an error) on error.
+
+ # DEPRECATED HERE: do not cimport from here, cimport from cpython.object instead
+ object PyObject_Format(object obj, object format_spec)
+ # Takes an arbitrary object and returns the result of calling
+ # obj.__format__(format_spec).