mirror of
https://github.com/python/cpython.git
synced 2025-11-01 18:51:43 +00:00
Close #11619: The parser and the import machinery do not encode Unicode
filenames anymore on Windows.
This commit is contained in:
parent
33824f6fd7
commit
14e461d5b9
22 changed files with 514 additions and 175 deletions
|
|
@ -235,7 +235,7 @@ in various ways. There is a separate error indicator for each thread.
|
|||
|
||||
Similar to :c:func:`PyErr_SetFromErrnoWithFilenameObject`, but the filename
|
||||
is given as a C string. *filename* is decoded from the filesystem encoding
|
||||
(:func:`sys.getfilesystemencoding`).
|
||||
(:func:`os.fsdecode`).
|
||||
|
||||
|
||||
.. c:function:: PyObject* PyErr_SetFromWindowsErr(int ierr)
|
||||
|
|
@ -267,7 +267,7 @@ in various ways. There is a separate error indicator for each thread.
|
|||
|
||||
Similar to :c:func:`PyErr_SetFromWindowsErrWithFilenameObject`, but the
|
||||
filename is given as a C string. *filename* is decoded from the filesystem
|
||||
encoding (:func:`sys.getfilesystemencoding`). Availability: Windows.
|
||||
encoding (:func:`os.fsdecode`). Availability: Windows.
|
||||
|
||||
|
||||
.. c:function:: PyObject* PyErr_SetExcFromWindowsErrWithFilenameObject(PyObject *type, int ierr, PyObject *filename)
|
||||
|
|
@ -293,20 +293,27 @@ in various ways. There is a separate error indicator for each thread.
|
|||
.. versionadded:: 3.3
|
||||
|
||||
|
||||
.. c:function:: void PyErr_SyntaxLocationEx(char *filename, int lineno, int col_offset)
|
||||
.. c:function:: void PyErr_SyntaxLocationObject(PyObject *filename, int lineno, int col_offset)
|
||||
|
||||
Set file, line, and offset information for the current exception. If the
|
||||
current exception is not a :exc:`SyntaxError`, then it sets additional
|
||||
attributes, which make the exception printing subsystem think the exception
|
||||
is a :exc:`SyntaxError`. *filename* is decoded from the filesystem encoding
|
||||
(:func:`sys.getfilesystemencoding`).
|
||||
is a :exc:`SyntaxError`.
|
||||
|
||||
.. versionadded:: 3.2
|
||||
.. versionadded:: 3.4
|
||||
|
||||
|
||||
.. c:function:: void PyErr_SyntaxLocationEx(char *filename, int lineno, int col_offset)
|
||||
|
||||
Like :c:func:`PyErr_SyntaxLocationObject`, but *filename* is a byte string
|
||||
decoded from the filesystem encoding (:func:`os.fsdecode`).
|
||||
|
||||
.. versionadded:: 3.2
|
||||
|
||||
|
||||
.. c:function:: void PyErr_SyntaxLocation(char *filename, int lineno)
|
||||
|
||||
Like :c:func:`PyErr_SyntaxLocationExc`, but the col_offset parameter is
|
||||
Like :c:func:`PyErr_SyntaxLocationEx`, but the col_offset parameter is
|
||||
omitted.
|
||||
|
||||
|
||||
|
|
@ -355,15 +362,22 @@ in various ways. There is a separate error indicator for each thread.
|
|||
documentation. There is no C API for warning control.
|
||||
|
||||
|
||||
.. c:function:: int PyErr_WarnExplicit(PyObject *category, const char *message, const char *filename, int lineno, const char *module, PyObject *registry)
|
||||
.. c:function:: int PyErr_WarnExplicitObject(PyObject *category, PyObject *message, PyObject *filename, int lineno, PyObject *module, PyObject *registry)
|
||||
|
||||
Issue a warning message with explicit control over all warning attributes. This
|
||||
is a straightforward wrapper around the Python function
|
||||
:func:`warnings.warn_explicit`, see there for more information. The *module*
|
||||
and *registry* arguments may be set to *NULL* to get the default effect
|
||||
described there. *message* and *module* are UTF-8 encoded strings,
|
||||
*filename* is decoded from the filesystem encoding
|
||||
(:func:`sys.getfilesystemencoding`).
|
||||
described there.
|
||||
|
||||
.. versionadded:: 3.4
|
||||
|
||||
|
||||
.. c:function:: int PyErr_WarnExplicit(PyObject *category, const char *message, const char *filename, int lineno, const char *module, PyObject *registry)
|
||||
|
||||
Similar to :c:func:`PyErr_WarnExplicitObject` except that *message* and
|
||||
*module* are UTF-8 encoded strings, and *filename* is decoded from the
|
||||
filesystem encoding (:func:`os.fsdecode`).
|
||||
|
||||
|
||||
.. c:function:: int PyErr_WarnFormat(PyObject *category, Py_ssize_t stack_level, const char *format, ...)
|
||||
|
|
|
|||
|
|
@ -258,16 +258,15 @@ the same library that the Python runtime is using.
|
|||
*optimize* set to ``-1``.
|
||||
|
||||
|
||||
.. c:function:: PyObject* Py_CompileStringExFlags(const char *str, const char *filename, int start, PyCompilerFlags *flags, int optimize)
|
||||
.. c:function:: PyObject* Py_CompileStringObject(const char *str, PyObject *filename, int start, PyCompilerFlags *flags, int optimize)
|
||||
|
||||
Parse and compile the Python source code in *str*, returning the resulting code
|
||||
object. The start token is given by *start*; this can be used to constrain the
|
||||
code which can be compiled and should be :const:`Py_eval_input`,
|
||||
:const:`Py_file_input`, or :const:`Py_single_input`. The filename specified by
|
||||
*filename* is used to construct the code object and may appear in tracebacks or
|
||||
:exc:`SyntaxError` exception messages, it is decoded from the filesystem
|
||||
encoding (:func:`sys.getfilesystemencoding`). This returns *NULL* if the
|
||||
code cannot be parsed or compiled.
|
||||
:exc:`SyntaxError` exception messages. This returns *NULL* if the code
|
||||
cannot be parsed or compiled.
|
||||
|
||||
The integer *optimize* specifies the optimization level of the compiler; a
|
||||
value of ``-1`` selects the optimization level of the interpreter as given by
|
||||
|
|
@ -275,9 +274,16 @@ the same library that the Python runtime is using.
|
|||
``__debug__`` is true), ``1`` (asserts are removed, ``__debug__`` is false)
|
||||
or ``2`` (docstrings are removed too).
|
||||
|
||||
.. versionadded:: 3.2
|
||||
.. versionadded:: 3.4
|
||||
|
||||
|
||||
.. c:function:: PyObject* Py_CompileStringExFlags(const char *str, const char *filename, int start, PyCompilerFlags *flags, int optimize)
|
||||
|
||||
Like :c:func:`Py_CompileStringExFlags`, but *filename* is a byte string
|
||||
decoded from the filesystem encoding (:func:`os.fsdecode`).
|
||||
|
||||
.. versionadded:: 3.2
|
||||
|
||||
.. c:function:: PyObject* PyEval_EvalCode(PyObject *co, PyObject *globals, PyObject *locals)
|
||||
|
||||
This is a simplified interface to :c:func:`PyEval_EvalCodeEx`, with just
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue