mirror of
https://github.com/python/cpython.git
synced 2026-04-13 15:20:52 +00:00
gh-141510: support frozendict's in the C decimal module (gh-145165)
This commit is contained in:
parent
c2d3d6b0dd
commit
f3a381e54f
2 changed files with 8 additions and 2 deletions
|
|
@ -3963,15 +3963,21 @@ def test_flag_comparisons(self):
|
|||
d.update(c.flags)
|
||||
self.assertEqual(d, c.flags)
|
||||
self.assertEqual(c.flags, d)
|
||||
self.assertEqual(frozendict(d), c.flags)
|
||||
self.assertEqual(c.flags, frozendict(d))
|
||||
|
||||
d[Inexact] = True
|
||||
self.assertNotEqual(d, c.flags)
|
||||
self.assertNotEqual(c.flags, d)
|
||||
self.assertNotEqual(frozendict(d), c.flags)
|
||||
self.assertNotEqual(c.flags, frozendict(d))
|
||||
|
||||
# Invalid SignalDict
|
||||
d = {Inexact:False}
|
||||
self.assertNotEqual(d, c.flags)
|
||||
self.assertNotEqual(c.flags, d)
|
||||
self.assertNotEqual(frozendict(d), c.flags)
|
||||
self.assertNotEqual(c.flags, frozendict(d))
|
||||
|
||||
d = ["xyz"]
|
||||
self.assertNotEqual(d, c.flags)
|
||||
|
|
|
|||
|
|
@ -552,7 +552,7 @@ dict_as_flags(decimal_state *state, PyObject *val)
|
|||
uint32_t flags = 0;
|
||||
int x;
|
||||
|
||||
if (!PyDict_Check(val)) {
|
||||
if (!PyAnyDict_Check(val)) {
|
||||
PyErr_SetString(PyExc_TypeError,
|
||||
"argument must be a signal dict");
|
||||
return DEC_INVALID_SIGNALS;
|
||||
|
|
@ -802,7 +802,7 @@ signaldict_richcompare(PyObject *v, PyObject *w, int op)
|
|||
if (PyDecSignalDict_Check(state, w)) {
|
||||
res = (SdFlags(v)==SdFlags(w)) ^ (op==Py_NE) ? Py_True : Py_False;
|
||||
}
|
||||
else if (PyDict_Check(w)) {
|
||||
else if (PyAnyDict_Check(w)) {
|
||||
uint32_t flags = dict_as_flags(state, w);
|
||||
if (flags & DEC_ERRORS) {
|
||||
if (flags & DEC_INVALID_SIGNALS) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue