2019-05-17 11:55:34 +02:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								.. highlight:: c
							 | 
						
					
						
							
								
									
										
										
										
											2008-05-26 15:01:55 +00:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								.. _bytesobjects:
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								Bytes Objects
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								-------------
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								These functions raise :exc:`TypeError` when expecting a bytes parameter and are
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								called with a non-bytes parameter.
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								.. index:: object: bytes
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2010-10-06 10:11:56 +00:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								.. c:type:: PyBytesObject
							 | 
						
					
						
							
								
									
										
										
										
											2008-05-26 15:01:55 +00:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2010-10-06 10:11:56 +00:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								   This subtype of :c:type:`PyObject` represents a Python bytes object.
							 | 
						
					
						
							
								
									
										
										
										
											2008-05-26 15:01:55 +00:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2010-10-06 10:11:56 +00:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								.. c:var:: PyTypeObject PyBytes_Type
							 | 
						
					
						
							
								
									
										
										
										
											2008-05-26 15:01:55 +00:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2010-10-06 10:11:56 +00:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								   This instance of :c:type:`PyTypeObject` represents the Python bytes type; it
							 | 
						
					
						
							
								
									
										
										
										
											2010-10-17 10:59:41 +00:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								   is the same object as :class:`bytes` in the Python layer.
							 | 
						
					
						
							
								
									
										
										
										
											2008-05-26 15:01:55 +00:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2010-10-06 10:11:56 +00:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								.. c:function:: int PyBytes_Check(PyObject *o)
							 | 
						
					
						
							
								
									
										
										
										
											2008-05-26 15:01:55 +00:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   Return true if the object *o* is a bytes object or an instance of a subtype
							 | 
						
					
						
							
								
									
										
										
										
											2021-01-06 12:38:26 +01:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								   of the bytes type.  This function always succeeds.
							 | 
						
					
						
							
								
									
										
										
										
											2008-05-26 15:01:55 +00:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2010-10-06 10:11:56 +00:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								.. c:function:: int PyBytes_CheckExact(PyObject *o)
							 | 
						
					
						
							
								
									
										
										
										
											2008-05-26 15:01:55 +00:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   Return true if the object *o* is a bytes object, but not an instance of a
							 | 
						
					
						
							
								
									
										
										
										
											2021-01-06 12:38:26 +01:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								   subtype of the bytes type.  This function always succeeds.
							 | 
						
					
						
							
								
									
										
										
										
											2008-05-26 15:01:55 +00:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2010-10-06 10:11:56 +00:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								.. c:function:: PyObject* PyBytes_FromString(const char *v)
							 | 
						
					
						
							
								
									
										
										
										
											2008-05-26 15:01:55 +00:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   Return a new bytes object with a copy of the string *v* as value on success,
							 | 
						
					
						
							
								
									
										
										
										
											2019-10-30 12:03:20 +02:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								   and ``NULL`` on failure.  The parameter *v* must not be ``NULL``; it will not be
							 | 
						
					
						
							
								
									
										
										
										
											2008-05-26 15:01:55 +00:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   checked.
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2010-10-06 10:11:56 +00:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								.. c:function:: PyObject* PyBytes_FromStringAndSize(const char *v, Py_ssize_t len)
							 | 
						
					
						
							
								
									
										
										
										
											2008-05-26 15:01:55 +00:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   Return a new bytes object with a copy of the string *v* as value and length
							 | 
						
					
						
							
								
									
										
										
										
											2019-10-30 12:03:20 +02:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								   *len* on success, and ``NULL`` on failure.  If *v* is ``NULL``, the contents of
							 | 
						
					
						
							
								
									
										
										
										
											2008-05-26 15:01:55 +00:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   the bytes object are uninitialized.
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2010-10-06 10:11:56 +00:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								.. c:function:: PyObject* PyBytes_FromFormat(const char *format, ...)
							 | 
						
					
						
							
								
									
										
										
										
											2008-05-26 15:01:55 +00:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2010-10-06 10:11:56 +00:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								   Take a C :c:func:`printf`\ -style *format* string and a variable number of
							 | 
						
					
						
							
								
									
										
										
										
											2008-05-26 15:01:55 +00:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   arguments, calculate the size of the resulting Python bytes object and return
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   a bytes object with the values formatted into it.  The variable arguments
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   must be C types and must correspond exactly to the format characters in the
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   *format* string.  The following format characters are allowed:
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   .. % XXX: This should be exactly the same as the table in PyErr_Format.
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   .. % One should just refer to the other.
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   .. % XXX: The descriptions for %zd and %zu are wrong, but the truth is complicated
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   .. % because not all compilers support the %z width modifier -- we fake it
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   .. % when necessary via interpolating PY_FORMAT_SIZE_T.
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2013-03-28 13:28:44 +01:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								   .. tabularcolumns:: |l|l|L|
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2008-05-26 15:01:55 +00:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   +-------------------+---------------+--------------------------------+
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   | Format Characters | Type          | Comment                        |
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   +===================+===============+================================+
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   | :attr:`%%`        | *n/a*         | The literal % character.       |
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   +-------------------+---------------+--------------------------------+
							 | 
						
					
						
							
								
									
										
										
										
											2015-05-13 20:31:53 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								   | :attr:`%c`        | int           | A single byte,                 |
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   |                   |               | represented as a C int.        |
							 | 
						
					
						
							
								
									
										
										
										
											2008-05-26 15:01:55 +00:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   +-------------------+---------------+--------------------------------+
							 | 
						
					
						
							
								
									
										
										
										
											2017-04-27 11:36:35 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								   | :attr:`%d`        | int           | Equivalent to                  |
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   |                   |               | ``printf("%d")``. [1]_         |
							 | 
						
					
						
							
								
									
										
										
										
											2008-05-26 15:01:55 +00:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   +-------------------+---------------+--------------------------------+
							 | 
						
					
						
							
								
									
										
										
										
											2017-04-27 11:36:35 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								   | :attr:`%u`        | unsigned int  | Equivalent to                  |
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   |                   |               | ``printf("%u")``. [1]_         |
							 | 
						
					
						
							
								
									
										
										
										
											2008-05-26 15:01:55 +00:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   +-------------------+---------------+--------------------------------+
							 | 
						
					
						
							
								
									
										
										
										
											2017-04-27 11:36:35 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								   | :attr:`%ld`       | long          | Equivalent to                  |
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   |                   |               | ``printf("%ld")``. [1]_        |
							 | 
						
					
						
							
								
									
										
										
										
											2008-05-26 15:01:55 +00:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   +-------------------+---------------+--------------------------------+
							 | 
						
					
						
							
								
									
										
										
										
											2017-04-27 11:36:35 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								   | :attr:`%lu`       | unsigned long | Equivalent to                  |
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   |                   |               | ``printf("%lu")``. [1]_        |
							 | 
						
					
						
							
								
									
										
										
										
											2008-05-26 15:01:55 +00:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   +-------------------+---------------+--------------------------------+
							 | 
						
					
						
							
								
									
										
										
										
											2017-04-27 11:36:35 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								   | :attr:`%zd`       | Py_ssize_t    | Equivalent to                  |
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   |                   |               | ``printf("%zd")``. [1]_        |
							 | 
						
					
						
							
								
									
										
										
										
											2008-05-26 15:01:55 +00:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   +-------------------+---------------+--------------------------------+
							 | 
						
					
						
							
								
									
										
										
										
											2017-04-27 11:36:35 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								   | :attr:`%zu`       | size_t        | Equivalent to                  |
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   |                   |               | ``printf("%zu")``. [1]_        |
							 | 
						
					
						
							
								
									
										
										
										
											2008-05-26 15:01:55 +00:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   +-------------------+---------------+--------------------------------+
							 | 
						
					
						
							
								
									
										
										
										
											2017-04-27 11:36:35 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								   | :attr:`%i`        | int           | Equivalent to                  |
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   |                   |               | ``printf("%i")``. [1]_         |
							 | 
						
					
						
							
								
									
										
										
										
											2008-05-26 15:01:55 +00:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   +-------------------+---------------+--------------------------------+
							 | 
						
					
						
							
								
									
										
										
										
											2017-04-27 11:36:35 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								   | :attr:`%x`        | int           | Equivalent to                  |
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   |                   |               | ``printf("%x")``. [1]_         |
							 | 
						
					
						
							
								
									
										
										
										
											2008-05-26 15:01:55 +00:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   +-------------------+---------------+--------------------------------+
							 | 
						
					
						
							
								
									
										
										
										
											2017-03-30 10:01:03 +03:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								   | :attr:`%s`        | const char\*  | A null-terminated C character  |
							 | 
						
					
						
							
								
									
										
										
										
											2008-05-26 15:01:55 +00:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   |                   |               | array.                         |
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   +-------------------+---------------+--------------------------------+
							 | 
						
					
						
							
								
									
										
										
										
											2017-03-30 10:01:03 +03:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								   | :attr:`%p`        | const void\*  | The hex representation of a C  |
							 | 
						
					
						
							
								
									
										
										
										
											2008-05-26 15:01:55 +00:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   |                   |               | pointer. Mostly equivalent to  |
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   |                   |               | ``printf("%p")`` except that   |
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   |                   |               | it is guaranteed to start with |
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   |                   |               | the literal ``0x`` regardless  |
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   |                   |               | of what the platform's         |
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   |                   |               | ``printf`` yields.             |
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   +-------------------+---------------+--------------------------------+
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   An unrecognized format character causes all the rest of the format string to be
							 | 
						
					
						
							
								
									
										
										
										
											2015-05-13 20:31:53 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								   copied as-is to the result object, and any extra arguments discarded.
							 | 
						
					
						
							
								
									
										
										
										
											2008-05-26 15:01:55 +00:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2017-04-27 11:36:35 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								   .. [1] For integer specifiers (d, u, ld, lu, zd, zu, i, x): the 0-conversion
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								      flag has effect even when a precision is given.
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2008-05-26 15:01:55 +00:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2010-10-06 10:11:56 +00:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								.. c:function:: PyObject* PyBytes_FromFormatV(const char *format, va_list vargs)
							 | 
						
					
						
							
								
									
										
										
										
											2008-05-26 15:01:55 +00:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2010-10-06 10:11:56 +00:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								   Identical to :c:func:`PyBytes_FromFormat` except that it takes exactly two
							 | 
						
					
						
							
								
									
										
										
										
											2008-05-26 15:01:55 +00:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   arguments.
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2010-10-06 10:11:56 +00:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								.. c:function:: PyObject* PyBytes_FromObject(PyObject *o)
							 | 
						
					
						
							
								
									
										
										
										
											2008-08-26 16:46:47 +00:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   Return the bytes representation of object *o* that implements the buffer
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   protocol.
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2010-10-06 10:11:56 +00:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								.. c:function:: Py_ssize_t PyBytes_Size(PyObject *o)
							 | 
						
					
						
							
								
									
										
										
										
											2008-05-26 15:01:55 +00:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   Return the length of the bytes in bytes object *o*.
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2010-10-06 10:11:56 +00:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								.. c:function:: Py_ssize_t PyBytes_GET_SIZE(PyObject *o)
							 | 
						
					
						
							
								
									
										
										
										
											2008-05-26 15:01:55 +00:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2010-10-06 10:11:56 +00:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								   Macro form of :c:func:`PyBytes_Size` but without error checking.
							 | 
						
					
						
							
								
									
										
										
										
											2008-05-26 15:01:55 +00:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2010-10-06 10:11:56 +00:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								.. c:function:: char* PyBytes_AsString(PyObject *o)
							 | 
						
					
						
							
								
									
										
										
										
											2008-05-26 15:01:55 +00:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2015-05-13 20:31:53 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								   Return a pointer to the contents of *o*.  The pointer
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   refers to the internal buffer of *o*, which consists of ``len(o) + 1``
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   bytes.  The last byte in the buffer is always null, regardless of
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   whether there are any other null bytes.  The data must not be
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   modified in any way, unless the object was just created using
							 | 
						
					
						
							
								
									
										
										
										
											2008-05-26 15:01:55 +00:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   ``PyBytes_FromStringAndSize(NULL, size)``. It must not be deallocated.  If
							 | 
						
					
						
							
								
									
										
										
										
											2019-10-30 12:03:20 +02:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								   *o* is not a bytes object at all, :c:func:`PyBytes_AsString` returns ``NULL``
							 | 
						
					
						
							
								
									
										
										
										
											2008-05-26 15:01:55 +00:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   and raises :exc:`TypeError`.
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2010-10-06 10:11:56 +00:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								.. c:function:: char* PyBytes_AS_STRING(PyObject *string)
							 | 
						
					
						
							
								
									
										
										
										
											2008-05-26 15:01:55 +00:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2010-10-06 10:11:56 +00:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								   Macro form of :c:func:`PyBytes_AsString` but without error checking.
							 | 
						
					
						
							
								
									
										
										
										
											2008-05-26 15:01:55 +00:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2010-10-06 10:11:56 +00:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								.. c:function:: int PyBytes_AsStringAndSize(PyObject *obj, char **buffer, Py_ssize_t *length)
							 | 
						
					
						
							
								
									
										
										
										
											2008-05-26 15:01:55 +00:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2015-05-13 20:31:53 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								   Return the null-terminated contents of the object *obj*
							 | 
						
					
						
							
								
									
										
										
										
											2008-05-26 15:01:55 +00:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   through the output variables *buffer* and *length*.
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2019-10-30 12:03:20 +02:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								   If *length* is ``NULL``, the bytes object
							 | 
						
					
						
							
								
									
										
										
										
											2015-05-13 20:31:53 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								   may not contain embedded null bytes;
							 | 
						
					
						
							
								
									
										
										
										
											2016-07-12 09:14:15 +03:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								   if it does, the function returns ``-1`` and a :exc:`ValueError` is raised.
							 | 
						
					
						
							
								
									
										
										
										
											2008-05-26 15:01:55 +00:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2015-05-13 20:31:53 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								   The buffer refers to an internal buffer of *obj*, which includes an
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   additional null byte at the end (not counted in *length*).  The data
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   must not be modified in any way, unless the object was just created using
							 | 
						
					
						
							
								
									
										
										
										
											2008-05-26 15:01:55 +00:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   ``PyBytes_FromStringAndSize(NULL, size)``.  It must not be deallocated.  If
							 | 
						
					
						
							
								
									
										
										
										
											2015-05-13 20:31:53 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								   *obj* is not a bytes object at all, :c:func:`PyBytes_AsStringAndSize`
							 | 
						
					
						
							
								
									
										
										
										
											2008-05-26 15:01:55 +00:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   returns ``-1`` and raises :exc:`TypeError`.
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2016-07-12 09:14:15 +03:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								   .. versionchanged:: 3.5
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								      Previously, :exc:`TypeError` was raised when embedded null bytes were
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								      encountered in the bytes object.
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2008-05-26 15:01:55 +00:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2010-10-06 10:11:56 +00:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								.. c:function:: void PyBytes_Concat(PyObject **bytes, PyObject *newpart)
							 | 
						
					
						
							
								
									
										
										
										
											2008-05-26 15:01:55 +00:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   Create a new bytes object in *\*bytes* containing the contents of *newpart*
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   appended to *bytes*; the caller will own the new reference.  The reference to
							 | 
						
					
						
							
								
									
										
										
										
											2015-05-13 20:31:53 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								   the old value of *bytes* will be stolen.  If the new object cannot be
							 | 
						
					
						
							
								
									
										
										
										
											2008-05-26 15:01:55 +00:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   created, the old reference to *bytes* will still be discarded and the value
							 | 
						
					
						
							
								
									
										
										
										
											2019-10-30 12:03:20 +02:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								   of *\*bytes* will be set to ``NULL``; the appropriate exception will be set.
							 | 
						
					
						
							
								
									
										
										
										
											2008-05-26 15:01:55 +00:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2010-10-06 10:11:56 +00:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								.. c:function:: void PyBytes_ConcatAndDel(PyObject **bytes, PyObject *newpart)
							 | 
						
					
						
							
								
									
										
										
										
											2008-05-26 15:01:55 +00:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2015-05-13 20:31:53 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								   Create a new bytes object in *\*bytes* containing the contents of *newpart*
							 | 
						
					
						
							
								
									
										
										
										
											2008-05-26 15:01:55 +00:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   appended to *bytes*.  This version decrements the reference count of
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   *newpart*.
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2010-10-06 10:11:56 +00:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								.. c:function:: int _PyBytes_Resize(PyObject **bytes, Py_ssize_t newsize)
							 | 
						
					
						
							
								
									
										
										
										
											2008-05-26 15:01:55 +00:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   A way to resize a bytes object even though it is "immutable". Only use this
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   to build up a brand new bytes object; don't use this if the bytes may already
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   be known in other parts of the code.  It is an error to call this function if
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   the refcount on the input bytes object is not one. Pass the address of an
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   existing bytes object as an lvalue (it may be written into), and the new size
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   desired.  On success, *\*bytes* holds the resized bytes object and ``0`` is
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   returned; the address in *\*bytes* may differ from its input value.  If the
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   reallocation fails, the original bytes object at *\*bytes* is deallocated,
							 | 
						
					
						
							
								
									
										
										
										
											2019-10-30 12:03:20 +02:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								   *\*bytes* is set to ``NULL``, :exc:`MemoryError` is set, and ``-1`` is
							 | 
						
					
						
							
								
									
										
										
										
											2008-05-26 15:01:55 +00:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								   returned.
							 |