[Python-checkins] r54825 - in python/trunk: Lib/test/test_descr.py Misc/NEWS Objects/typeobject.c
neal.norwitz
python-checkins at python.org
Sat Apr 14 07:25:58 CEST 2007
Author: neal.norwitz
Date: Sat Apr 14 07:25:50 2007
New Revision: 54825
Modified:
python/trunk/Lib/test/test_descr.py
python/trunk/Misc/NEWS
python/trunk/Objects/typeobject.c
Log:
When __slots__ are set to a unicode string, make it work the same as
setting a plain string, ie don't expand to single letter identifiers.
Modified: python/trunk/Lib/test/test_descr.py
==============================================================================
--- python/trunk/Lib/test/test_descr.py (original)
+++ python/trunk/Lib/test/test_descr.py Sat Apr 14 07:25:50 2007
@@ -1225,13 +1225,29 @@
raise TestFailed, "[''] slots not caught"
class C(object):
__slots__ = ["a", "a_b", "_a", "A0123456789Z"]
+ # XXX(nnorwitz): was there supposed to be something tested
+ # from the class above?
+
+ # Test a single string is not expanded as a sequence.
+ class C(object):
+ __slots__ = "abc"
+ c = C()
+ c.abc = 5
+ vereq(c.abc, 5)
# Test unicode slot names
try:
- unichr
+ unicode
except NameError:
pass
else:
+ # Test a single unicode string is not expanded as a sequence.
+ class C(object):
+ __slots__ = unicode("abc")
+ c = C()
+ c.abc = 5
+ vereq(c.abc, 5)
+
# _unicode_to_string used to modify slots in certain circumstances
slots = (unicode("foo"), unicode("bar"))
class C(object):
Modified: python/trunk/Misc/NEWS
==============================================================================
--- python/trunk/Misc/NEWS (original)
+++ python/trunk/Misc/NEWS Sat Apr 14 07:25:50 2007
@@ -12,6 +12,9 @@
Core and builtins
-----------------
+- When __slots__ are set to a unicode string, make it work the same as
+ setting a plain string, ie don't expand to single letter identifiers.
+
- Request #1191699: Slices can now be pickled.
- Request #1193128: str.translate() now allows a None argument for
Modified: python/trunk/Objects/typeobject.c
==============================================================================
--- python/trunk/Objects/typeobject.c (original)
+++ python/trunk/Objects/typeobject.c Sat Apr 14 07:25:50 2007
@@ -1816,7 +1816,7 @@
/* Have slots */
/* Make it into a tuple */
- if (PyString_Check(slots))
+ if (PyString_Check(slots) || PyUnicode_Check(slots))
slots = PyTuple_Pack(1, slots);
else
slots = PySequence_Tuple(slots);
More information about the Python-checkins
mailing list