mirror of
https://github.com/python/cpython.git
synced 2025-09-26 10:19:53 +00:00
Use unicode and stop supporting str8
This commit is contained in:
parent
fe53713506
commit
7e95befeda
2 changed files with 9 additions and 15 deletions
|
@ -258,8 +258,8 @@ def test_func_globals():
|
||||||
def test_func_name():
|
def test_func_name():
|
||||||
def f(): pass
|
def f(): pass
|
||||||
verify(f.__name__ == "f")
|
verify(f.__name__ == "f")
|
||||||
f.__name__ = str8("g")
|
f.__name__ = "g"
|
||||||
verify(f.__name__ == str8("g"))
|
verify(f.__name__ == "g")
|
||||||
cantset(f, "__globals__", 1)
|
cantset(f, "__globals__", 1)
|
||||||
cantset(f, "__name__", 1)
|
cantset(f, "__name__", 1)
|
||||||
# test that you can access func.__name__ in restricted mode
|
# test that you can access func.__name__ in restricted mode
|
||||||
|
|
|
@ -29,7 +29,7 @@ PyFunction_New(PyObject *code, PyObject *globals)
|
||||||
consts = ((PyCodeObject *)code)->co_consts;
|
consts = ((PyCodeObject *)code)->co_consts;
|
||||||
if (PyTuple_Size(consts) >= 1) {
|
if (PyTuple_Size(consts) >= 1) {
|
||||||
doc = PyTuple_GetItem(consts, 0);
|
doc = PyTuple_GetItem(consts, 0);
|
||||||
if (!PyString_Check(doc) && !PyUnicode_Check(doc))
|
if (!PyUnicode_Check(doc))
|
||||||
doc = Py_None;
|
doc = Py_None;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -44,7 +44,7 @@ PyFunction_New(PyObject *code, PyObject *globals)
|
||||||
Otherwise, use None.
|
Otherwise, use None.
|
||||||
*/
|
*/
|
||||||
if (!__name__) {
|
if (!__name__) {
|
||||||
__name__ = PyString_InternFromString("__name__");
|
__name__ = PyUnicode_InternFromString("__name__");
|
||||||
if (!__name__) {
|
if (!__name__) {
|
||||||
Py_DECREF(op);
|
Py_DECREF(op);
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -297,7 +297,7 @@ func_set_code(PyFunctionObject *op, PyObject *value)
|
||||||
PyErr_Format(PyExc_ValueError,
|
PyErr_Format(PyExc_ValueError,
|
||||||
"%s() requires a code object with %zd free vars,"
|
"%s() requires a code object with %zd free vars,"
|
||||||
" not %zd",
|
" not %zd",
|
||||||
PyString_AsString(op->func_name),
|
PyUnicode_AsString(op->func_name),
|
||||||
nclosure, nfree);
|
nclosure, nfree);
|
||||||
return -1;
|
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
|
/* Not legal to del f.func_name or to set it to anything
|
||||||
* other than a string object. */
|
* other than a string object. */
|
||||||
if (value == NULL || (!PyString_Check(value) && !PyUnicode_Check(value))) {
|
if (value == NULL || !PyUnicode_Check(value)) {
|
||||||
PyErr_SetString(PyExc_TypeError,
|
PyErr_SetString(PyExc_TypeError,
|
||||||
"__name__ must be set to a string object");
|
"__name__ must be set to a string object");
|
||||||
return -1;
|
return -1;
|
||||||
|
@ -482,12 +482,7 @@ func_new(PyTypeObject* type, PyObject* args, PyObject* kw)
|
||||||
&PyDict_Type, &globals,
|
&PyDict_Type, &globals,
|
||||||
&name, &defaults, &closure))
|
&name, &defaults, &closure))
|
||||||
return NULL;
|
return NULL;
|
||||||
if (PyUnicode_Check(name)) {
|
if (name != Py_None && !PyUnicode_Check(name)) {
|
||||||
name = _PyUnicode_AsDefaultEncodedString(name, NULL);
|
|
||||||
if (name == NULL)
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
if (name != Py_None && !PyString_Check(name)) {
|
|
||||||
PyErr_SetString(PyExc_TypeError,
|
PyErr_SetString(PyExc_TypeError,
|
||||||
"arg 3 (name) must be None or string");
|
"arg 3 (name) must be None or string");
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -573,9 +568,8 @@ func_dealloc(PyFunctionObject *op)
|
||||||
static PyObject*
|
static PyObject*
|
||||||
func_repr(PyFunctionObject *op)
|
func_repr(PyFunctionObject *op)
|
||||||
{
|
{
|
||||||
return PyUnicode_FromFormat("<function %s at %p>",
|
return PyUnicode_FromFormat("<function %U at %p>",
|
||||||
PyString_AsString(op->func_name),
|
op->func_name, op);
|
||||||
op);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue