Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 43 additions & 0 deletions Doc/c-api/exceptions.rst
Original file line number Diff line number Diff line change
Expand Up @@ -394,6 +394,15 @@ an error value).
.. versionadded:: 3.2


.. c:function:: int PyErr_WarnExplicitFormat(PyObject *category, const char *filename, int lineno, const char *module, PyObject *registry, const char *format, ...)

Similar to :c:func:`PyErr_WarnExplicit`, but uses
:c:func:`PyUnicode_FromFormat` to format the warning message. *format* is
an ASCII-encoded string.

.. versionadded:: 3.2


.. c:function:: int PyErr_ResourceWarning(PyObject *source, Py_ssize_t stack_level, const char *format, ...)

Function similar to :c:func:`PyErr_WarnFormat`, but *category* is
Expand Down Expand Up @@ -1228,3 +1237,37 @@ Warning types

.. versionadded:: 3.10
:c:data:`PyExc_EncodingWarning`.


Tracebacks
==========

.. c:var:: PyTypeObject PyTraceBack_Type

Type object for traceback objects. This is available as
:class:`types.TracebackType` in the Python layer.


.. c:function:: int PyTraceBack_Check(PyObject *op)

Return true if *op* is a traceback object, false otherwise. This function
does not account for subtypes.


.. c:function:: int PyTraceBack_Here(PyFrameObject *f)

Replace the :attr:`~BaseException.__traceback__` attribute on the current
exception with a new traceback prepending *f* to the existing chain.

Calling this function without an exception set is undefined behavior.

This function returns ``0`` on success, and returns ``-1`` with an
exception set on failure.


.. c:function:: int PyTraceBack_Print(PyObject *tb, PyObject *f)

Write the traceback *tb* into the file *f*.

This function returns ``0`` on success, and returns ``-1`` with an
exception set on failure.
54 changes: 53 additions & 1 deletion Doc/c-api/hash.rst
Original file line number Diff line number Diff line change
Expand Up @@ -11,42 +11,94 @@ See also the :c:member:`PyTypeObject.tp_hash` member and :ref:`numeric-hash`.

.. versionadded:: 3.2


.. c:type:: Py_uhash_t

Hash value type: unsigned integer.

.. versionadded:: 3.2


.. c:macro:: Py_HASH_ALGORITHM

A numerical value indicating the algorithm for hashing of :class:`str`,
:class:`bytes`, and :class:`memoryview`.

The algorithm name is exposed by :data:`sys.hash_info.algorithm`.

.. versionadded:: 3.4


.. c:macro:: Py_HASH_FNV
Py_HASH_SIPHASH24
Py_HASH_SIPHASH13

Numerical values to compare to :c:macro:`Py_HASH_ALGORITHM` to determine
which algorithm is used for hashing. The hash algorithm can be configured
via the configure :option:`--with-hash-algorithm` option.

.. versionadded:: 3.4
Add :c:macro:`!Py_HASH_FNV` and :c:macro:`!Py_HASH_SIPHASH24`.

.. versionadded:: 3.13
Add :c:macro:`!Py_HASH_SIPHASH13`.


.. c:macro:: Py_HASH_CUTOFF

Buffers of length in range ``[1, Py_HASH_CUTOFF)`` are hashed using DJBX33A
instead of the algorithm described by :c:macro:`Py_HASH_ALGORITHM`.

- A :c:macro:`!Py_HASH_CUTOFF` of 0 disables the optimization.
- :c:macro:`!Py_HASH_CUTOFF` must be non-negative and less or equal than 7.

32-bit platforms should use a cutoff smaller than 64-bit platforms because
it is easier to create colliding strings. A cutoff of 7 on 64-bit platforms
and 5 on 32-bit platforms should provide a decent safety margin.

.. versionadded:: 3.4


.. c:macro:: PyHASH_MODULUS

The `Mersenne prime <https://en.wikipedia.org/wiki/Mersenne_prime>`_ ``P = 2**n -1``, used for numeric hash scheme.
The `Mersenne prime <https://en.wikipedia.org/wiki/Mersenne_prime>`_ ``P = 2**n -1``,
used for numeric hash scheme.
This corresponds to the :data:`sys.hash_info.modulus` constant.

.. versionadded:: 3.13


.. c:macro:: PyHASH_BITS

The exponent ``n`` of ``P`` in :c:macro:`PyHASH_MODULUS`.
This corresponds to the :data:`sys.hash_info.hash_bits` constant.

.. versionadded:: 3.13


.. c:macro:: PyHASH_MULTIPLIER

Prime multiplier used in string and various other hashes.

.. versionadded:: 3.13


.. c:macro:: PyHASH_INF

The hash value returned for a positive infinity.
This corresponds to the :data:`sys.hash_info.inf` constant.

.. versionadded:: 3.13


.. c:macro:: PyHASH_IMAG

The multiplier used for the imaginary part of a complex number.
This corresponds to the :data:`sys.hash_info.imag` constant.

.. versionadded:: 3.13


.. c:type:: PyHash_FuncDef

Hash function definition used by :c:func:`PyHash_GetFuncDef`.
Expand Down
Loading