summaryrefslogtreecommitdiffstats
path: root/Include/cpython
diff options
context:
space:
mode:
authorVictor Stinner <vstinner@python.org>2022-04-06 23:05:27 (GMT)
committerGitHub <noreply@github.com>2022-04-06 23:05:27 (GMT)
commitca219f6dfc57f8f4984f96df0f733b7de92fe91c (patch)
tree0accddd1872a266bd1da71bd29464adf3071a24b /Include/cpython
parent612e422c6ea9df60d3382ed1491d8254c283e93f (diff)
downloadcpython-ca219f6dfc57f8f4984f96df0f733b7de92fe91c.zip
cpython-ca219f6dfc57f8f4984f96df0f733b7de92fe91c.tar.gz
cpython-ca219f6dfc57f8f4984f96df0f733b7de92fe91c.tar.bz2
bpo-35134: Add Include/cpython/complexobject.h header (GH-32383)
Move the private _PyComplex_FormatAdvancedWriter() function to the internal C API. This function is no longer exported.
Diffstat (limited to 'Include/cpython')
-rw-r--r--Include/cpython/complexobject.h44
1 files changed, 44 insertions, 0 deletions
diff --git a/Include/cpython/complexobject.h b/Include/cpython/complexobject.h
new file mode 100644
index 0000000..b7d7283
--- /dev/null
+++ b/Include/cpython/complexobject.h
@@ -0,0 +1,44 @@
+#ifndef Py_CPYTHON_COMPLEXOBJECT_H
+# error "this header file must not be included directly"
+#endif
+
+typedef struct {
+ double real;
+ double imag;
+} Py_complex;
+
+/* Operations on complex numbers from complexmodule.c */
+
+PyAPI_FUNC(Py_complex) _Py_c_sum(Py_complex, Py_complex);
+PyAPI_FUNC(Py_complex) _Py_c_diff(Py_complex, Py_complex);
+PyAPI_FUNC(Py_complex) _Py_c_neg(Py_complex);
+PyAPI_FUNC(Py_complex) _Py_c_prod(Py_complex, Py_complex);
+PyAPI_FUNC(Py_complex) _Py_c_quot(Py_complex, Py_complex);
+PyAPI_FUNC(Py_complex) _Py_c_pow(Py_complex, Py_complex);
+PyAPI_FUNC(double) _Py_c_abs(Py_complex);
+
+/* Complex object interface */
+
+/*
+PyComplexObject represents a complex number with double-precision
+real and imaginary parts.
+*/
+typedef struct {
+ PyObject_HEAD
+ Py_complex cval;
+} PyComplexObject;
+
+PyAPI_FUNC(PyObject *) PyComplex_FromCComplex(Py_complex);
+
+PyAPI_FUNC(Py_complex) PyComplex_AsCComplex(PyObject *op);
+
+#ifdef Py_BUILD_CORE
+/* Format the object based on the format_spec, as defined in PEP 3101
+ (Advanced String Formatting). */
+extern int _PyComplex_FormatAdvancedWriter(
+ _PyUnicodeWriter *writer,
+ PyObject *obj,
+ PyObject *format_spec,
+ Py_ssize_t start,
+ Py_ssize_t end);
+#endif // Py_BUILD_CORE