mirror of
https://github.com/python/cpython.git
synced 2025-07-29 06:05:00 +00:00
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.
This commit is contained in:
parent
8608d91e07
commit
3dbd4c536d
3 changed files with 8 additions and 16 deletions
|
@ -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;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue