Use unicode and stop supporting str8
authorNeal Norwitz <nnorwitz@gmail.com>
Sun, 26 Aug 2007 03:56:04 +0000 (03:56 +0000)
committerNeal Norwitz <nnorwitz@gmail.com>
Sun, 26 Aug 2007 03:56:04 +0000 (03:56 +0000)
Lib/test/test_funcattrs.py
Objects/funcobject.c

index 59f461378aebd9c2ca8742943f584bcb410d860a..528ca18ad76b96cb6a1d04547a771ca052dc38ca 100644 (file)
@@ -258,8 +258,8 @@ def test_func_globals():
 def test_func_name():
     def f(): pass
     verify(f.__name__ == "f")
-    f.__name__ = str8("g")
-    verify(f.__name__ == str8("g"))
+    f.__name__ = "g"
+    verify(f.__name__ == "g")
     cantset(f, "__globals__", 1)
     cantset(f, "__name__", 1)
     # test that you can access func.__name__ in restricted mode
index d0ceccb758337446e1f5ed4330be8d5d359ed520..808f4eae2227414ad4c5650095cb2ff906198cfd 100644 (file)
@@ -29,7 +29,7 @@ PyFunction_New(PyObject *code, PyObject *globals)
                consts = ((PyCodeObject *)code)->co_consts;
                if (PyTuple_Size(consts) >= 1) {
                        doc = PyTuple_GetItem(consts, 0);
-                       if (!PyString_Check(doc) && !PyUnicode_Check(doc))
+                       if (!PyUnicode_Check(doc))
                                doc = Py_None;
                }
                else
@@ -44,7 +44,7 @@ PyFunction_New(PyObject *code, PyObject *globals)
                   Otherwise, use None.
                */
                if (!__name__) {
-                       __name__ = PyString_InternFromString("__name__");
+                       __name__ = PyUnicode_InternFromString("__name__");
                        if (!__name__) {
                                Py_DECREF(op);
                                return NULL;
@@ -297,7 +297,7 @@ func_set_code(PyFunctionObject *op, PyObject *value)
                PyErr_Format(PyExc_ValueError,
                             "%s() requires a code object with %zd free vars,"
                             " not %zd",
-                            PyString_AsString(op->func_name),
+                            PyUnicode_AsString(op->func_name),
                             nclosure, nfree);
                return -1;
        }
@@ -322,7 +322,7 @@ func_set_name(PyFunctionObject *op, PyObject *value)
 
        /* Not legal to del f.func_name or to set it to anything
         * other than a string object. */
-       if (value == NULL || (!PyString_Check(value) && !PyUnicode_Check(value))) {
+       if (value == NULL || !PyUnicode_Check(value)) {
                PyErr_SetString(PyExc_TypeError,
                                "__name__ must be set to a string object");
                return -1;
@@ -482,12 +482,7 @@ func_new(PyTypeObject* type, PyObject* args, PyObject* kw)
                              &PyDict_Type, &globals,
                              &name, &defaults, &closure))
                return NULL;
-        if (PyUnicode_Check(name)) {
-               name = _PyUnicode_AsDefaultEncodedString(name, NULL);
-               if (name == NULL)
-                       return NULL;
-       }
-       if (name != Py_None && !PyString_Check(name)) {
+       if (name != Py_None && !PyUnicode_Check(name)) {
                PyErr_SetString(PyExc_TypeError,
                                "arg 3 (name) must be None or string");
                return NULL;
@@ -573,9 +568,8 @@ func_dealloc(PyFunctionObject *op)
 static PyObject*
 func_repr(PyFunctionObject *op)
 {
-       return PyUnicode_FromFormat("<function %s at %p>",
-                                  PyString_AsString(op->func_name),
-                                  op);
+       return PyUnicode_FromFormat("<function %U at %p>",
+                                  op->func_name, op);
 }
 
 static int