Remove support of bytes paths in os.scandir() (issue 27998)

http://bugs.python.org/review/27998/diff/18802/Modules/posixmodule.c File Modules/posixmodule.c (right): http://bugs.python.org/review/27998/diff/18802/Modules/posixmodule.c#newcode... Modules/posixmodule.c:11159: PyObject *unicode = self->path; How about consolidating this function as follows? static PyObject * path_object_error(PyObject *path) { #ifdef MS_WINDOWS return PyErr_SetExcFromWindowsErrWithFilenameObject( PyExc_OSError, 0, path); #else return PyErr_SetFromErrnoWithFilenameObject(PyExc_OSError, path); #endif } static PyObject * DirEntry_fetch_stat(DirEntry *self, int follow_symlinks) { int result; STRUCT_STAT st; PyObject *ub; #ifdef MS_WINDOWS if (PyUnicode_FSDecoder(self->path, &ub)) { const wchar_t *path = PyUnicode_AsUnicode(ub); #else /* POSIX */ if (PyUnicode_FSConverter(self->path, &ub)) { const char *path = PyBytes_AS_STRING(ub); #endif if (follow_symlinks) result = STAT(path, &st); else result = LSTAT(path, &st); Py_DECREF(ub); } else return NULL; if (result != 0) return path_object_error(self->path); return _pystat_fromstructstat(&st); } http://bugs.python.org/review/27998/
participants (1)
-
eryksun+pybugs@gmail.com