Commit 2b2ea163 authored by Raymond Hettinger's avatar Raymond Hettinger

Changes 54857 and 54840 broke code and were reverted in Py2.5 just before

it was released, but that reversion never made it to the Py2.6 head.
parent bca9594e
......@@ -200,14 +200,6 @@ class DictTest(unittest.TestCase):
self.assertRaises(ValueError, {}.update, [(1, 2, 3)])
# SF #1615701: make d.update(m) honor __getitem__() and keys() in dict subclasses
class KeyUpperDict(dict):
def __getitem__(self, key):
return key.upper()
d.clear()
d.update(KeyUpperDict.fromkeys('abc'))
self.assertEqual(d, {'a':'A', 'b':'B', 'c':'C'})
def test_fromkeys(self):
self.assertEqual(dict.fromkeys('abc'), {'a':None, 'b':None, 'c':None})
d = {}
......
......@@ -1406,7 +1406,7 @@ PyDict_Merge(PyObject *a, PyObject *b, int override)
return -1;
}
mp = (PyDictObject*)a;
if (PyDict_CheckExact(b)) {
if (PyDict_Check(b)) {
other = (PyDictObject*)b;
if (other == mp || other->ma_used == 0)
/* a.update(a) or a.update({}); nothing to do */
......
......@@ -912,7 +912,7 @@ set_update_internal(PySetObject *so, PyObject *other)
{
PyObject *key, *it;
if (PyAnySet_CheckExact(other))
if (PyAnySet_Check(other))
return set_merge(so, other);
if (PyDict_CheckExact(other)) {
......@@ -1207,7 +1207,7 @@ set_intersection(PySetObject *so, PyObject *other)
if (result == NULL)
return NULL;
if (PyAnySet_CheckExact(other)) {
if (PyAnySet_Check(other)) {
Py_ssize_t pos = 0;
setentry *entry;
......@@ -1398,7 +1398,7 @@ set_difference_update_internal(PySetObject *so, PyObject *other)
if ((PyObject *)so == other)
return set_clear_internal(so);
if (PyAnySet_CheckExact(other)) {
if (PyAnySet_Check(other)) {
setentry *entry;
Py_ssize_t pos = 0;
......@@ -1447,7 +1447,7 @@ set_difference(PySetObject *so, PyObject *other)
setentry *entry;
Py_ssize_t pos = 0;
if (!PyAnySet_CheckExact(other) && !PyDict_CheckExact(other)) {
if (!PyAnySet_Check(other) && !PyDict_CheckExact(other)) {
result = set_copy(so);
if (result == NULL)
return NULL;
......@@ -1554,7 +1554,7 @@ set_symmetric_difference_update(PySetObject *so, PyObject *other)
Py_RETURN_NONE;
}
if (PyAnySet_CheckExact(other)) {
if (PyAnySet_Check(other)) {
Py_INCREF(other);
otherset = (PySetObject *)other;
} else {
......@@ -1637,7 +1637,7 @@ set_issubset(PySetObject *so, PyObject *other)
setentry *entry;
Py_ssize_t pos = 0;
if (!PyAnySet_CheckExact(other)) {
if (!PyAnySet_Check(other)) {
PyObject *tmp, *result;
tmp = make_new_set(&PySet_Type, other);
if (tmp == NULL)
......@@ -1666,7 +1666,7 @@ set_issuperset(PySetObject *so, PyObject *other)
{
PyObject *tmp, *result;
if (!PyAnySet_CheckExact(other)) {
if (!PyAnySet_Check(other)) {
tmp = make_new_set(&PySet_Type, other);
if (tmp == NULL)
return NULL;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment