Commit f0acfeec authored by Mark Dickinson's avatar Mark Dickinson

Issue #12965: Clean up C-API docs for PyLong_AsLongLong(AndOverflow); clarify...

Issue #12965: Clean up C-API docs for PyLong_AsLongLong(AndOverflow); clarify that __int__ will be called for non-PyLongs
parent 0a22924d
...@@ -121,6 +121,7 @@ All integers are implemented as "long" integer objects of arbitrary size. ...@@ -121,6 +121,7 @@ All integers are implemented as "long" integer objects of arbitrary size.
Raise :exc:`OverflowError` if the value of *obj* is out of range for a Raise :exc:`OverflowError` if the value of *obj* is out of range for a
:c:type:`long`. :c:type:`long`.
.. c:function:: long PyLong_AsLongAndOverflow(PyObject *obj, int *overflow) .. c:function:: long PyLong_AsLongAndOverflow(PyObject *obj, int *overflow)
Return a C :c:type:`long` representation of *obj*. If *obj* is not an Return a C :c:type:`long` representation of *obj*. If *obj* is not an
...@@ -133,15 +134,29 @@ All integers are implemented as "long" integer objects of arbitrary size. ...@@ -133,15 +134,29 @@ All integers are implemented as "long" integer objects of arbitrary size.
occurs set *\*overflow* to ``0`` and return ``-1`` as usual. occurs set *\*overflow* to ``0`` and return ``-1`` as usual.
.. c:function:: PY_LONG_LONG PyLong_AsLongLongAndOverflow(PyObject *pylong, int *overflow) .. c:function:: PY_LONG_LONG PyLong_AsLongLong(PyObject *obj)
.. index::
single: OverflowError (built-in exception)
Return a C :c:type:`long long` representation of *obj*. If *obj* is not an
instance of :c:type:`PyLongObject`, first call its :meth:`__int__` method
(if present) to convert it to a :c:type:`PyLongObject`.
Raise :exc:`OverflowError` if the value of *obj* is out of range for a
:c:type:`long`.
Return a C :c:type:`long long` representation of the contents of .. c:function:: PY_LONG_LONG PyLong_AsLongLongAndOverflow(PyObject *obj, int *overflow)
*pylong*. If *pylong* is greater than :const:`PY_LLONG_MAX` or less
than :const:`PY_LLONG_MIN`, set *\*overflow* to ``1`` or ``-1``, Return a C :c:type:`long long` representation of *obj*. If *obj* is not an
respectively, and return ``-1``; otherwise, set *\*overflow* to instance of :c:type:`PyLongObject`, first call its :meth:`__int__` method
``0``. If any other exception occurs (for example a TypeError or (if present) to convert it to a :c:type:`PyLongObject`.
MemoryError), then ``-1`` will be returned and *\*overflow* will
be ``0``. If the value of *obj* is greater than :const:`PY_LLONG_MAX` or less than
:const:`PY_LLONG_MIN`, set *\*overflow* to ``1`` or ``-1``, respectively,
and return ``-1``; otherwise, set *\*overflow* to ``0``. If any other
exception occurs set *\*overflow* to ``0`` and return ``-1`` as usual.
.. versionadded:: 3.2 .. versionadded:: 3.2
...@@ -175,16 +190,6 @@ All integers are implemented as "long" integer objects of arbitrary size. ...@@ -175,16 +190,6 @@ All integers are implemented as "long" integer objects of arbitrary size.
:exc:`OverflowError` is raised. :exc:`OverflowError` is raised.
.. c:function:: PY_LONG_LONG PyLong_AsLongLong(PyObject *pylong)
.. index::
single: OverflowError (built-in exception)
Return a C :c:type:`long long` from a Python integer. If *pylong*
cannot be represented as a :c:type:`long long`, an
:exc:`OverflowError` is raised and ``-1`` is returned.
.. c:function:: unsigned PY_LONG_LONG PyLong_AsUnsignedLongLong(PyObject *pylong) .. c:function:: unsigned PY_LONG_LONG PyLong_AsUnsignedLongLong(PyObject *pylong)
.. index:: .. index::
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment