[Python-checkins] cpython (3.2): Issue #13522: document error return values of some float and complex C API

antoine.pitrou python-checkins at python.org
Sun Dec 18 01:29:00 CET 2011


http://hg.python.org/cpython/rev/68cbf6551710
changeset:   74023:68cbf6551710
branch:      3.2
parent:      74020:beac7d6c7be4
user:        Antoine Pitrou <solipsis at pitrou.net>
date:        Sun Dec 18 01:25:27 2011 +0100
summary:
  Issue #13522: document error return values of some float and complex C API functions.

files:
  Doc/c-api/complex.rst |  8 +++++++-
  Doc/c-api/float.rst   |  2 ++
  Misc/ACKS             |  1 +
  3 files changed, 10 insertions(+), 1 deletions(-)


diff --git a/Doc/c-api/complex.rst b/Doc/c-api/complex.rst
--- a/Doc/c-api/complex.rst
+++ b/Doc/c-api/complex.rst
@@ -63,12 +63,18 @@
    Return the quotient of two complex numbers, using the C :c:type:`Py_complex`
    representation.
 
+   If *divisor* is null, this method returns zero and sets
+   :c:data:`errno` to :c:data:`EDOM`.
+
 
 .. c:function:: Py_complex _Py_c_pow(Py_complex num, Py_complex exp)
 
    Return the exponentiation of *num* by *exp*, using the C :c:type:`Py_complex`
    representation.
 
+   If :attr:`exp.imag` is not null, or :attr:`exp.real` is negative,
+   this method returns zero and sets :c:data:`errno` to :c:data:`EDOM`.
+
 
 Complex Numbers as Python Objects
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -123,4 +129,4 @@
 
    If *op* is not a Python complex number object but has a :meth:`__complex__`
    method, this method will first be called to convert *op* to a Python complex
-   number object.
+   number object. Upon failure, this method returns ``-1.0`` as a real value.
diff --git a/Doc/c-api/float.rst b/Doc/c-api/float.rst
--- a/Doc/c-api/float.rst
+++ b/Doc/c-api/float.rst
@@ -47,6 +47,8 @@
    Return a C :c:type:`double` representation of the contents of *pyfloat*.  If
    *pyfloat* is not a Python floating point object but has a :meth:`__float__`
    method, this method will first be called to convert *pyfloat* into a float.
+   This method returns ``-1.0`` upon failure, so one should call
+   :c:func:`PyErr_Occurred` to check for errors.
 
 
 .. c:function:: double PyFloat_AS_DOUBLE(PyObject *pyfloat)
diff --git a/Misc/ACKS b/Misc/ACKS
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -139,6 +139,7 @@
 Lee Busby
 Ralph Butler
 Jp Calderone
+Arnaud Calmettes
 Daniel Calvelo
 Tony Campbell
 Brett Cannon

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list