make bytes(o) respect __bytes__ #2415
This adds two new C-API functions: PyObject_Bytes and PyBytes_FromObject.
Reviewer: Barry
diff --git a/Doc/c-api/bytes.rst b/Doc/c-api/bytes.rst
index 916e20e..c9a114a 100644
--- a/Doc/c-api/bytes.rst
+++ b/Doc/c-api/bytes.rst
@@ -118,6 +118,12 @@
arguments.
+.. cfunction:: PyObject* PyBytes_FromObject(PyObject *o)
+
+ Return the bytes representation of object *o* that implements the buffer
+ protocol.
+
+
.. cfunction:: Py_ssize_t PyBytes_Size(PyObject *o)
Return the length of the bytes in bytes object *o*.
diff --git a/Doc/c-api/object.rst b/Doc/c-api/object.rst
index 193ab95..7b9682c 100644
--- a/Doc/c-api/object.rst
+++ b/Doc/c-api/object.rst
@@ -139,6 +139,14 @@
Python expression ``str(o)``. Called by the :func:`str` built-in function
and, therefore, by the :func:`print` function.
+.. cfunction:: PyObject* PyObject_Bytes(PyObject *o)
+
+ .. index:: builtin: bytes
+
+ Compute a bytes representation of object *o*. *NULL* is returned on failure
+ and a bytes object on success. This is equivalent to the Python expression
+ ``bytes(o)``.
+
.. cfunction:: int PyObject_IsInstance(PyObject *inst, PyObject *cls)