mirror of
https://github.com/python/cpython.git
synced 2025-08-31 14:07:50 +00:00
Merging the py3k-pep3137 branch back into the py3k branch.
No detailed change log; just check out the change log for the py3k-pep3137 branch. The most obvious changes: - str8 renamed to bytes (PyString at the C level); - bytes renamed to buffer (PyBytes at the C level); - PyString and PyUnicode are no longer compatible. I.e. we now have an immutable bytes type and a mutable bytes type. The behavior of PyString was modified quite a bit, to make it more bytes-like. Some changes are still on the to-do list.
This commit is contained in:
parent
a19f80c6df
commit
98297ee781
148 changed files with 2533 additions and 3517 deletions
|
@ -1212,14 +1212,14 @@ array_fromfile(arrayobject *self, PyObject *args)
|
|||
if (b == NULL)
|
||||
return NULL;
|
||||
|
||||
if (!PyBytes_Check(b)) {
|
||||
if (!PyString_Check(b)) {
|
||||
PyErr_SetString(PyExc_TypeError,
|
||||
"read() didn't return bytes");
|
||||
Py_DECREF(b);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (PyBytes_GET_SIZE(b) != nbytes) {
|
||||
if (PyString_GET_SIZE(b) != nbytes) {
|
||||
PyErr_SetString(PyExc_EOFError,
|
||||
"read() didn't return enough bytes");
|
||||
Py_DECREF(b);
|
||||
|
@ -1263,7 +1263,7 @@ array_tofile(arrayobject *self, PyObject *f)
|
|||
PyObject *bytes, *res;
|
||||
if (i*BLOCKSIZE + size > nbytes)
|
||||
size = nbytes - i*BLOCKSIZE;
|
||||
bytes = PyBytes_FromStringAndSize(ptr, size);
|
||||
bytes = PyString_FromStringAndSize(ptr, size);
|
||||
if (bytes == NULL)
|
||||
return NULL;
|
||||
res = PyObject_CallMethod(f, "write", "O", bytes);
|
||||
|
@ -1395,7 +1395,7 @@ values, as if it had been read from a file using the fromfile() method).");
|
|||
static PyObject *
|
||||
array_tostring(arrayobject *self, PyObject *unused)
|
||||
{
|
||||
return PyBytes_FromStringAndSize(self->ob_item,
|
||||
return PyString_FromStringAndSize(self->ob_item,
|
||||
Py_Size(self) * self->ob_descr->itemsize);
|
||||
}
|
||||
|
||||
|
@ -1861,6 +1861,7 @@ array_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
|||
|
||||
if (!(initial == NULL || PyList_Check(initial)
|
||||
|| PyBytes_Check(initial)
|
||||
|| PyString_Check(initial)
|
||||
|| PyTuple_Check(initial)
|
||||
|| ((c=='u') && PyUnicode_Check(initial)))) {
|
||||
it = PyObject_GetIter(initial);
|
||||
|
@ -1904,7 +1905,9 @@ array_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
|||
}
|
||||
Py_DECREF(v);
|
||||
}
|
||||
} else if (initial != NULL && PyBytes_Check(initial)) {
|
||||
}
|
||||
else if (initial != NULL && (PyBytes_Check(initial) ||
|
||||
PyString_Check(initial))) {
|
||||
PyObject *t_initial, *v;
|
||||
t_initial = PyTuple_Pack(1, initial);
|
||||
if (t_initial == NULL) {
|
||||
|
@ -1919,7 +1922,8 @@ array_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
|||
return NULL;
|
||||
}
|
||||
Py_DECREF(v);
|
||||
} else if (initial != NULL && PyUnicode_Check(initial)) {
|
||||
}
|
||||
else if (initial != NULL && PyUnicode_Check(initial)) {
|
||||
Py_ssize_t n = PyUnicode_GET_DATA_SIZE(initial);
|
||||
if (n > 0) {
|
||||
arrayobject *self = (arrayobject *)a;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue