diff options
author | Guido van Rossum <guido@python.org> | 2018-01-26 16:20:18 (GMT) |
---|---|---|
committer | Ćukasz Langa <lukasz@langa.pl> | 2018-01-26 16:20:18 (GMT) |
commit | 95e4d589137260530e18ef98a2ed84ee3ec57e12 (patch) | |
tree | 9d0c3bc48158e9f0c83f1b9cb509c1fbebd9cfde /Include | |
parent | d7773d92bd11640a8c950d6c36a9cef1cee36f96 (diff) | |
download | cpython-95e4d589137260530e18ef98a2ed84ee3ec57e12.zip cpython-95e4d589137260530e18ef98a2ed84ee3ec57e12.tar.gz cpython-95e4d589137260530e18ef98a2ed84ee3ec57e12.tar.bz2 |
String annotations [PEP 563] (#4390)
* Document `from __future__ import annotations`
* Provide plumbing and tests for `from __future__ import annotations`
* Implement unparsing the AST back to string form
This is required for PEP 563 and as such only implements a part of the
unparsing process that covers expressions.
Diffstat (limited to 'Include')
-rw-r--r-- | Include/ast.h | 9 | ||||
-rw-r--r-- | Include/code.h | 1 | ||||
-rw-r--r-- | Include/compile.h | 3 |
3 files changed, 12 insertions, 1 deletions
diff --git a/Include/ast.h b/Include/ast.h index 6a8c816..639c4f8 100644 --- a/Include/ast.h +++ b/Include/ast.h @@ -16,6 +16,15 @@ PyAPI_FUNC(mod_ty) PyAST_FromNodeObject( PyObject *filename, PyArena *arena); +#ifndef Py_LIMITED_API + +/* _PyAST_ExprAsUnicode is defined in ast_unparse.c */ +PyAPI_FUNC(PyObject *) _PyAST_ExprAsUnicode( + expr_ty e, + int omit_parens); + +#endif /* !Py_LIMITED_API */ + #ifdef __cplusplus } #endif diff --git a/Include/code.h b/Include/code.h index 8b0f840..2e661e8 100644 --- a/Include/code.h +++ b/Include/code.h @@ -82,6 +82,7 @@ typedef struct { #define CO_FUTURE_BARRY_AS_BDFL 0x40000 #define CO_FUTURE_GENERATOR_STOP 0x80000 +#define CO_FUTURE_ANNOTATIONS 0x100000 /* This value is found in the co_cell2arg array when the associated cell variable does not correspond to an argument. */ diff --git a/Include/compile.h b/Include/compile.h index edfd8bb..edb961f 100644 --- a/Include/compile.h +++ b/Include/compile.h @@ -16,7 +16,7 @@ PyAPI_FUNC(PyCodeObject *) PyNode_Compile(struct _node *, const char *); #define PyCF_MASK (CO_FUTURE_DIVISION | CO_FUTURE_ABSOLUTE_IMPORT | \ CO_FUTURE_WITH_STATEMENT | CO_FUTURE_PRINT_FUNCTION | \ CO_FUTURE_UNICODE_LITERALS | CO_FUTURE_BARRY_AS_BDFL | \ - CO_FUTURE_GENERATOR_STOP) + CO_FUTURE_GENERATOR_STOP | CO_FUTURE_ANNOTATIONS) #define PyCF_MASK_OBSOLETE (CO_NESTED) #define PyCF_SOURCE_IS_UTF8 0x0100 #define PyCF_DONT_IMPLY_DEDENT 0x0200 @@ -45,6 +45,7 @@ typedef struct { #define FUTURE_UNICODE_LITERALS "unicode_literals" #define FUTURE_BARRY_AS_BDFL "barry_as_FLUFL" #define FUTURE_GENERATOR_STOP "generator_stop" +#define FUTURE_ANNOTATIONS "annotations" struct _mod; /* Declare the existence of this type */ #define PyAST_Compile(mod, s, f, ar) PyAST_CompileEx(mod, s, f, -1, ar) |