@@ -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]*/
66576667DecCtx_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]*/
66586678DecCtx_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]*/
66596689DecCtx_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]*/
66606700DecCtx_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]*/
66616711DecCtx_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]*/
66626722DecCtx_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]*/
66646733DecCtx_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]*/
66656755DecCtx_BoolFunc_NO_CTX (mpd_iszero )
66666756
66676757static 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 */
0 commit comments