[3.9] bpo-40939: Deprecate the PyParser_SimpleParse* functions (GH-21012)

This commit is contained in:
Lysandros Nikolaou 2020-06-21 04:15:45 +03:00 committed by GitHub
parent fd2c8a7345
commit d301d9473e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 23 additions and 8 deletions

View file

@ -193,6 +193,8 @@ the same library that the Python runtime is using.
:c:func:`PyParser_SimpleParseStringFlagsFilename` below, leaving *filename* set :c:func:`PyParser_SimpleParseStringFlagsFilename` below, leaving *filename* set
to ``NULL`` and *flags* set to ``0``. to ``NULL`` and *flags* set to ``0``.
.. deprecated-removed:: 3.9 3.10
.. c:function:: struct _node* PyParser_SimpleParseStringFlags( const char *str, int start, int flags) .. c:function:: struct _node* PyParser_SimpleParseStringFlags( const char *str, int start, int flags)
@ -200,6 +202,8 @@ the same library that the Python runtime is using.
:c:func:`PyParser_SimpleParseStringFlagsFilename` below, leaving *filename* set :c:func:`PyParser_SimpleParseStringFlagsFilename` below, leaving *filename* set
to ``NULL``. to ``NULL``.
.. deprecated-removed:: 3.9 3.10
.. c:function:: struct _node* PyParser_SimpleParseStringFlagsFilename( const char *str, const char *filename, int start, int flags) .. c:function:: struct _node* PyParser_SimpleParseStringFlagsFilename( const char *str, const char *filename, int start, int flags)
@ -209,18 +213,24 @@ the same library that the Python runtime is using.
many times. *filename* is decoded from the filesystem encoding many times. *filename* is decoded from the filesystem encoding
(:func:`sys.getfilesystemencoding`). (:func:`sys.getfilesystemencoding`).
.. deprecated-removed:: 3.9 3.10
.. c:function:: struct _node* PyParser_SimpleParseFile(FILE *fp, const char *filename, int start) .. c:function:: struct _node* PyParser_SimpleParseFile(FILE *fp, const char *filename, int start)
This is a simplified interface to :c:func:`PyParser_SimpleParseFileFlags` below, This is a simplified interface to :c:func:`PyParser_SimpleParseFileFlags` below,
leaving *flags* set to ``0``. leaving *flags* set to ``0``.
.. deprecated-removed:: 3.9 3.10
.. c:function:: struct _node* PyParser_SimpleParseFileFlags(FILE *fp, const char *filename, int start, int flags) .. c:function:: struct _node* PyParser_SimpleParseFileFlags(FILE *fp, const char *filename, int start, int flags)
Similar to :c:func:`PyParser_SimpleParseStringFlagsFilename`, but the Python Similar to :c:func:`PyParser_SimpleParseStringFlagsFilename`, but the Python
source code is read from *fp* instead of an in-memory string. source code is read from *fp* instead of an in-memory string.
.. deprecated-removed:: 3.9 3.10
.. c:function:: PyObject* PyRun_String(const char *str, int start, PyObject *globals, PyObject *locals) .. c:function:: PyObject* PyRun_String(const char *str, int start, PyObject *globals, PyObject *locals)

View file

@ -704,6 +704,11 @@ Deprecated
users can leverage the Abstract Syntax Tree (AST) generation and compilation users can leverage the Abstract Syntax Tree (AST) generation and compilation
stage, using the :mod:`ast` module. stage, using the :mod:`ast` module.
* The Public C API functions :c:func:`PyParser_SimpleParseStringFlags`,
:c:func:`PyParser_SimpleParseStringFlagsFilename` and
:c:func:`PyParser_SimpleParseFileFlags` are deprecated and will be removed
in Python 3.10 together with the old parser.
* Using :data:`NotImplemented` in a boolean context has been deprecated, * Using :data:`NotImplemented` in a boolean context has been deprecated,
as it is almost exclusively the result of incorrect rich comparator as it is almost exclusively the result of incorrect rich comparator
implementations. It will be made a :exc:`TypeError` in a future version implementations. It will be made a :exc:`TypeError` in a future version

View file

@ -72,16 +72,15 @@ PyAPI_FUNC(struct _mod *) PyParser_ASTFromFileObject(
#define PyParser_SimpleParseFile(FP, S, B) \ #define PyParser_SimpleParseFile(FP, S, B) \
PyParser_SimpleParseFileFlags(FP, S, B, 0) PyParser_SimpleParseFileFlags(FP, S, B, 0)
#endif #endif
PyAPI_FUNC(struct _node *) PyParser_SimpleParseStringFlags(const char *, int, Py_DEPRECATED(3.9) PyAPI_FUNC(struct _node *) PyParser_SimpleParseStringFlags(const char *,
int); int, int);
#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000 #if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000
PyAPI_FUNC(struct _node *) PyParser_SimpleParseStringFlagsFilename(const char *, Py_DEPRECATED(3.9) PyAPI_FUNC(struct _node *) PyParser_SimpleParseStringFlagsFilename(const char *,
const char *, const char *,
int, int); int, int);
#endif #endif
PyAPI_FUNC(struct _node *) PyParser_SimpleParseFileFlags(FILE *, const char *, Py_DEPRECATED(3.9) PyAPI_FUNC(struct _node *) PyParser_SimpleParseFileFlags(FILE *, const char *,
int, int); int, int);
#ifndef Py_LIMITED_API #ifndef Py_LIMITED_API
PyAPI_FUNC(PyObject *) PyRun_StringFlags(const char *, int, PyObject *, PyAPI_FUNC(PyObject *) PyRun_StringFlags(const char *, int, PyObject *,
PyObject *, PyCompilerFlags *); PyObject *, PyCompilerFlags *);

View file

@ -0,0 +1 @@
Deprecate :c:func:`PyParser_SimpleParseStringFlags`, :c:func:`PyParser_SimpleParseStringFlagsFilename` and :c:func:`PyParser_SimpleParseFileFlags`.