Skip to content

Commit 3c66cf5

Browse files
committed
+1
1 parent e4d3775 commit 3c66cf5

File tree

3 files changed

+188
-62
lines changed

3 files changed

+188
-62
lines changed

Modules/_decimal/_decimal.c

Lines changed: 106 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -6023,13 +6023,11 @@ static PyType_Spec dec_spec = {
60236023

60246024
/* Boolean context method. */
60256025
#define DecCtx_BoolFunc(MPDFUNC) \
6026-
static PyObject * \
6027-
ctx_##MPDFUNC(PyObject *context, PyObject *v) \
60286026
{ \
60296027
PyObject *ret; \
60306028
PyObject *a; \
60316029
\
6032-
CONVERT_OP_RAISE(&a, v, context); \
6030+
CONVERT_OP_RAISE(&a, x, context); \
60336031
\
60346032
ret = MPDFUNC(MPD(a), CTX(context)) ? incr_true() : incr_false(); \
60356033
Py_DECREF(a); \
@@ -6038,13 +6036,11 @@ ctx_##MPDFUNC(PyObject *context, PyObject *v) \
60386036

60396037
/* Boolean context method. MPDFUNC does NOT use a context. */
60406038
#define DecCtx_BoolFunc_NO_CTX(MPDFUNC) \
6041-
static PyObject * \
6042-
ctx_##MPDFUNC(PyObject *context, PyObject *v) \
60436039
{ \
60446040
PyObject *ret; \
60456041
PyObject *a; \
60466042
\
6047-
CONVERT_OP_RAISE(&a, v, context); \
6043+
CONVERT_OP_RAISE(&a, x, context); \
60486044
\
60496045
ret = MPDFUNC(MPD(a)) ? incr_true() : incr_false(); \
60506046
Py_DECREF(a); \
@@ -6654,14 +6650,108 @@ _decimal_Context_radix_impl(PyObject *context)
66546650
}
66556651

66566652
/* Boolean functions: single decimal argument */
6653+
6654+
/*[clinic input]
6655+
_decimal.Context.is_normal
6656+
6657+
self as context: self
6658+
x: object
6659+
/
6660+
6661+
Return True if x is a normal number, False otherwise.
6662+
[clinic start generated code]*/
6663+
6664+
static PyObject *
6665+
_decimal_Context_is_normal(PyObject *context, PyObject *x)
6666+
/*[clinic end generated code: output=fed613aed8b286de input=1e7ff3f560842b8d]*/
66576667
DecCtx_BoolFunc(mpd_isnormal)
6668+
6669+
/*[clinic input]
6670+
_decimal.Context.is_subnormal = _decimal.Context.is_normal
6671+
6672+
Return True if x is subnormal, False otherwise.
6673+
[clinic start generated code]*/
6674+
6675+
static PyObject *
6676+
_decimal_Context_is_subnormal(PyObject *context, PyObject *x)
6677+
/*[clinic end generated code: output=834450c602d58759 input=73f1bd9367b913a4]*/
66586678
DecCtx_BoolFunc(mpd_issubnormal)
6679+
6680+
/*[clinic input]
6681+
_decimal.Context.is_finite = _decimal.Context.is_normal
6682+
6683+
Return True if x is finite, False otherwise.
6684+
[clinic start generated code]*/
6685+
6686+
static PyObject *
6687+
_decimal_Context_is_finite(PyObject *context, PyObject *x)
6688+
/*[clinic end generated code: output=45606d2f56874fef input=abff92a8a6bb85e6]*/
66596689
DecCtx_BoolFunc_NO_CTX(mpd_isfinite)
6690+
6691+
/*[clinic input]
6692+
_decimal.Context.is_infinite = _decimal.Context.is_normal
6693+
6694+
Return True if x is infinite, False otherwise.
6695+
[clinic start generated code]*/
6696+
6697+
static PyObject *
6698+
_decimal_Context_is_infinite(PyObject *context, PyObject *x)
6699+
/*[clinic end generated code: output=35c480cd0a2c3cf9 input=591242ae9a1e60e6]*/
66606700
DecCtx_BoolFunc_NO_CTX(mpd_isinfinite)
6701+
6702+
/*[clinic input]
6703+
_decimal.Context.is_nan = _decimal.Context.is_normal
6704+
6705+
Return True if x is a qNaN or sNaN, False otherwise.
6706+
[clinic start generated code]*/
6707+
6708+
static PyObject *
6709+
_decimal_Context_is_nan(PyObject *context, PyObject *x)
6710+
/*[clinic end generated code: output=cb529f55bf3106b3 input=520218376d5eec5e]*/
66616711
DecCtx_BoolFunc_NO_CTX(mpd_isnan)
6712+
6713+
/*[clinic input]
6714+
_decimal.Context.is_qnan = _decimal.Context.is_normal
6715+
6716+
Return True if x is a quiet NaN, False otherwise.
6717+
[clinic start generated code]*/
6718+
6719+
static PyObject *
6720+
_decimal_Context_is_qnan(PyObject *context, PyObject *x)
6721+
/*[clinic end generated code: output=3e2e750eb643db1d input=97d06a14ab3360d1]*/
66626722
DecCtx_BoolFunc_NO_CTX(mpd_isqnan)
6663-
DecCtx_BoolFunc_NO_CTX(mpd_issigned)
6723+
6724+
/*[clinic input]
6725+
_decimal.Context.is_snan = _decimal.Context.is_normal
6726+
6727+
Return True if x is a signaling NaN, False otherwise.
6728+
[clinic start generated code]*/
6729+
6730+
static PyObject *
6731+
_decimal_Context_is_snan(PyObject *context, PyObject *x)
6732+
/*[clinic end generated code: output=a7ead03a2dfa15e4 input=0059fe4e9c3b25a8]*/
66646733
DecCtx_BoolFunc_NO_CTX(mpd_issnan)
6734+
6735+
/*[clinic input]
6736+
_decimal.Context.is_signed = _decimal.Context.is_normal
6737+
6738+
Return True if x is negative, False otherwise.
6739+
[clinic start generated code]*/
6740+
6741+
static PyObject *
6742+
_decimal_Context_is_signed(PyObject *context, PyObject *x)
6743+
/*[clinic end generated code: output=c85cc15479d5ed47 input=b950cd697721ab8b]*/
6744+
DecCtx_BoolFunc_NO_CTX(mpd_issigned)
6745+
6746+
/*[clinic input]
6747+
_decimal.Context.is_zero = _decimal.Context.is_normal
6748+
6749+
Return True if x is a zero, False otherwise.
6750+
[clinic start generated code]*/
6751+
6752+
static PyObject *
6753+
_decimal_Context_is_zero(PyObject *context, PyObject *x)
6754+
/*[clinic end generated code: output=24150f3c2422ebf8 input=bf08197d142a8027]*/
66656755
DecCtx_BoolFunc_NO_CTX(mpd_iszero)
66666756

66676757
static PyObject *
@@ -7015,15 +7105,15 @@ static PyMethodDef context_methods [] =
70157105

70167106
/* Boolean functions */
70177107
{ "is_canonical", ctx_iscanonical, METH_O, doc_ctx_is_canonical },
7018-
{ "is_finite", ctx_mpd_isfinite, METH_O, doc_ctx_is_finite },
7019-
{ "is_infinite", ctx_mpd_isinfinite, METH_O, doc_ctx_is_infinite },
7020-
{ "is_nan", ctx_mpd_isnan, METH_O, doc_ctx_is_nan },
7021-
{ "is_normal", ctx_mpd_isnormal, METH_O, doc_ctx_is_normal },
7022-
{ "is_qnan", ctx_mpd_isqnan, METH_O, doc_ctx_is_qnan },
7023-
{ "is_signed", ctx_mpd_issigned, METH_O, doc_ctx_is_signed },
7024-
{ "is_snan", ctx_mpd_issnan, METH_O, doc_ctx_is_snan },
7025-
{ "is_subnormal", ctx_mpd_issubnormal, METH_O, doc_ctx_is_subnormal },
7026-
{ "is_zero", ctx_mpd_iszero, METH_O, doc_ctx_is_zero },
7108+
_DECIMAL_CONTEXT_IS_FINITE_METHODDEF
7109+
_DECIMAL_CONTEXT_IS_INFINITE_METHODDEF
7110+
_DECIMAL_CONTEXT_IS_NAN_METHODDEF
7111+
_DECIMAL_CONTEXT_IS_NORMAL_METHODDEF
7112+
_DECIMAL_CONTEXT_IS_QNAN_METHODDEF
7113+
_DECIMAL_CONTEXT_IS_SIGNED_METHODDEF
7114+
_DECIMAL_CONTEXT_IS_SNAN_METHODDEF
7115+
_DECIMAL_CONTEXT_IS_SUBNORMAL_METHODDEF
7116+
_DECIMAL_CONTEXT_IS_ZERO_METHODDEF
70277117

70287118
/* Functions with a single decimal argument */
70297119
{ "_apply", PyDecContext_Apply, METH_O, NULL }, /* alias for apply */

Modules/_decimal/clinic/_decimal.c.h

Lines changed: 82 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Modules/_decimal/docstrings.h

Lines changed: 0 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -107,51 +107,6 @@ PyDoc_STRVAR(doc_ctx_is_canonical,
107107
Return True if x is canonical, False otherwise.\n\
108108
\n");
109109

110-
PyDoc_STRVAR(doc_ctx_is_finite,
111-
"is_finite($self, x, /)\n--\n\n\
112-
Return True if x is finite, False otherwise.\n\
113-
\n");
114-
115-
PyDoc_STRVAR(doc_ctx_is_infinite,
116-
"is_infinite($self, x, /)\n--\n\n\
117-
Return True if x is infinite, False otherwise.\n\
118-
\n");
119-
120-
PyDoc_STRVAR(doc_ctx_is_nan,
121-
"is_nan($self, x, /)\n--\n\n\
122-
Return True if x is a qNaN or sNaN, False otherwise.\n\
123-
\n");
124-
125-
PyDoc_STRVAR(doc_ctx_is_normal,
126-
"is_normal($self, x, /)\n--\n\n\
127-
Return True if x is a normal number, False otherwise.\n\
128-
\n");
129-
130-
PyDoc_STRVAR(doc_ctx_is_qnan,
131-
"is_qnan($self, x, /)\n--\n\n\
132-
Return True if x is a quiet NaN, False otherwise.\n\
133-
\n");
134-
135-
PyDoc_STRVAR(doc_ctx_is_signed,
136-
"is_signed($self, x, /)\n--\n\n\
137-
Return True if x is negative, False otherwise.\n\
138-
\n");
139-
140-
PyDoc_STRVAR(doc_ctx_is_snan,
141-
"is_snan($self, x, /)\n--\n\n\
142-
Return True if x is a signaling NaN, False otherwise.\n\
143-
\n");
144-
145-
PyDoc_STRVAR(doc_ctx_is_subnormal,
146-
"is_subnormal($self, x, /)\n--\n\n\
147-
Return True if x is subnormal, False otherwise.\n\
148-
\n");
149-
150-
PyDoc_STRVAR(doc_ctx_is_zero,
151-
"is_zero($self, x, /)\n--\n\n\
152-
Return True if x is a zero, False otherwise.\n\
153-
\n");
154-
155110
PyDoc_STRVAR(doc_ctx_normalize,
156111
"normalize($self, x, /)\n--\n\n\
157112
Reduce x to its simplest form. Alias for reduce(x).\n\

0 commit comments

Comments
 (0)