summaryrefslogtreecommitdiff
path: root/Python/Python-ast.c
diff options
context:
space:
mode:
authorAntoine Pitrou <solipsis@pitrou.net>2011-11-28 19:09:45 +0100
committerAntoine Pitrou <solipsis@pitrou.net>2011-11-28 19:09:45 +0100
commit3a852cd214d726eb2bb96f94e498eda7ba042887 (patch)
tree71081d83765f4c721093b504ca9bd3b7673d41cd /Python/Python-ast.c
parent07ee349b41ca8f94aadaf39be3ec9ca5aca692f9 (diff)
parent07b3714e5b40f0208a7640d315213a479d3742a0 (diff)
downloadcpython-3a852cd214d726eb2bb96f94e498eda7ba042887.tar.gz
Issue #7111: Python can now be run without a stdin, stdout or stderr stream.
It was already the case with Python 2. However, the corresponding sys module entries are now set to None (instead of an unusable file object).
Diffstat (limited to 'Python/Python-ast.c')
-rw-r--r--Python/Python-ast.c1174
1 files changed, 625 insertions, 549 deletions
diff --git a/Python/Python-ast.c b/Python/Python-ast.c
index a276b6cf21..8a101cf3b0 100644
--- a/Python/Python-ast.c
+++ b/Python/Python-ast.c
@@ -1,14 +1,5 @@
/* File automatically generated by Parser/asdl_c.py. */
-
-/*
- __version__ 82163.
-
- This module must be committed separately after each AST grammar change;
- The __version__ number is set to the revision number of the commit
- containing the grammar change.
-*/
-
#include "Python.h"
#include "Python-ast.h"
@@ -16,6 +7,7 @@ static PyTypeObject AST_type;
static PyTypeObject *mod_type;
static PyObject* ast2obj_mod(void*);
static PyTypeObject *Module_type;
+_Py_IDENTIFIER(body);
static char *Module_fields[]={
"body",
};
@@ -32,12 +24,18 @@ static char *Suite_fields[]={
"body",
};
static PyTypeObject *stmt_type;
+_Py_IDENTIFIER(lineno);
+_Py_IDENTIFIER(col_offset);
static char *stmt_attributes[] = {
"lineno",
"col_offset",
};
static PyObject* ast2obj_stmt(void*);
static PyTypeObject *FunctionDef_type;
+_Py_IDENTIFIER(name);
+_Py_IDENTIFIER(args);
+_Py_IDENTIFIER(decorator_list);
+_Py_IDENTIFIER(returns);
static char *FunctionDef_fields[]={
"name",
"args",
@@ -46,6 +44,10 @@ static char *FunctionDef_fields[]={
"returns",
};
static PyTypeObject *ClassDef_type;
+_Py_IDENTIFIER(bases);
+_Py_IDENTIFIER(keywords);
+_Py_IDENTIFIER(starargs);
+_Py_IDENTIFIER(kwargs);
static char *ClassDef_fields[]={
"name",
"bases",
@@ -56,10 +58,12 @@ static char *ClassDef_fields[]={
"decorator_list",
};
static PyTypeObject *Return_type;
+_Py_IDENTIFIER(value);
static char *Return_fields[]={
"value",
};
static PyTypeObject *Delete_type;
+_Py_IDENTIFIER(targets);
static char *Delete_fields[]={
"targets",
};
@@ -69,12 +73,16 @@ static char *Assign_fields[]={
"value",
};
static PyTypeObject *AugAssign_type;
+_Py_IDENTIFIER(target);
+_Py_IDENTIFIER(op);
static char *AugAssign_fields[]={
"target",
"op",
"value",
};
static PyTypeObject *For_type;
+_Py_IDENTIFIER(iter);
+_Py_IDENTIFIER(orelse);
static char *For_fields[]={
"target",
"iter",
@@ -82,6 +90,7 @@ static char *For_fields[]={
"orelse",
};
static PyTypeObject *While_type;
+_Py_IDENTIFIER(test);
static char *While_fields[]={
"test",
"body",
@@ -94,37 +103,41 @@ static char *If_fields[]={
"orelse",
};
static PyTypeObject *With_type;
+_Py_IDENTIFIER(items);
static char *With_fields[]={
- "context_expr",
- "optional_vars",
+ "items",
"body",
};
static PyTypeObject *Raise_type;
+_Py_IDENTIFIER(exc);
+_Py_IDENTIFIER(cause);
static char *Raise_fields[]={
"exc",
"cause",
};
-static PyTypeObject *TryExcept_type;
-static char *TryExcept_fields[]={
+static PyTypeObject *Try_type;
+_Py_IDENTIFIER(handlers);
+_Py_IDENTIFIER(finalbody);
+static char *Try_fields[]={
"body",
"handlers",
"orelse",
-};
-static PyTypeObject *TryFinally_type;
-static char *TryFinally_fields[]={
- "body",
"finalbody",
};
static PyTypeObject *Assert_type;
+_Py_IDENTIFIER(msg);
static char *Assert_fields[]={
"test",
"msg",
};
static PyTypeObject *Import_type;
+_Py_IDENTIFIER(names);
static char *Import_fields[]={
"names",
};
static PyTypeObject *ImportFrom_type;
+_Py_IDENTIFIER(module);
+_Py_IDENTIFIER(level);
static char *ImportFrom_fields[]={
"module",
"names",
@@ -152,17 +165,21 @@ static char *expr_attributes[] = {
};
static PyObject* ast2obj_expr(void*);
static PyTypeObject *BoolOp_type;
+_Py_IDENTIFIER(values);
static char *BoolOp_fields[]={
"op",
"values",
};
static PyTypeObject *BinOp_type;
+_Py_IDENTIFIER(left);
+_Py_IDENTIFIER(right);
static char *BinOp_fields[]={
"left",
"op",
"right",
};
static PyTypeObject *UnaryOp_type;
+_Py_IDENTIFIER(operand);
static char *UnaryOp_fields[]={
"op",
"operand",
@@ -179,15 +196,19 @@ static char *IfExp_fields[]={
"orelse",
};
static PyTypeObject *Dict_type;
+_Py_IDENTIFIER(keys);
static char *Dict_fields[]={
"keys",
"values",
};
static PyTypeObject *Set_type;
+_Py_IDENTIFIER(elts);
static char *Set_fields[]={
"elts",
};
static PyTypeObject *ListComp_type;
+_Py_IDENTIFIER(elt);
+_Py_IDENTIFIER(generators);
static char *ListComp_fields[]={
"elt",
"generators",
@@ -198,6 +219,7 @@ static char *SetComp_fields[]={
"generators",
};
static PyTypeObject *DictComp_type;
+_Py_IDENTIFIER(key);
static char *DictComp_fields[]={
"key",
"value",
@@ -213,12 +235,15 @@ static char *Yield_fields[]={
"value",
};
static PyTypeObject *Compare_type;
+_Py_IDENTIFIER(ops);
+_Py_IDENTIFIER(comparators);
static char *Compare_fields[]={
"left",
"ops",
"comparators",
};
static PyTypeObject *Call_type;
+_Py_IDENTIFIER(func);
static char *Call_fields[]={
"func",
"args",
@@ -227,10 +252,12 @@ static char *Call_fields[]={
"kwargs",
};
static PyTypeObject *Num_type;
+_Py_IDENTIFIER(n);
static char *Num_fields[]={
"n",
};
static PyTypeObject *Str_type;
+_Py_IDENTIFIER(s);
static char *Str_fields[]={
"s",
};
@@ -240,12 +267,15 @@ static char *Bytes_fields[]={
};
static PyTypeObject *Ellipsis_type;
static PyTypeObject *Attribute_type;
+_Py_IDENTIFIER(attr);
+_Py_IDENTIFIER(ctx);
static char *Attribute_fields[]={
"value",
"attr",
"ctx",
};
static PyTypeObject *Subscript_type;
+_Py_IDENTIFIER(slice);
static char *Subscript_fields[]={
"value",
"slice",
@@ -257,6 +287,7 @@ static char *Starred_fields[]={
"ctx",
};
static PyTypeObject *Name_type;
+_Py_IDENTIFIER(id);
static char *Name_fields[]={
"id",
"ctx",
@@ -284,12 +315,16 @@ static PyTypeObject *Param_type;
static PyTypeObject *slice_type;
static PyObject* ast2obj_slice(void*);
static PyTypeObject *Slice_type;
+_Py_IDENTIFIER(lower);
+_Py_IDENTIFIER(upper);
+_Py_IDENTIFIER(step);
static char *Slice_fields[]={
"lower",
"upper",
"step",
};
static PyTypeObject *ExtSlice_type;
+_Py_IDENTIFIER(dims);
static char *ExtSlice_fields[]={
"dims",
};
@@ -345,6 +380,7 @@ static PyTypeObject *In_type;
static PyTypeObject *NotIn_type;
static PyTypeObject *comprehension_type;
static PyObject* ast2obj_comprehension(void*);
+_Py_IDENTIFIER(ifs);
static char *comprehension_fields[]={
"target",
"iter",
@@ -357,6 +393,7 @@ static char *excepthandler_attributes[] = {
};
static PyObject* ast2obj_excepthandler(void*);
static PyTypeObject *ExceptHandler_type;
+_Py_IDENTIFIER(type);
static char *ExceptHandler_fields[]={
"type",
"name",
@@ -364,6 +401,13 @@ static char *ExceptHandler_fields[]={
};
static PyTypeObject *arguments_type;
static PyObject* ast2obj_arguments(void*);
+_Py_IDENTIFIER(vararg);
+_Py_IDENTIFIER(varargannotation);
+_Py_IDENTIFIER(kwonlyargs);
+_Py_IDENTIFIER(kwarg);
+_Py_IDENTIFIER(kwargannotation);
+_Py_IDENTIFIER(defaults);
+_Py_IDENTIFIER(kw_defaults);
static char *arguments_fields[]={
"args",
"vararg",
@@ -376,6 +420,8 @@ static char *arguments_fields[]={
};
static PyTypeObject *arg_type;
static PyObject* ast2obj_arg(void*);
+_Py_IDENTIFIER(arg);
+_Py_IDENTIFIER(annotation);
static char *arg_fields[]={
"arg",
"annotation",
@@ -388,19 +434,29 @@ static char *keyword_fields[]={
};
static PyTypeObject *alias_type;
static PyObject* ast2obj_alias(void*);
+_Py_IDENTIFIER(asname);
static char *alias_fields[]={
"name",
"asname",
};
+static PyTypeObject *withitem_type;
+static PyObject* ast2obj_withitem(void*);
+_Py_IDENTIFIER(context_expr);
+_Py_IDENTIFIER(optional_vars);
+static char *withitem_fields[]={
+ "context_expr",
+ "optional_vars",
+};
static int
ast_type_init(PyObject *self, PyObject *args, PyObject *kw)
{
+ _Py_IDENTIFIER(_fields);
Py_ssize_t i, numfields = 0;
int res = -1;
PyObject *key, *value, *fields;
- fields = PyObject_GetAttrString((PyObject*)Py_TYPE(self), "_fields");
+ fields = _PyObject_GetAttrId((PyObject*)Py_TYPE(self), &PyId__fields);
if (!fields)
PyErr_Clear();
if (fields) {
@@ -450,7 +506,8 @@ static PyObject *
ast_type_reduce(PyObject *self, PyObject *unused)
{
PyObject *res;
- PyObject *dict = PyObject_GetAttrString(self, "__dict__");
+ _Py_IDENTIFIER(__dict__);
+ PyObject *dict = _PyObject_GetAttrId(self, &PyId___dict__);
if (dict == NULL) {
if (PyErr_ExceptionMatches(PyExc_AttributeError))
PyErr_Clear();
@@ -536,6 +593,7 @@ static PyTypeObject* make_type(char *type, PyTypeObject* base, char**fields, int
static int add_attributes(PyTypeObject* type, char**attrs, int num_fields)
{
int i, result;
+ _Py_IDENTIFIER(_attributes);
PyObject *s, *l = PyTuple_New(num_fields);
if (!l)
return 0;
@@ -547,7 +605,7 @@ static int add_attributes(PyTypeObject* type, char**attrs, int num_fields)
}
PyTuple_SET_ITEM(l, i, s);
}
- result = PyObject_SetAttrString((PyObject*)type, "_attributes", l) >= 0;
+ result = _PyObject_SetAttrId((PyObject*)type, &PyId__attributes, l) >= 0;
Py_DECREF(l);
return result;
}
@@ -581,6 +639,7 @@ static PyObject* ast2obj_object(void *o)
}
#define ast2obj_identifier ast2obj_object
#define ast2obj_string ast2obj_object
+#define ast2obj_bytes ast2obj_object
static PyObject* ast2obj_int(long b)
{
@@ -618,6 +677,15 @@ static int obj2ast_string(PyObject* obj, PyObject** out, PyArena* arena)
return obj2ast_object(obj, out, arena);
}
+static int obj2ast_bytes(PyObject* obj, PyObject** out, PyArena* arena)
+{
+ if (!PyBytes_CheckExact(obj)) {
+ PyErr_SetString(PyExc_TypeError, "AST bytes must be of type bytes");
+ return 1;
+ }
+ return obj2ast_object(obj, out, arena);
+}
+
static int obj2ast_int(PyObject* obj, int* out, PyArena* arena)
{
int i;
@@ -691,15 +759,12 @@ static int init_types(void)
if (!While_type) return 0;
If_type = make_type("If", stmt_type, If_fields, 3);
if (!If_type) return 0;
- With_type = make_type("With", stmt_type, With_fields, 3);
+ With_type = make_type("With", stmt_type, With_fields, 2);
if (!With_type) return 0;
Raise_type = make_type("Raise", stmt_type, Raise_fields, 2);
if (!Raise_type) return 0;
- TryExcept_type = make_type("TryExcept", stmt_type, TryExcept_fields, 3);
- if (!TryExcept_type) return 0;
- TryFinally_type = make_type("TryFinally", stmt_type, TryFinally_fields,
- 2);
- if (!TryFinally_type) return 0;
+ Try_type = make_type("Try", stmt_type, Try_fields, 4);
+ if (!Try_type) return 0;
Assert_type = make_type("Assert", stmt_type, Assert_fields, 2);
if (!Assert_type) return 0;
Import_type = make_type("Import", stmt_type, Import_fields, 1);
@@ -949,6 +1014,8 @@ static int init_types(void)
if (!keyword_type) return 0;
alias_type = make_type("alias", &AST_type, alias_fields, 2);
if (!alias_type) return 0;
+ withitem_type = make_type("withitem", &AST_type, withitem_fields, 2);
+ if (!withitem_type) return 0;
initialized = 1;
return 1;
}
@@ -971,6 +1038,7 @@ static int obj2ast_arguments(PyObject* obj, arguments_ty* out, PyArena* arena);
static int obj2ast_arg(PyObject* obj, arg_ty* out, PyArena* arena);
static int obj2ast_keyword(PyObject* obj, keyword_ty* out, PyArena* arena);
static int obj2ast_alias(PyObject* obj, alias_ty* out, PyArena* arena);
+static int obj2ast_withitem(PyObject* obj, withitem_ty* out, PyArena* arena);
mod_ty
Module(asdl_seq * body, PyArena *arena)
@@ -1236,21 +1304,15 @@ If(expr_ty test, asdl_seq * body, asdl_seq * orelse, int lineno, int
}
stmt_ty
-With(expr_ty context_expr, expr_ty optional_vars, asdl_seq * body, int lineno,
- int col_offset, PyArena *arena)
+With(asdl_seq * items, asdl_seq * body, int lineno, int col_offset, PyArena
+ *arena)
{
stmt_ty p;
- if (!context_expr) {
- PyErr_SetString(PyExc_ValueError,
- "field context_expr is required for With");
- return NULL;
- }
p = (stmt_ty)PyArena_Malloc(arena, sizeof(*p));
if (!p)
return NULL;
p->kind = With_kind;
- p->v.With.context_expr = context_expr;
- p->v.With.optional_vars = optional_vars;
+ p->v.With.items = items;
p->v.With.body = body;
p->lineno = lineno;
p->col_offset = col_offset;
@@ -1273,33 +1335,18 @@ Raise(expr_ty exc, expr_ty cause, int lineno, int col_offset, PyArena *arena)
}
stmt_ty
-TryExcept(asdl_seq * body, asdl_seq * handlers, asdl_seq * orelse, int lineno,
- int col_offset, PyArena *arena)
+Try(asdl_seq * body, asdl_seq * handlers, asdl_seq * orelse, asdl_seq *
+ finalbody, int lineno, int col_offset, PyArena *arena)
{
stmt_ty p;
p = (stmt_ty)PyArena_Malloc(arena, sizeof(*p));
if (!p)
return NULL;
- p->kind = TryExcept_kind;
- p->v.TryExcept.body = body;
- p->v.TryExcept.handlers = handlers;
- p->v.TryExcept.orelse = orelse;
- p->lineno = lineno;
- p->col_offset = col_offset;
- return p;
-}
-
-stmt_ty
-TryFinally(asdl_seq * body, asdl_seq * finalbody, int lineno, int col_offset,
- PyArena *arena)
-{
- stmt_ty p;
- p = (stmt_ty)PyArena_Malloc(arena, sizeof(*p));
- if (!p)
- return NULL;
- p->kind = TryFinally_kind;
- p->v.TryFinally.body = body;
- p->v.TryFinally.finalbody = finalbody;
+ p->kind = Try_kind;
+ p->v.Try.body = body;
+ p->v.Try.handlers = handlers;
+ p->v.Try.orelse = orelse;
+ p->v.Try.finalbody = finalbody;
p->lineno = lineno;
p->col_offset = col_offset;
return p;
@@ -1798,7 +1845,7 @@ Str(string s, int lineno, int col_offset, PyArena *arena)
}
expr_ty
-Bytes(string s, int lineno, int col_offset, PyArena *arena)
+Bytes(bytes s, int lineno, int col_offset, PyArena *arena)
{
expr_ty p;
if (!s) {
@@ -2146,6 +2193,23 @@ alias(identifier name, identifier asname, PyArena *arena)
return p;
}
+withitem_ty
+withitem(expr_ty context_expr, expr_ty optional_vars, PyArena *arena)
+{
+ withitem_ty p;
+ if (!context_expr) {
+ PyErr_SetString(PyExc_ValueError,
+ "field context_expr is required for withitem");
+ return NULL;
+ }
+ p = (withitem_ty)PyArena_Malloc(arena, sizeof(*p));
+ if (!p)
+ return NULL;
+ p->context_expr = context_expr;
+ p->optional_vars = optional_vars;
+ return p;
+}
+
PyObject*
ast2obj_mod(void* _o)
@@ -2163,7 +2227,7 @@ ast2obj_mod(void* _o)
if (!result) goto failed;
value = ast2obj_list(o->v.Module.body, ast2obj_stmt);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "body", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_body, value) == -1)
goto failed;
Py_DECREF(value);
break;
@@ -2172,7 +2236,7 @@ ast2obj_mod(void* _o)
if (!result) goto failed;
value = ast2obj_list(o->v.Interactive.body, ast2obj_stmt);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "body", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_body, value) == -1)
goto failed;
Py_DECREF(value);
break;
@@ -2181,7 +2245,7 @@ ast2obj_mod(void* _o)
if (!result) goto failed;
value = ast2obj_expr(o->v.Expression.body);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "body", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_body, value) == -1)
goto failed;
Py_DECREF(value);
break;
@@ -2190,7 +2254,7 @@ ast2obj_mod(void* _o)
if (!result) goto failed;
value = ast2obj_list(o->v.Suite.body, ast2obj_stmt);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "body", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_body, value) == -1)
goto failed;
Py_DECREF(value);
break;
@@ -2218,29 +2282,29 @@ ast2obj_stmt(void* _o)
if (!result) goto failed;
value = ast2obj_identifier(o->v.FunctionDef.name);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "name", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_name, value) == -1)
goto failed;
Py_DECREF(value);
value = ast2obj_arguments(o->v.FunctionDef.args);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "args", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_args, value) == -1)
goto failed;
Py_DECREF(value);
value = ast2obj_list(o->v.FunctionDef.body, ast2obj_stmt);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "body", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_body, value) == -1)
goto failed;
Py_DECREF(value);
value = ast2obj_list(o->v.FunctionDef.decorator_list,
ast2obj_expr);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "decorator_list", value) ==
+ if (_PyObject_SetAttrId(result, &PyId_decorator_list, value) ==
-1)
goto failed;
Py_DECREF(value);
value = ast2obj_expr(o->v.FunctionDef.returns);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "returns", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_returns, value) == -1)
goto failed;
Py_DECREF(value);
break;
@@ -2249,38 +2313,38 @@ ast2obj_stmt(void* _o)
if (!result) goto failed;
value = ast2obj_identifier(o->v.ClassDef.name);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "name", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_name, value) == -1)
goto failed;
Py_DECREF(value);
value = ast2obj_list(o->v.ClassDef.bases, ast2obj_expr);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "bases", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_bases, value) == -1)
goto failed;
Py_DECREF(value);
value = ast2obj_list(o->v.ClassDef.keywords, ast2obj_keyword);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "keywords", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_keywords, value) == -1)
goto failed;
Py_DECREF(value);
value = ast2obj_expr(o->v.ClassDef.starargs);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "starargs", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_starargs, value) == -1)
goto failed;
Py_DECREF(value);
value = ast2obj_expr(o->v.ClassDef.kwargs);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "kwargs", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_kwargs, value) == -1)
goto failed;
Py_DECREF(value);
value = ast2obj_list(o->v.ClassDef.body, ast2obj_stmt);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "body", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_body, value) == -1)
goto failed;
Py_DECREF(value);
value = ast2obj_list(o->v.ClassDef.decorator_list,
ast2obj_expr);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "decorator_list", value) ==
+ if (_PyObject_SetAttrId(result, &PyId_decorator_list, value) ==
-1)
goto failed;
Py_DECREF(value);
@@ -2290,7 +2354,7 @@ ast2obj_stmt(void* _o)
if (!result) goto failed;
value = ast2obj_expr(o->v.Return.value);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "value", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_value, value) == -1)
goto failed;
Py_DECREF(value);
break;
@@ -2299,7 +2363,7 @@ ast2obj_stmt(void* _o)
if (!result) goto failed;
value = ast2obj_list(o->v.Delete.targets, ast2obj_expr);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "targets", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_targets, value) == -1)
goto failed;
Py_DECREF(value);
break;
@@ -2308,12 +2372,12 @@ ast2obj_stmt(void* _o)
if (!result) goto failed;
value = ast2obj_list(o->v.Assign.targets, ast2obj_expr);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "targets", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_targets, value) == -1)
goto failed;
Py_DECREF(value);
value = ast2obj_expr(o->v.Assign.value);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "value", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_value, value) == -1)
goto failed;
Py_DECREF(value);
break;
@@ -2322,17 +2386,17 @@ ast2obj_stmt(void* _o)
if (!result) goto failed;
value = ast2obj_expr(o->v.AugAssign.target);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "target", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_target, value) == -1)
goto failed;
Py_DECREF(value);
value = ast2obj_operator(o->v.AugAssign.op);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "op", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_op, value) == -1)
goto failed;
Py_DECREF(value);
value = ast2obj_expr(o->v.AugAssign.value);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "value", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_value, value) == -1)
goto failed;
Py_DECREF(value);
break;
@@ -2341,22 +2405,22 @@ ast2obj_stmt(void* _o)
if (!result) goto failed;
value = ast2obj_expr(o->v.For.target);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "target", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_target, value) == -1)
goto failed;
Py_DECREF(value);
value = ast2obj_expr(o->v.For.iter);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "iter", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_iter, value) == -1)
goto failed;
Py_DECREF(value);
value = ast2obj_list(o->v.For.body, ast2obj_stmt);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "body", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_body, value) == -1)
goto failed;
Py_DECREF(value);
value = ast2obj_list(o->v.For.orelse, ast2obj_stmt);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "orelse", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_orelse, value) == -1)
goto failed;
Py_DECREF(value);
break;
@@ -2365,17 +2429,17 @@ ast2obj_stmt(void* _o)
if (!result) goto failed;
value = ast2obj_expr(o->v.While.test);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "test", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_test, value) == -1)
goto failed;
Py_DECREF(value);
value = ast2obj_list(o->v.While.body, ast2obj_stmt);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "body", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_body, value) == -1)
goto failed;
Py_DECREF(value);
value = ast2obj_list(o->v.While.orelse, ast2obj_stmt);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "orelse", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_orelse, value) == -1)
goto failed;
Py_DECREF(value);
break;
@@ -2384,37 +2448,31 @@ ast2obj_stmt(void* _o)
if (!result) goto failed;
value = ast2obj_expr(o->v.If.test);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "test", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_test, value) == -1)
goto failed;
Py_DECREF(value);
value = ast2obj_list(o->v.If.body, ast2obj_stmt);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "body", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_body, value) == -1)
goto failed;
Py_DECREF(value);
value = ast2obj_list(o->v.If.orelse, ast2obj_stmt);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "orelse", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_orelse, value) == -1)
goto failed;
Py_DECREF(value);
break;
case With_kind:
result = PyType_GenericNew(With_type, NULL, NULL);
if (!result) goto failed;
- value = ast2obj_expr(o->v.With.context_expr);
- if (!value) goto failed;
- if (PyObject_SetAttrString(result, "context_expr", value) == -1)
- goto failed;
- Py_DECREF(value);
- value = ast2obj_expr(o->v.With.optional_vars);
+ value = ast2obj_list(o->v.With.items, ast2obj_withitem);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "optional_vars", value) ==
- -1)
+ if (_PyObject_SetAttrId(result, &PyId_items, value) == -1)
goto failed;
Py_DECREF(value);
value = ast2obj_list(o->v.With.body, ast2obj_stmt);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "body", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_body, value) == -1)
goto failed;
Py_DECREF(value);
break;
@@ -2423,46 +2481,36 @@ ast2obj_stmt(void* _o)
if (!result) goto failed;
value = ast2obj_expr(o->v.Raise.exc);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "exc", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_exc, value) == -1)
goto failed;
Py_DECREF(value);
value = ast2obj_expr(o->v.Raise.cause);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "cause", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_cause, value) == -1)
goto failed;
Py_DECREF(value);
break;
- case TryExcept_kind:
- result = PyType_GenericNew(TryExcept_type, NULL, NULL);
+ case Try_kind:
+ result = PyType_GenericNew(Try_type, NULL, NULL);
if (!result) goto failed;
- value = ast2obj_list(o->v.TryExcept.body, ast2obj_stmt);
- if (!value) goto failed;
- if (PyObject_SetAttrString(result, "body", value) == -1)
- goto failed;
- Py_DECREF(value);
- value = ast2obj_list(o->v.TryExcept.handlers,
- ast2obj_excepthandler);
+ value = ast2obj_list(o->v.Try.body, ast2obj_stmt);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "handlers", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_body, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_list(o->v.TryExcept.orelse, ast2obj_stmt);
+ value = ast2obj_list(o->v.Try.handlers, ast2obj_excepthandler);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "orelse", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_handlers, value) == -1)
goto failed;
Py_DECREF(value);
- break;
- case TryFinally_kind:
- result = PyType_GenericNew(TryFinally_type, NULL, NULL);
- if (!result) goto failed;
- value = ast2obj_list(o->v.TryFinally.body, ast2obj_stmt);
+ value = ast2obj_list(o->v.Try.orelse, ast2obj_stmt);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "body", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_orelse, value) == -1)
goto failed;
Py_DECREF(value);
- value = ast2obj_list(o->v.TryFinally.finalbody, ast2obj_stmt);
+ value = ast2obj_list(o->v.Try.finalbody, ast2obj_stmt);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "finalbody", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_finalbody, value) == -1)
goto failed;
Py_DECREF(value);
break;
@@ -2471,12 +2519,12 @@ ast2obj_stmt(void* _o)
if (!result) goto failed;
value = ast2obj_expr(o->v.Assert.test);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "test", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_test, value) == -1)
goto failed;
Py_DECREF(value);
value = ast2obj_expr(o->v.Assert.msg);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "msg", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_msg, value) == -1)
goto failed;
Py_DECREF(value);
break;
@@ -2485,7 +2533,7 @@ ast2obj_stmt(void* _o)
if (!result) goto failed;
value = ast2obj_list(o->v.Import.names, ast2obj_alias);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "names", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_names, value) == -1)
goto failed;
Py_DECREF(value);
break;
@@ -2494,17 +2542,17 @@ ast2obj_stmt(void* _o)
if (!result) goto failed;
value = ast2obj_identifier(o->v.ImportFrom.module);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "module", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_module, value) == -1)
goto failed;
Py_DECREF(value);
value = ast2obj_list(o->v.ImportFrom.names, ast2obj_alias);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "names", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_names, value) == -1)
goto failed;
Py_DECREF(value);
value = ast2obj_int(o->v.ImportFrom.level);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "level", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_level, value) == -1)
goto failed;
Py_DECREF(value);
break;
@@ -2513,7 +2561,7 @@ ast2obj_stmt(void* _o)
if (!result) goto failed;
value = ast2obj_list(o->v.Global.names, ast2obj_identifier);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "names", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_names, value) == -1)
goto failed;
Py_DECREF(value);
break;
@@ -2522,7 +2570,7 @@ ast2obj_stmt(void* _o)
if (!result) goto failed;
value = ast2obj_list(o->v.Nonlocal.names, ast2obj_identifier);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "names", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_names, value) == -1)
goto failed;
Py_DECREF(value);
break;
@@ -2531,7 +2579,7 @@ ast2obj_stmt(void* _o)
if (!result) goto failed;
value = ast2obj_expr(o->v.Expr.value);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "value", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_value, value) == -1)
goto failed;
Py_DECREF(value);
break;
@@ -2550,12 +2598,12 @@ ast2obj_stmt(void* _o)
}
value = ast2obj_int(o->lineno);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "lineno", value) < 0)
+ if (_PyObject_SetAttrId(result, &PyId_lineno, value) < 0)
goto failed;
Py_DECREF(value);
value = ast2obj_int(o->col_offset);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "col_offset", value) < 0)
+ if (_PyObject_SetAttrId(result, &PyId_col_offset, value) < 0)
goto failed;
Py_DECREF(value);
return result;
@@ -2581,12 +2629,12 @@ ast2obj_expr(void* _o)
if (!result) goto failed;
value = ast2obj_boolop(o->v.BoolOp.op);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "op", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_op, value) == -1)
goto failed;
Py_DECREF(value);
value = ast2obj_list(o->v.BoolOp.values, ast2obj_expr);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "values", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_values, value) == -1)
goto failed;
Py_DECREF(value);
break;
@@ -2595,17 +2643,17 @@ ast2obj_expr(void* _o)
if (!result) goto failed;
value = ast2obj_expr(o->v.BinOp.left);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "left", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_left, value) == -1)
goto failed;
Py_DECREF(value);
value = ast2obj_operator(o->v.BinOp.op);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "op", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_op, value) == -1)
goto failed;
Py_DECREF(value);
value = ast2obj_expr(o->v.BinOp.right);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "right", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_right, value) == -1)
goto failed;
Py_DECREF(value);
break;
@@ -2614,12 +2662,12 @@ ast2obj_expr(void* _o)
if (!result) goto failed;
value = ast2obj_unaryop(o->v.UnaryOp.op);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "op", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_op, value) == -1)
goto failed;
Py_DECREF(value);
value = ast2obj_expr(o->v.UnaryOp.operand);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "operand", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_operand, value) == -1)
goto failed;
Py_DECREF(value);
break;
@@ -2628,12 +2676,12 @@ ast2obj_expr(void* _o)
if (!result) goto failed;
value = ast2obj_arguments(o->v.Lambda.args);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "args", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_args, value) == -1)
goto failed;
Py_DECREF(value);
value = ast2obj_expr(o->v.Lambda.body);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "body", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_body, value) == -1)
goto failed;
Py_DECREF(value);
break;
@@ -2642,17 +2690,17 @@ ast2obj_expr(void* _o)
if (!result) goto failed;
value = ast2obj_expr(o->v.IfExp.test);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "test", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_test, value) == -1)
goto failed;
Py_DECREF(value);
value = ast2obj_expr(o->v.IfExp.body);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "body", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_body, value) == -1)
goto failed;
Py_DECREF(value);
value = ast2obj_expr(o->v.IfExp.orelse);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "orelse", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_orelse, value) == -1)
goto failed;
Py_DECREF(value);
break;
@@ -2661,12 +2709,12 @@ ast2obj_expr(void* _o)
if (!result) goto failed;
value = ast2obj_list(o->v.Dict.keys, ast2obj_expr);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "keys", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_keys, value) == -1)
goto failed;
Py_DECREF(value);
value = ast2obj_list(o->v.Dict.values, ast2obj_expr);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "values", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_values, value) == -1)
goto failed;
Py_DECREF(value);
break;
@@ -2675,7 +2723,7 @@ ast2obj_expr(void* _o)
if (!result) goto failed;
value = ast2obj_list(o->v.Set.elts, ast2obj_expr);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "elts", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_elts, value) == -1)
goto failed;
Py_DECREF(value);
break;
@@ -2684,13 +2732,13 @@ ast2obj_expr(void* _o)
if (!result) goto failed;
value = ast2obj_expr(o->v.ListComp.elt);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "elt", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_elt, value) == -1)
goto failed;
Py_DECREF(value);
value = ast2obj_list(o->v.ListComp.generators,
ast2obj_comprehension);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "generators", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_generators, value) == -1)
goto failed;
Py_DECREF(value);
break;
@@ -2699,13 +2747,13 @@ ast2obj_expr(void* _o)
if (!result) goto failed;
value = ast2obj_expr(o->v.SetComp.elt);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "elt", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_elt, value) == -1)
goto failed;
Py_DECREF(value);
value = ast2obj_list(o->v.SetComp.generators,
ast2obj_comprehension);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "generators", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_generators, value) == -1)
goto failed;
Py_DECREF(value);
break;
@@ -2714,18 +2762,18 @@ ast2obj_expr(void* _o)
if (!result) goto failed;
value = ast2obj_expr(o->v.DictComp.key);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "key", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_key, value) == -1)
goto failed;
Py_DECREF(value);
value = ast2obj_expr(o->v.DictComp.value);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "value", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_value, value) == -1)
goto failed;
Py_DECREF(value);
value = ast2obj_list(o->v.DictComp.generators,
ast2obj_comprehension);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "generators", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_generators, value) == -1)
goto failed;
Py_DECREF(value);
break;
@@ -2734,13 +2782,13 @@ ast2obj_expr(void* _o)
if (!result) goto failed;
value = ast2obj_expr(o->v.GeneratorExp.elt);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "elt", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_elt, value) == -1)
goto failed;
Py_DECREF(value);
value = ast2obj_list(o->v.GeneratorExp.generators,
ast2obj_comprehension);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "generators", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_generators, value) == -1)
goto failed;
Py_DECREF(value);
break;
@@ -2749,7 +2797,7 @@ ast2obj_expr(void* _o)
if (!result) goto failed;
value = ast2obj_expr(o->v.Yield.value);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "value", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_value, value) == -1)
goto failed;
Py_DECREF(value);
break;
@@ -2758,7 +2806,7 @@ ast2obj_expr(void* _o)
if (!result) goto failed;
value = ast2obj_expr(o->v.Compare.left);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "left", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_left, value) == -1)
goto failed;
Py_DECREF(value);
{
@@ -2769,12 +2817,12 @@ ast2obj_expr(void* _o)
PyList_SET_ITEM(value, i, ast2obj_cmpop((cmpop_ty)asdl_seq_GET(o->v.Compare.ops, i)));
}
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "ops", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_ops, value) == -1)
goto failed;
Py_DECREF(value);
value = ast2obj_list(o->v.Compare.comparators, ast2obj_expr);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "comparators", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_comparators, value) == -1)
goto failed;
Py_DECREF(value);
break;
@@ -2783,27 +2831,27 @@ ast2obj_expr(void* _o)
if (!result) goto failed;
value = ast2obj_expr(o->v.Call.func);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "func", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_func, value) == -1)
goto failed;
Py_DECREF(value);
value = ast2obj_list(o->v.Call.args, ast2obj_expr);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "args", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_args, value) == -1)
goto failed;
Py_DECREF(value);
value = ast2obj_list(o->v.Call.keywords, ast2obj_keyword);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "keywords", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_keywords, value) == -1)
goto failed;
Py_DECREF(value);
value = ast2obj_expr(o->v.Call.starargs);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "starargs", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_starargs, value) == -1)
goto failed;
Py_DECREF(value);
value = ast2obj_expr(o->v.Call.kwargs);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "kwargs", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_kwargs, value) == -1)
goto failed;
Py_DECREF(value);
break;
@@ -2812,7 +2860,7 @@ ast2obj_expr(void* _o)
if (!result) goto failed;
value = ast2obj_object(o->v.Num.n);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "n", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_n, value) == -1)
goto failed;
Py_DECREF(value);
break;
@@ -2821,16 +2869,16 @@ ast2obj_expr(void* _o)
if (!result) goto failed;
value = ast2obj_string(o->v.Str.s);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "s", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_s, value) == -1)
goto failed;
Py_DECREF(value);
break;
case Bytes_kind:
result = PyType_GenericNew(Bytes_type, NULL, NULL);
if (!result) goto failed;
- value = ast2obj_string(o->v.Bytes.s);
+ value = ast2obj_bytes(o->v.Bytes.s);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "s", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_s, value) == -1)
goto failed;
Py_DECREF(value);
break;
@@ -2843,17 +2891,17 @@ ast2obj_expr(void* _o)
if (!result) goto failed;
value = ast2obj_expr(o->v.Attribute.value);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "value", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_value, value) == -1)
goto failed;
Py_DECREF(value);
value = ast2obj_identifier(o->v.Attribute.attr);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "attr", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_attr, value) == -1)
goto failed;
Py_DECREF(value);
value = ast2obj_expr_context(o->v.Attribute.ctx);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "ctx", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_ctx, value) == -1)
goto failed;
Py_DECREF(value);
break;
@@ -2862,17 +2910,17 @@ ast2obj_expr(void* _o)
if (!result) goto failed;
value = ast2obj_expr(o->v.Subscript.value);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "value", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_value, value) == -1)
goto failed;
Py_DECREF(value);
value = ast2obj_slice(o->v.Subscript.slice);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "slice", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_slice, value) == -1)
goto failed;
Py_DECREF(value);
value = ast2obj_expr_context(o->v.Subscript.ctx);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "ctx", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_ctx, value) == -1)
goto failed;
Py_DECREF(value);
break;
@@ -2881,12 +2929,12 @@ ast2obj_expr(void* _o)
if (!result) goto failed;
value = ast2obj_expr(o->v.Starred.value);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "value", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_value, value) == -1)
goto failed;
Py_DECREF(value);
value = ast2obj_expr_context(o->v.Starred.ctx);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "ctx", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_ctx, value) == -1)
goto failed;
Py_DECREF(value);
break;
@@ -2895,12 +2943,12 @@ ast2obj_expr(void* _o)
if (!result) goto failed;
value = ast2obj_identifier(o->v.Name.id);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "id", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_id, value) == -1)
goto failed;
Py_DECREF(value);
value = ast2obj_expr_context(o->v.Name.ctx);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "ctx", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_ctx, value) == -1)
goto failed;
Py_DECREF(value);
break;
@@ -2909,12 +2957,12 @@ ast2obj_expr(void* _o)
if (!result) goto failed;
value = ast2obj_list(o->v.List.elts, ast2obj_expr);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "elts", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_elts, value) == -1)
goto failed;
Py_DECREF(value);
value = ast2obj_expr_context(o->v.List.ctx);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "ctx", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_ctx, value) == -1)
goto failed;
Py_DECREF(value);
break;
@@ -2923,24 +2971,24 @@ ast2obj_expr(void* _o)
if (!result) goto failed;
value = ast2obj_list(o->v.Tuple.elts, ast2obj_expr);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "elts", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_elts, value) == -1)
goto failed;
Py_DECREF(value);
value = ast2obj_expr_context(o->v.Tuple.ctx);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "ctx", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_ctx, value) == -1)
goto failed;
Py_DECREF(value);
break;
}
value = ast2obj_int(o->lineno);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "lineno", value) < 0)
+ if (_PyObject_SetAttrId(result, &PyId_lineno, value) < 0)
goto failed;
Py_DECREF(value);
value = ast2obj_int(o->col_offset);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "col_offset", value) < 0)
+ if (_PyObject_SetAttrId(result, &PyId_col_offset, value) < 0)
goto failed;
Py_DECREF(value);
return result;
@@ -2993,17 +3041,17 @@ ast2obj_slice(void* _o)
if (!result) goto failed;
value = ast2obj_expr(o->v.Slice.lower);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "lower", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_lower, value) == -1)
goto failed;
Py_DECREF(value);
value = ast2obj_expr(o->v.Slice.upper);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "upper", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_upper, value) == -1)
goto failed;
Py_DECREF(value);
value = ast2obj_expr(o->v.Slice.step);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "step", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_step, value) == -1)
goto failed;
Py_DECREF(value);
break;
@@ -3012,7 +3060,7 @@ ast2obj_slice(void* _o)
if (!result) goto failed;
value = ast2obj_list(o->v.ExtSlice.dims, ast2obj_slice);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "dims", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_dims, value) == -1)
goto failed;
Py_DECREF(value);
break;
@@ -3021,7 +3069,7 @@ ast2obj_slice(void* _o)
if (!result) goto failed;
value = ast2obj_expr(o->v.Index.value);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "value", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_value, value) == -1)
goto failed;
Py_DECREF(value);
break;
@@ -3167,17 +3215,17 @@ ast2obj_comprehension(void* _o)
if (!result) return NULL;
value = ast2obj_expr(o->target);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "target", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_target, value) == -1)
goto failed;
Py_DECREF(value);
value = ast2obj_expr(o->iter);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "iter", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_iter, value) == -1)
goto failed;
Py_DECREF(value);
value = ast2obj_list(o->ifs, ast2obj_expr);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "ifs", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_ifs, value) == -1)
goto failed;
Py_DECREF(value);
return result;
@@ -3203,29 +3251,29 @@ ast2obj_excepthandler(void* _o)
if (!result) goto failed;
value = ast2obj_expr(o->v.ExceptHandler.type);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "type", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_type, value) == -1)
goto failed;
Py_DECREF(value);
value = ast2obj_identifier(o->v.ExceptHandler.name);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "name", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_name, value) == -1)
goto failed;
Py_DECREF(value);
value = ast2obj_list(o->v.ExceptHandler.body, ast2obj_stmt);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "body", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_body, value) == -1)
goto failed;
Py_DECREF(value);
break;
}
value = ast2obj_int(o->lineno);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "lineno", value) < 0)
+ if (_PyObject_SetAttrId(result, &PyId_lineno, value) < 0)
goto failed;
Py_DECREF(value);
value = ast2obj_int(o->col_offset);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "col_offset", value) < 0)
+ if (_PyObject_SetAttrId(result, &PyId_col_offset, value) < 0)
goto failed;
Py_DECREF(value);
return result;
@@ -3249,42 +3297,42 @@ ast2obj_arguments(void* _o)
if (!result) return NULL;
value = ast2obj_list(o->args, ast2obj_arg);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "args", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_args, value) == -1)
goto failed;
Py_DECREF(value);
value = ast2obj_identifier(o->vararg);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "vararg", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_vararg, value) == -1)
goto failed;
Py_DECREF(value);
value = ast2obj_expr(o->varargannotation);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "varargannotation", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_varargannotation, value) == -1)
goto failed;
Py_DECREF(value);
value = ast2obj_list(o->kwonlyargs, ast2obj_arg);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "kwonlyargs", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_kwonlyargs, value) == -1)
goto failed;
Py_DECREF(value);
value = ast2obj_identifier(o->kwarg);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "kwarg", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_kwarg, value) == -1)
goto failed;
Py_DECREF(value);
value = ast2obj_expr(o->kwargannotation);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "kwargannotation", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_kwargannotation, value) == -1)
goto failed;
Py_DECREF(value);
value = ast2obj_list(o->defaults, ast2obj_expr);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "defaults", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_defaults, value) == -1)
goto failed;
Py_DECREF(value);
value = ast2obj_list(o->kw_defaults, ast2obj_expr);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "kw_defaults", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_kw_defaults, value) == -1)
goto failed;
Py_DECREF(value);
return result;
@@ -3308,12 +3356,12 @@ ast2obj_arg(void* _o)
if (!result) return NULL;
value = ast2obj_identifier(o->arg);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "arg", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_arg, value) == -1)
goto failed;
Py_DECREF(value);
value = ast2obj_expr(o->annotation);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "annotation", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_annotation, value) == -1)
goto failed;
Py_DECREF(value);
return result;
@@ -3337,12 +3385,12 @@ ast2obj_keyword(void* _o)
if (!result) return NULL;
value = ast2obj_identifier(o->arg);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "arg", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_arg, value) == -1)
goto failed;
Py_DECREF(value);
value = ast2obj_expr(o->value);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "value", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_value, value) == -1)
goto failed;
Py_DECREF(value);
return result;
@@ -3366,12 +3414,41 @@ ast2obj_alias(void* _o)
if (!result) return NULL;
value = ast2obj_identifier(o->name);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "name", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_name, value) == -1)
goto failed;
Py_DECREF(value);
value = ast2obj_identifier(o->asname);
if (!value) goto failed;
- if (PyObject_SetAttrString(result, "asname", value) == -1)
+ if (_PyObject_SetAttrId(result, &PyId_asname, value) == -1)
+ goto failed;
+ Py_DECREF(value);
+ return result;
+failed:
+ Py_XDECREF(value);
+ Py_XDECREF(result);
+ return NULL;
+}
+
+PyObject*
+ast2obj_withitem(void* _o)
+{
+ withitem_ty o = (withitem_ty)_o;
+ PyObject *result = NULL, *value = NULL;
+ if (!o) {
+ Py_INCREF(Py_None);
+ return Py_None;
+ }
+
+ result = PyType_GenericNew(withitem_type, NULL, NULL);
+ if (!result) return NULL;
+ value = ast2obj_expr(o->context_expr);
+ if (!value) goto failed;
+ if (_PyObject_SetAttrId(result, &PyId_context_expr, value) == -1)
+ goto failed;
+ Py_DECREF(value);
+ value = ast2obj_expr(o->optional_vars);
+ if (!value) goto failed;
+ if (_PyObject_SetAttrId(result, &PyId_optional_vars, value) == -1)
goto failed;
Py_DECREF(value);
return result;
@@ -3400,11 +3477,11 @@ obj2ast_mod(PyObject* obj, mod_ty* out, PyArena* arena)
if (isinstance) {
asdl_seq* body;
- if (PyObject_HasAttrString(obj, "body")) {
+ if (_PyObject_HasAttrId(obj, &PyId_body)) {
int res;
Py_ssize_t len;
Py_ssize_t i;
- tmp = PyObject_GetAttrString(obj, "body");
+ tmp = _PyObject_GetAttrId(obj, &PyId_body);
if (tmp == NULL) goto failed;
if (!PyList_Check(tmp)) {
PyErr_Format(PyExc_TypeError, "Module field \"body\" must be a list, not a %.200s", tmp->ob_type->tp_name);
@@ -3436,11 +3513,11 @@ obj2ast_mod(PyObject* obj, mod_ty* out, PyArena* arena)
if (isinstance) {
asdl_seq* body;
- if (PyObject_HasAttrString(obj, "body")) {
+ if (_PyObject_HasAttrId(obj, &PyId_body)) {
int res;
Py_ssize_t len;
Py_ssize_t i;
- tmp = PyObject_GetAttrString(obj, "body");
+ tmp = _PyObject_GetAttrId(obj, &PyId_body);
if (tmp == NULL) goto failed;
if (!PyList_Check(tmp)) {
PyErr_Format(PyExc_TypeError, "Interactive field \"body\" must be a list, not a %.200s", tmp->ob_type->tp_name);
@@ -3472,9 +3549,9 @@ obj2ast_mod(PyObject* obj, mod_ty* out, PyArena* arena)
if (isinstance) {
expr_ty body;
- if (PyObject_HasAttrString(obj, "body")) {
+ if (_PyObject_HasAttrId(obj, &PyId_body)) {
int res;
- tmp = PyObject_GetAttrString(obj, "body");
+ tmp = _PyObject_GetAttrId(obj, &PyId_body);
if (tmp == NULL) goto failed;
res = obj2ast_expr(tmp, &body, arena);
if (res != 0) goto failed;
@@ -3495,11 +3572,11 @@ obj2ast_mod(PyObject* obj, mod_ty* out, PyArena* arena)
if (isinstance) {
asdl_seq* body;
- if (PyObject_HasAttrString(obj, "body")) {
+ if (_PyObject_HasAttrId(obj, &PyId_body)) {
int res;
Py_ssize_t len;
Py_ssize_t i;
- tmp = PyObject_GetAttrString(obj, "body");
+ tmp = _PyObject_GetAttrId(obj, &PyId_body);
if (tmp == NULL) goto failed;
if (!PyList_Check(tmp)) {
PyErr_Format(PyExc_TypeError, "Suite field \"body\" must be a list, not a %.200s", tmp->ob_type->tp_name);
@@ -3544,9 +3621,9 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
*out = NULL;
return 0;
}
- if (PyObject_HasAttrString(obj, "lineno")) {
+ if (_PyObject_HasAttrId(obj, &PyId_lineno)) {
int res;
- tmp = PyObject_GetAttrString(obj, "lineno");
+ tmp = _PyObject_GetAttrId(obj, &PyId_lineno);
if (tmp == NULL) goto failed;
res = obj2ast_int(tmp, &lineno, arena);
if (res != 0) goto failed;
@@ -3556,9 +3633,9 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
PyErr_SetString(PyExc_TypeError, "required field \"lineno\" missing from stmt");
return 1;
}
- if (PyObject_HasAttrString(obj, "col_offset")) {
+ if (_PyObject_HasAttrId(obj, &PyId_col_offset)) {
int res;
- tmp = PyObject_GetAttrString(obj, "col_offset");
+ tmp = _PyObject_GetAttrId(obj, &PyId_col_offset);
if (tmp == NULL) goto failed;
res = obj2ast_int(tmp, &col_offset, arena);
if (res != 0) goto failed;
@@ -3579,9 +3656,9 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
asdl_seq* decorator_list;
expr_ty returns;
- if (PyObject_HasAttrString(obj, "name")) {
+ if (_PyObject_HasAttrId(obj, &PyId_name)) {
int res;
- tmp = PyObject_GetAttrString(obj, "name");
+ tmp = _PyObject_GetAttrId(obj, &PyId_name);
if (tmp == NULL) goto failed;
res = obj2ast_identifier(tmp, &name, arena);
if (res != 0) goto failed;
@@ -3591,9 +3668,9 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
PyErr_SetString(PyExc_TypeError, "required field \"name\" missing from FunctionDef");
return 1;
}
- if (PyObject_HasAttrString(obj, "args")) {
+ if (_PyObject_HasAttrId(obj, &PyId_args)) {
int res;
- tmp = PyObject_GetAttrString(obj, "args");
+ tmp = _PyObject_GetAttrId(obj, &PyId_args);
if (tmp == NULL) goto failed;
res = obj2ast_arguments(tmp, &args, arena);
if (res != 0) goto failed;
@@ -3603,11 +3680,11 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
PyErr_SetString(PyExc_TypeError, "required field \"args\" missing from FunctionDef");
return 1;
}
- if (PyObject_HasAttrString(obj, "body")) {
+ if (_PyObject_HasAttrId(obj, &PyId_body)) {
int res;
Py_ssize_t len;
Py_ssize_t i;
- tmp = PyObject_GetAttrString(obj, "body");
+ tmp = _PyObject_GetAttrId(obj, &PyId_body);
if (tmp == NULL) goto failed;
if (!PyList_Check(tmp)) {
PyErr_Format(PyExc_TypeError, "FunctionDef field \"body\" must be a list, not a %.200s", tmp->ob_type->tp_name);
@@ -3628,11 +3705,11 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
PyErr_SetString(PyExc_TypeError, "required field \"body\" missing from FunctionDef");
return 1;
}
- if (PyObject_HasAttrString(obj, "decorator_list")) {
+ if (_PyObject_HasAttrId(obj, &PyId_decorator_list)) {
int res;
Py_ssize_t len;
Py_ssize_t i;
- tmp = PyObject_GetAttrString(obj, "decorator_list");
+ tmp = _PyObject_GetAttrId(obj, &PyId_decorator_list);
if (tmp == NULL) goto failed;
if (!PyList_Check(tmp)) {
PyErr_Format(PyExc_TypeError, "FunctionDef field \"decorator_list\" must be a list, not a %.200s", tmp->ob_type->tp_name);
@@ -3653,9 +3730,9 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
PyErr_SetString(PyExc_TypeError, "required field \"decorator_list\" missing from FunctionDef");
return 1;
}
- if (PyObject_HasAttrString(obj, "returns")) {
+ if (_PyObject_HasAttrId(obj, &PyId_returns)) {
int res;
- tmp = PyObject_GetAttrString(obj, "returns");
+ tmp = _PyObject_GetAttrId(obj, &PyId_returns);
if (tmp == NULL) goto failed;
res = obj2ast_expr(tmp, &returns, arena);
if (res != 0) goto failed;
@@ -3682,9 +3759,9 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
asdl_seq* body;
asdl_seq* decorator_list;
- if (PyObject_HasAttrString(obj, "name")) {
+ if (_PyObject_HasAttrId(obj, &PyId_name)) {
int res;
- tmp = PyObject_GetAttrString(obj, "name");
+ tmp = _PyObject_GetAttrId(obj, &PyId_name);
if (tmp == NULL) goto failed;
res = obj2ast_identifier(tmp, &name, arena);
if (res != 0) goto failed;
@@ -3694,11 +3771,11 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
PyErr_SetString(PyExc_TypeError, "required field \"name\" missing from ClassDef");
return 1;
}
- if (PyObject_HasAttrString(obj, "bases")) {
+ if (_PyObject_HasAttrId(obj, &PyId_bases)) {
int res;
Py_ssize_t len;
Py_ssize_t i;
- tmp = PyObject_GetAttrString(obj, "bases");
+ tmp = _PyObject_GetAttrId(obj, &PyId_bases);
if (tmp == NULL) goto failed;
if (!PyList_Check(tmp)) {
PyErr_Format(PyExc_TypeError, "ClassDef field \"bases\" must be a list, not a %.200s", tmp->ob_type->tp_name);
@@ -3719,11 +3796,11 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
PyErr_SetString(PyExc_TypeError, "required field \"bases\" missing from ClassDef");
return 1;
}
- if (PyObject_HasAttrString(obj, "keywords")) {
+ if (_PyObject_HasAttrId(obj, &PyId_keywords)) {
int res;
Py_ssize_t len;
Py_ssize_t i;
- tmp = PyObject_GetAttrString(obj, "keywords");
+ tmp = _PyObject_GetAttrId(obj, &PyId_keywords);
if (tmp == NULL) goto failed;
if (!PyList_Check(tmp)) {
PyErr_Format(PyExc_TypeError, "ClassDef field \"keywords\" must be a list, not a %.200s", tmp->ob_type->tp_name);
@@ -3744,9 +3821,9 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
PyErr_SetString(PyExc_TypeError, "required field \"keywords\" missing from ClassDef");
return 1;
}
- if (PyObject_HasAttrString(obj, "starargs")) {
+ if (_PyObject_HasAttrId(obj, &PyId_starargs)) {
int res;
- tmp = PyObject_GetAttrString(obj, "starargs");
+ tmp = _PyObject_GetAttrId(obj, &PyId_starargs);
if (tmp == NULL) goto failed;
res = obj2ast_expr(tmp, &starargs, arena);
if (res != 0) goto failed;
@@ -3755,9 +3832,9 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
} else {
starargs = NULL;
}
- if (PyObject_HasAttrString(obj, "kwargs")) {
+ if (_PyObject_HasAttrId(obj, &PyId_kwargs)) {
int res;
- tmp = PyObject_GetAttrString(obj, "kwargs");
+ tmp = _PyObject_GetAttrId(obj, &PyId_kwargs);
if (tmp == NULL) goto failed;
res = obj2ast_expr(tmp, &kwargs, arena);
if (res != 0) goto failed;
@@ -3766,11 +3843,11 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
} else {
kwargs = NULL;
}
- if (PyObject_HasAttrString(obj, "body")) {
+ if (_PyObject_HasAttrId(obj, &PyId_body)) {
int res;
Py_ssize_t len;
Py_ssize_t i;
- tmp = PyObject_GetAttrString(obj, "body");
+ tmp = _PyObject_GetAttrId(obj, &PyId_body);
if (tmp == NULL) goto failed;
if (!PyList_Check(tmp)) {
PyErr_Format(PyExc_TypeError, "ClassDef field \"body\" must be a list, not a %.200s", tmp->ob_type->tp_name);
@@ -3791,11 +3868,11 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
PyErr_SetString(PyExc_TypeError, "required field \"body\" missing from ClassDef");
return 1;
}
- if (PyObject_HasAttrString(obj, "decorator_list")) {
+ if (_PyObject_HasAttrId(obj, &PyId_decorator_list)) {
int res;
Py_ssize_t len;
Py_ssize_t i;
- tmp = PyObject_GetAttrString(obj, "decorator_list");
+ tmp = _PyObject_GetAttrId(obj, &PyId_decorator_list);
if (tmp == NULL) goto failed;
if (!PyList_Check(tmp)) {
PyErr_Format(PyExc_TypeError, "ClassDef field \"decorator_list\" must be a list, not a %.200s", tmp->ob_type->tp_name);
@@ -3828,9 +3905,9 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
if (isinstance) {
expr_ty value;
- if (PyObject_HasAttrString(obj, "value")) {
+ if (_PyObject_HasAttrId(obj, &PyId_value)) {
int res;
- tmp = PyObject_GetAttrString(obj, "value");
+ tmp = _PyObject_GetAttrId(obj, &PyId_value);
if (tmp == NULL) goto failed;
res = obj2ast_expr(tmp, &value, arena);
if (res != 0) goto failed;
@@ -3850,11 +3927,11 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
if (isinstance) {
asdl_seq* targets;
- if (PyObject_HasAttrString(obj, "targets")) {
+ if (_PyObject_HasAttrId(obj, &PyId_targets)) {
int res;
Py_ssize_t len;
Py_ssize_t i;
- tmp = PyObject_GetAttrString(obj, "targets");
+ tmp = _PyObject_GetAttrId(obj, &PyId_targets);
if (tmp == NULL) goto failed;
if (!PyList_Check(tmp)) {
PyErr_Format(PyExc_TypeError, "Delete field \"targets\" must be a list, not a %.200s", tmp->ob_type->tp_name);
@@ -3887,11 +3964,11 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
asdl_seq* targets;
expr_ty value;
- if (PyObject_HasAttrString(obj, "targets")) {
+ if (_PyObject_HasAttrId(obj, &PyId_targets)) {
int res;
Py_ssize_t len;
Py_ssize_t i;
- tmp = PyObject_GetAttrString(obj, "targets");
+ tmp = _PyObject_GetAttrId(obj, &PyId_targets);
if (tmp == NULL) goto failed;
if (!PyList_Check(tmp)) {
PyErr_Format(PyExc_TypeError, "Assign field \"targets\" must be a list, not a %.200s", tmp->ob_type->tp_name);
@@ -3912,9 +3989,9 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
PyErr_SetString(PyExc_TypeError, "required field \"targets\" missing from Assign");
return 1;
}
- if (PyObject_HasAttrString(obj, "value")) {
+ if (_PyObject_HasAttrId(obj, &PyId_value)) {
int res;
- tmp = PyObject_GetAttrString(obj, "value");
+ tmp = _PyObject_GetAttrId(obj, &PyId_value);
if (tmp == NULL) goto failed;
res = obj2ast_expr(tmp, &value, arena);
if (res != 0) goto failed;
@@ -3937,9 +4014,9 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
operator_ty op;
expr_ty value;
- if (PyObject_HasAttrString(obj, "target")) {
+ if (_PyObject_HasAttrId(obj, &PyId_target)) {
int res;
- tmp = PyObject_GetAttrString(obj, "target");
+ tmp = _PyObject_GetAttrId(obj, &PyId_target);
if (tmp == NULL) goto failed;
res = obj2ast_expr(tmp, &target, arena);
if (res != 0) goto failed;
@@ -3949,9 +4026,9 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
PyErr_SetString(PyExc_TypeError, "required field \"target\" missing from AugAssign");
return 1;
}
- if (PyObject_HasAttrString(obj, "op")) {
+ if (_PyObject_HasAttrId(obj, &PyId_op)) {
int res;
- tmp = PyObject_GetAttrString(obj, "op");
+ tmp = _PyObject_GetAttrId(obj, &PyId_op);
if (tmp == NULL) goto failed;
res = obj2ast_operator(tmp, &op, arena);
if (res != 0) goto failed;
@@ -3961,9 +4038,9 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
PyErr_SetString(PyExc_TypeError, "required field \"op\" missing from AugAssign");
return 1;
}
- if (PyObject_HasAttrString(obj, "value")) {
+ if (_PyObject_HasAttrId(obj, &PyId_value)) {
int res;
- tmp = PyObject_GetAttrString(obj, "value");
+ tmp = _PyObject_GetAttrId(obj, &PyId_value);
if (tmp == NULL) goto failed;
res = obj2ast_expr(tmp, &value, arena);
if (res != 0) goto failed;
@@ -3987,9 +4064,9 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
asdl_seq* body;
asdl_seq* orelse;
- if (PyObject_HasAttrString(obj, "target")) {
+ if (_PyObject_HasAttrId(obj, &PyId_target)) {
int res;
- tmp = PyObject_GetAttrString(obj, "target");
+ tmp = _PyObject_GetAttrId(obj, &PyId_target);
if (tmp == NULL) goto failed;
res = obj2ast_expr(tmp, &target, arena);
if (res != 0) goto failed;
@@ -3999,9 +4076,9 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
PyErr_SetString(PyExc_TypeError, "required field \"target\" missing from For");
return 1;
}
- if (PyObject_HasAttrString(obj, "iter")) {
+ if (_PyObject_HasAttrId(obj, &PyId_iter)) {
int res;
- tmp = PyObject_GetAttrString(obj, "iter");
+ tmp = _PyObject_GetAttrId(obj, &PyId_iter);
if (tmp == NULL) goto failed;
res = obj2ast_expr(tmp, &iter, arena);
if (res != 0) goto failed;
@@ -4011,11 +4088,11 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
PyErr_SetString(PyExc_TypeError, "required field \"iter\" missing from For");
return 1;
}
- if (PyObject_HasAttrString(obj, "body")) {
+ if (_PyObject_HasAttrId(obj, &PyId_body)) {
int res;
Py_ssize_t len;
Py_ssize_t i;
- tmp = PyObject_GetAttrString(obj, "body");
+ tmp = _PyObject_GetAttrId(obj, &PyId_body);
if (tmp == NULL) goto failed;
if (!PyList_Check(tmp)) {
PyErr_Format(PyExc_TypeError, "For field \"body\" must be a list, not a %.200s", tmp->ob_type->tp_name);
@@ -4036,11 +4113,11 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
PyErr_SetString(PyExc_TypeError, "required field \"body\" missing from For");
return 1;
}
- if (PyObject_HasAttrString(obj, "orelse")) {
+ if (_PyObject_HasAttrId(obj, &PyId_orelse)) {
int res;
Py_ssize_t len;
Py_ssize_t i;
- tmp = PyObject_GetAttrString(obj, "orelse");
+ tmp = _PyObject_GetAttrId(obj, &PyId_orelse);
if (tmp == NULL) goto failed;
if (!PyList_Check(tmp)) {
PyErr_Format(PyExc_TypeError, "For field \"orelse\" must be a list, not a %.200s", tmp->ob_type->tp_name);
@@ -4075,9 +4152,9 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
asdl_seq* body;
asdl_seq* orelse;
- if (PyObject_HasAttrString(obj, "test")) {
+ if (_PyObject_HasAttrId(obj, &PyId_test)) {
int res;
- tmp = PyObject_GetAttrString(obj, "test");
+ tmp = _PyObject_GetAttrId(obj, &PyId_test);
if (tmp == NULL) goto failed;
res = obj2ast_expr(tmp, &test, arena);
if (res != 0) goto failed;
@@ -4087,11 +4164,11 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
PyErr_SetString(PyExc_TypeError, "required field \"test\" missing from While");
return 1;
}
- if (PyObject_HasAttrString(obj, "body")) {
+ if (_PyObject_HasAttrId(obj, &PyId_body)) {
int res;
Py_ssize_t len;
Py_ssize_t i;
- tmp = PyObject_GetAttrString(obj, "body");
+ tmp = _PyObject_GetAttrId(obj, &PyId_body);
if (tmp == NULL) goto failed;
if (!PyList_Check(tmp)) {
PyErr_Format(PyExc_TypeError, "While field \"body\" must be a list, not a %.200s", tmp->ob_type->tp_name);
@@ -4112,11 +4189,11 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
PyErr_SetString(PyExc_TypeError, "required field \"body\" missing from While");
return 1;
}
- if (PyObject_HasAttrString(obj, "orelse")) {
+ if (_PyObject_HasAttrId(obj, &PyId_orelse)) {
int res;
Py_ssize_t len;
Py_ssize_t i;
- tmp = PyObject_GetAttrString(obj, "orelse");
+ tmp = _PyObject_GetAttrId(obj, &PyId_orelse);
if (tmp == NULL) goto failed;
if (!PyList_Check(tmp)) {
PyErr_Format(PyExc_TypeError, "While field \"orelse\" must be a list, not a %.200s", tmp->ob_type->tp_name);
@@ -4150,9 +4227,9 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
asdl_seq* body;
asdl_seq* orelse;
- if (PyObject_HasAttrString(obj, "test")) {
+ if (_PyObject_HasAttrId(obj, &PyId_test)) {
int res;
- tmp = PyObject_GetAttrString(obj, "test");
+ tmp = _PyObject_GetAttrId(obj, &PyId_test);
if (tmp == NULL) goto failed;
res = obj2ast_expr(tmp, &test, arena);
if (res != 0) goto failed;
@@ -4162,11 +4239,11 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
PyErr_SetString(PyExc_TypeError, "required field \"test\" missing from If");
return 1;
}
- if (PyObject_HasAttrString(obj, "body")) {
+ if (_PyObject_HasAttrId(obj, &PyId_body)) {
int res;
Py_ssize_t len;
Py_ssize_t i;
- tmp = PyObject_GetAttrString(obj, "body");
+ tmp = _PyObject_GetAttrId(obj, &PyId_body);
if (tmp == NULL) goto failed;
if (!PyList_Check(tmp)) {
PyErr_Format(PyExc_TypeError, "If field \"body\" must be a list, not a %.200s", tmp->ob_type->tp_name);
@@ -4187,11 +4264,11 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
PyErr_SetString(PyExc_TypeError, "required field \"body\" missing from If");
return 1;
}
- if (PyObject_HasAttrString(obj, "orelse")) {
+ if (_PyObject_HasAttrId(obj, &PyId_orelse)) {
int res;
Py_ssize_t len;
Py_ssize_t i;
- tmp = PyObject_GetAttrString(obj, "orelse");
+ tmp = _PyObject_GetAttrId(obj, &PyId_orelse);
if (tmp == NULL) goto failed;
if (!PyList_Check(tmp)) {
PyErr_Format(PyExc_TypeError, "If field \"orelse\" must be a list, not a %.200s", tmp->ob_type->tp_name);
@@ -4221,38 +4298,39 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
return 1;
}
if (isinstance) {
- expr_ty context_expr;
- expr_ty optional_vars;
+ asdl_seq* items;
asdl_seq* body;
- if (PyObject_HasAttrString(obj, "context_expr")) {
+ if (_PyObject_HasAttrId(obj, &PyId_items)) {
int res;
- tmp = PyObject_GetAttrString(obj, "context_expr");
+ Py_ssize_t len;
+ Py_ssize_t i;
+ tmp = _PyObject_GetAttrId(obj, &PyId_items);
if (tmp == NULL) goto failed;
- res = obj2ast_expr(tmp, &context_expr, arena);
- if (res != 0) goto failed;
+ if (!PyList_Check(tmp)) {
+ PyErr_Format(PyExc_TypeError, "With field \"items\" must be a list, not a %.200s", tmp->ob_type->tp_name);
+ goto failed;
+ }
+ len = PyList_GET_SIZE(tmp);
+ items = asdl_seq_new(len, arena);
+ if (items == NULL) goto failed;
+ for (i = 0; i < len; i++) {
+ withitem_ty value;
+ res = obj2ast_withitem(PyList_GET_ITEM(tmp, i), &value, arena);
+ if (res != 0) goto failed;
+ asdl_seq_SET(items, i, value);
+ }
Py_XDECREF(tmp);
tmp = NULL;
} else {
- PyErr_SetString(PyExc_TypeError, "required field \"context_expr\" missing from With");
+ PyErr_SetString(PyExc_TypeError, "required field \"items\" missing from With");
return 1;
}
- if (PyObject_HasAttrString(obj, "optional_vars")) {
- int res;
- tmp = PyObject_GetAttrString(obj, "optional_vars");
- if (tmp == NULL) goto failed;
- res = obj2ast_expr(tmp, &optional_vars, arena);
- if (res != 0) goto failed;
- Py_XDECREF(tmp);
- tmp = NULL;
- } else {
- optional_vars = NULL;
- }
- if (PyObject_HasAttrString(obj, "body")) {
+ if (_PyObject_HasAttrId(obj, &PyId_body)) {
int res;
Py_ssize_t len;
Py_ssize_t i;
- tmp = PyObject_GetAttrString(obj, "body");
+ tmp = _PyObject_GetAttrId(obj, &PyId_body);
if (tmp == NULL) goto failed;
if (!PyList_Check(tmp)) {
PyErr_Format(PyExc_TypeError, "With field \"body\" must be a list, not a %.200s", tmp->ob_type->tp_name);
@@ -4273,8 +4351,7 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
PyErr_SetString(PyExc_TypeError, "required field \"body\" missing from With");
return 1;
}
- *out = With(context_expr, optional_vars, body, lineno,
- col_offset, arena);
+ *out = With(items, body, lineno, col_offset, arena);
if (*out == NULL) goto failed;
return 0;
}
@@ -4286,9 +4363,9 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
expr_ty exc;
expr_ty cause;
- if (PyObject_HasAttrString(obj, "exc")) {
+ if (_PyObject_HasAttrId(obj, &PyId_exc)) {
int res;
- tmp = PyObject_GetAttrString(obj, "exc");
+ tmp = _PyObject_GetAttrId(obj, &PyId_exc);
if (tmp == NULL) goto failed;
res = obj2ast_expr(tmp, &exc, arena);
if (res != 0) goto failed;
@@ -4297,9 +4374,9 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
} else {
exc = NULL;
}
- if (PyObject_HasAttrString(obj, "cause")) {
+ if (_PyObject_HasAttrId(obj, &PyId_cause)) {
int res;
- tmp = PyObject_GetAttrString(obj, "cause");
+ tmp = _PyObject_GetAttrId(obj, &PyId_cause);
if (tmp == NULL) goto failed;
res = obj2ast_expr(tmp, &cause, arena);
if (res != 0) goto failed;
@@ -4312,7 +4389,7 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
if (*out == NULL) goto failed;
return 0;
}
- isinstance = PyObject_IsInstance(obj, (PyObject*)TryExcept_type);
+ isinstance = PyObject_IsInstance(obj, (PyObject*)Try_type);
if (isinstance == -1) {
return 1;
}
@@ -4320,15 +4397,16 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
asdl_seq* body;
asdl_seq* handlers;
asdl_seq* orelse;
+ asdl_seq* finalbody;
- if (PyObject_HasAttrString(obj, "body")) {
+ if (_PyObject_HasAttrId(obj, &PyId_body)) {
int res;
Py_ssize_t len;
Py_ssize_t i;
- tmp = PyObject_GetAttrString(obj, "body");
+ tmp = _PyObject_GetAttrId(obj, &PyId_body);
if (tmp == NULL) goto failed;
if (!PyList_Check(tmp)) {
- PyErr_Format(PyExc_TypeError, "TryExcept field \"body\" must be a list, not a %.200s", tmp->ob_type->tp_name);
+ PyErr_Format(PyExc_TypeError, "Try field \"body\" must be a list, not a %.200s", tmp->ob_type->tp_name);
goto failed;
}
len = PyList_GET_SIZE(tmp);
@@ -4343,17 +4421,17 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
Py_XDECREF(tmp);
tmp = NULL;
} else {
- PyErr_SetString(PyExc_TypeError, "required field \"body\" missing from TryExcept");
+ PyErr_SetString(PyExc_TypeError, "required field \"body\" missing from Try");
return 1;
}
- if (PyObject_HasAttrString(obj, "handlers")) {
+ if (_PyObject_HasAttrId(obj, &PyId_handlers)) {
int res;
Py_ssize_t len;
Py_ssize_t i;
- tmp = PyObject_GetAttrString(obj, "handlers");
+ tmp = _PyObject_GetAttrId(obj, &PyId_handlers);
if (tmp == NULL) goto failed;
if (!PyList_Check(tmp)) {
- PyErr_Format(PyExc_TypeError, "TryExcept field \"handlers\" must be a list, not a %.200s", tmp->ob_type->tp_name);
+ PyErr_Format(PyExc_TypeError, "Try field \"handlers\" must be a list, not a %.200s", tmp->ob_type->tp_name);
goto failed;
}
len = PyList_GET_SIZE(tmp);
@@ -4368,17 +4446,17 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
Py_XDECREF(tmp);
tmp = NULL;
} else {
- PyErr_SetString(PyExc_TypeError, "required field \"handlers\" missing from TryExcept");
+ PyErr_SetString(PyExc_TypeError, "required field \"handlers\" missing from Try");
return 1;
}
- if (PyObject_HasAttrString(obj, "orelse")) {
+ if (_PyObject_HasAttrId(obj, &PyId_orelse)) {
int res;
Py_ssize_t len;
Py_ssize_t i;
- tmp = PyObject_GetAttrString(obj, "orelse");
+ tmp = _PyObject_GetAttrId(obj, &PyId_orelse);
if (tmp == NULL) goto failed;
if (!PyList_Check(tmp)) {
- PyErr_Format(PyExc_TypeError, "TryExcept field \"orelse\" must be a list, not a %.200s", tmp->ob_type->tp_name);
+ PyErr_Format(PyExc_TypeError, "Try field \"orelse\" must be a list, not a %.200s", tmp->ob_type->tp_name);
goto failed;
}
len = PyList_GET_SIZE(tmp);
@@ -4393,55 +4471,17 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
Py_XDECREF(tmp);
tmp = NULL;
} else {
- PyErr_SetString(PyExc_TypeError, "required field \"orelse\" missing from TryExcept");
- return 1;
- }
- *out = TryExcept(body, handlers, orelse, lineno, col_offset,
- arena);
- if (*out == NULL) goto failed;
- return 0;
- }
- isinstance = PyObject_IsInstance(obj, (PyObject*)TryFinally_type);
- if (isinstance == -1) {
- return 1;
- }
- if (isinstance) {
- asdl_seq* body;
- asdl_seq* finalbody;
-
- if (PyObject_HasAttrString(obj, "body")) {
- int res;
- Py_ssize_t len;
- Py_ssize_t i;
- tmp = PyObject_GetAttrString(obj, "body");
- if (tmp == NULL) goto failed;
- if (!PyList_Check(tmp)) {
- PyErr_Format(PyExc_TypeError, "TryFinally field \"body\" must be a list, not a %.200s", tmp->ob_type->tp_name);
- goto failed;
- }
- len = PyList_GET_SIZE(tmp);
- body = asdl_seq_new(len, arena);
- if (body == NULL) goto failed;
- for (i = 0; i < len; i++) {
- stmt_ty value;
- res = obj2ast_stmt(PyList_GET_ITEM(tmp, i), &value, arena);
- if (res != 0) goto failed;
- asdl_seq_SET(body, i, value);
- }
- Py_XDECREF(tmp);
- tmp = NULL;
- } else {
- PyErr_SetString(PyExc_TypeError, "required field \"body\" missing from TryFinally");
+ PyErr_SetString(PyExc_TypeError, "required field \"orelse\" missing from Try");
return 1;
}
- if (PyObject_HasAttrString(obj, "finalbody")) {
+ if (_PyObject_HasAttrId(obj, &PyId_finalbody)) {
int res;
Py_ssize_t len;
Py_ssize_t i;
- tmp = PyObject_GetAttrString(obj, "finalbody");
+ tmp = _PyObject_GetAttrId(obj, &PyId_finalbody);
if (tmp == NULL) goto failed;
if (!PyList_Check(tmp)) {
- PyErr_Format(PyExc_TypeError, "TryFinally field \"finalbody\" must be a list, not a %.200s", tmp->ob_type->tp_name);
+ PyErr_Format(PyExc_TypeError, "Try field \"finalbody\" must be a list, not a %.200s", tmp->ob_type->tp_name);
goto failed;
}
len = PyList_GET_SIZE(tmp);
@@ -4456,10 +4496,11 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
Py_XDECREF(tmp);
tmp = NULL;
} else {
- PyErr_SetString(PyExc_TypeError, "required field \"finalbody\" missing from TryFinally");
+ PyErr_SetString(PyExc_TypeError, "required field \"finalbody\" missing from Try");
return 1;
}
- *out = TryFinally(body, finalbody, lineno, col_offset, arena);
+ *out = Try(body, handlers, orelse, finalbody, lineno,
+ col_offset, arena);
if (*out == NULL) goto failed;
return 0;
}
@@ -4471,9 +4512,9 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
expr_ty test;
expr_ty msg;
- if (PyObject_HasAttrString(obj, "test")) {
+ if (_PyObject_HasAttrId(obj, &PyId_test)) {
int res;
- tmp = PyObject_GetAttrString(obj, "test");
+ tmp = _PyObject_GetAttrId(obj, &PyId_test);
if (tmp == NULL) goto failed;
res = obj2ast_expr(tmp, &test, arena);
if (res != 0) goto failed;
@@ -4483,9 +4524,9 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
PyErr_SetString(PyExc_TypeError, "required field \"test\" missing from Assert");
return 1;
}
- if (PyObject_HasAttrString(obj, "msg")) {
+ if (_PyObject_HasAttrId(obj, &PyId_msg)) {
int res;
- tmp = PyObject_GetAttrString(obj, "msg");
+ tmp = _PyObject_GetAttrId(obj, &PyId_msg);
if (tmp == NULL) goto failed;
res = obj2ast_expr(tmp, &msg, arena);
if (res != 0) goto failed;
@@ -4505,11 +4546,11 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
if (isinstance) {
asdl_seq* names;
- if (PyObject_HasAttrString(obj, "names")) {
+ if (_PyObject_HasAttrId(obj, &PyId_names)) {
int res;
Py_ssize_t len;
Py_ssize_t i;
- tmp = PyObject_GetAttrString(obj, "names");
+ tmp = _PyObject_GetAttrId(obj, &PyId_names);
if (tmp == NULL) goto failed;
if (!PyList_Check(tmp)) {
PyErr_Format(PyExc_TypeError, "Import field \"names\" must be a list, not a %.200s", tmp->ob_type->tp_name);
@@ -4543,9 +4584,9 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
asdl_seq* names;
int level;
- if (PyObject_HasAttrString(obj, "module")) {
+ if (_PyObject_HasAttrId(obj, &PyId_module)) {
int res;
- tmp = PyObject_GetAttrString(obj, "module");
+ tmp = _PyObject_GetAttrId(obj, &PyId_module);
if (tmp == NULL) goto failed;
res = obj2ast_identifier(tmp, &module, arena);
if (res != 0) goto failed;
@@ -4554,11 +4595,11 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
} else {
module = NULL;
}
- if (PyObject_HasAttrString(obj, "names")) {
+ if (_PyObject_HasAttrId(obj, &PyId_names)) {
int res;
Py_ssize_t len;
Py_ssize_t i;
- tmp = PyObject_GetAttrString(obj, "names");
+ tmp = _PyObject_GetAttrId(obj, &PyId_names);
if (tmp == NULL) goto failed;
if (!PyList_Check(tmp)) {
PyErr_Format(PyExc_TypeError, "ImportFrom field \"names\" must be a list, not a %.200s", tmp->ob_type->tp_name);
@@ -4579,9 +4620,9 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
PyErr_SetString(PyExc_TypeError, "required field \"names\" missing from ImportFrom");
return 1;
}
- if (PyObject_HasAttrString(obj, "level")) {
+ if (_PyObject_HasAttrId(obj, &PyId_level)) {
int res;
- tmp = PyObject_GetAttrString(obj, "level");
+ tmp = _PyObject_GetAttrId(obj, &PyId_level);
if (tmp == NULL) goto failed;
res = obj2ast_int(tmp, &level, arena);
if (res != 0) goto failed;
@@ -4602,11 +4643,11 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
if (isinstance) {
asdl_seq* names;
- if (PyObject_HasAttrString(obj, "names")) {
+ if (_PyObject_HasAttrId(obj, &PyId_names)) {
int res;
Py_ssize_t len;
Py_ssize_t i;
- tmp = PyObject_GetAttrString(obj, "names");
+ tmp = _PyObject_GetAttrId(obj, &PyId_names);
if (tmp == NULL) goto failed;
if (!PyList_Check(tmp)) {
PyErr_Format(PyExc_TypeError, "Global field \"names\" must be a list, not a %.200s", tmp->ob_type->tp_name);
@@ -4638,11 +4679,11 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
if (isinstance) {
asdl_seq* names;
- if (PyObject_HasAttrString(obj, "names")) {
+ if (_PyObject_HasAttrId(obj, &PyId_names)) {
int res;
Py_ssize_t len;
Py_ssize_t i;
- tmp = PyObject_GetAttrString(obj, "names");
+ tmp = _PyObject_GetAttrId(obj, &PyId_names);
if (tmp == NULL) goto failed;
if (!PyList_Check(tmp)) {
PyErr_Format(PyExc_TypeError, "Nonlocal field \"names\" must be a list, not a %.200s", tmp->ob_type->tp_name);
@@ -4674,9 +4715,9 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
if (isinstance) {
expr_ty value;
- if (PyObject_HasAttrString(obj, "value")) {
+ if (_PyObject_HasAttrId(obj, &PyId_value)) {
int res;
- tmp = PyObject_GetAttrString(obj, "value");
+ tmp = _PyObject_GetAttrId(obj, &PyId_value);
if (tmp == NULL) goto failed;
res = obj2ast_expr(tmp, &value, arena);
if (res != 0) goto failed;
@@ -4740,9 +4781,9 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
*out = NULL;
return 0;
}
- if (PyObject_HasAttrString(obj, "lineno")) {
+ if (_PyObject_HasAttrId(obj, &PyId_lineno)) {
int res;
- tmp = PyObject_GetAttrString(obj, "lineno");
+ tmp = _PyObject_GetAttrId(obj, &PyId_lineno);
if (tmp == NULL) goto failed;
res = obj2ast_int(tmp, &lineno, arena);
if (res != 0) goto failed;
@@ -4752,9 +4793,9 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
PyErr_SetString(PyExc_TypeError, "required field \"lineno\" missing from expr");
return 1;
}
- if (PyObject_HasAttrString(obj, "col_offset")) {
+ if (_PyObject_HasAttrId(obj, &PyId_col_offset)) {
int res;
- tmp = PyObject_GetAttrString(obj, "col_offset");
+ tmp = _PyObject_GetAttrId(obj, &PyId_col_offset);
if (tmp == NULL) goto failed;
res = obj2ast_int(tmp, &col_offset, arena);
if (res != 0) goto failed;
@@ -4772,9 +4813,9 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
boolop_ty op;
asdl_seq* values;
- if (PyObject_HasAttrString(obj, "op")) {
+ if (_PyObject_HasAttrId(obj, &PyId_op)) {
int res;
- tmp = PyObject_GetAttrString(obj, "op");
+ tmp = _PyObject_GetAttrId(obj, &PyId_op);
if (tmp == NULL) goto failed;
res = obj2ast_boolop(tmp, &op, arena);
if (res != 0) goto failed;
@@ -4784,11 +4825,11 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
PyErr_SetString(PyExc_TypeError, "required field \"op\" missing from BoolOp");
return 1;
}
- if (PyObject_HasAttrString(obj, "values")) {
+ if (_PyObject_HasAttrId(obj, &PyId_values)) {
int res;
Py_ssize_t len;
Py_ssize_t i;
- tmp = PyObject_GetAttrString(obj, "values");
+ tmp = _PyObject_GetAttrId(obj, &PyId_values);
if (tmp == NULL) goto failed;
if (!PyList_Check(tmp)) {
PyErr_Format(PyExc_TypeError, "BoolOp field \"values\" must be a list, not a %.200s", tmp->ob_type->tp_name);
@@ -4822,9 +4863,9 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
operator_ty op;
expr_ty right;
- if (PyObject_HasAttrString(obj, "left")) {
+ if (_PyObject_HasAttrId(obj, &PyId_left)) {
int res;
- tmp = PyObject_GetAttrString(obj, "left");
+ tmp = _PyObject_GetAttrId(obj, &PyId_left);
if (tmp == NULL) goto failed;
res = obj2ast_expr(tmp, &left, arena);
if (res != 0) goto failed;
@@ -4834,9 +4875,9 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
PyErr_SetString(PyExc_TypeError, "required field \"left\" missing from BinOp");
return 1;
}
- if (PyObject_HasAttrString(obj, "op")) {
+ if (_PyObject_HasAttrId(obj, &PyId_op)) {
int res;
- tmp = PyObject_GetAttrString(obj, "op");
+ tmp = _PyObject_GetAttrId(obj, &PyId_op);
if (tmp == NULL) goto failed;
res = obj2ast_operator(tmp, &op, arena);
if (res != 0) goto failed;
@@ -4846,9 +4887,9 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
PyErr_SetString(PyExc_TypeError, "required field \"op\" missing from BinOp");
return 1;
}
- if (PyObject_HasAttrString(obj, "right")) {
+ if (_PyObject_HasAttrId(obj, &PyId_right)) {
int res;
- tmp = PyObject_GetAttrString(obj, "right");
+ tmp = _PyObject_GetAttrId(obj, &PyId_right);
if (tmp == NULL) goto failed;
res = obj2ast_expr(tmp, &right, arena);
if (res != 0) goto failed;
@@ -4870,9 +4911,9 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
unaryop_ty op;
expr_ty operand;
- if (PyObject_HasAttrString(obj, "op")) {
+ if (_PyObject_HasAttrId(obj, &PyId_op)) {
int res;
- tmp = PyObject_GetAttrString(obj, "op");
+ tmp = _PyObject_GetAttrId(obj, &PyId_op);
if (tmp == NULL) goto failed;
res = obj2ast_unaryop(tmp, &op, arena);
if (res != 0) goto failed;
@@ -4882,9 +4923,9 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
PyErr_SetString(PyExc_TypeError, "required field \"op\" missing from UnaryOp");
return 1;
}
- if (PyObject_HasAttrString(obj, "operand")) {
+ if (_PyObject_HasAttrId(obj, &PyId_operand)) {
int res;
- tmp = PyObject_GetAttrString(obj, "operand");
+ tmp = _PyObject_GetAttrId(obj, &PyId_operand);
if (tmp == NULL) goto failed;
res = obj2ast_expr(tmp, &operand, arena);
if (res != 0) goto failed;
@@ -4906,9 +4947,9 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
arguments_ty args;
expr_ty body;
- if (PyObject_HasAttrString(obj, "args")) {
+ if (_PyObject_HasAttrId(obj, &PyId_args)) {
int res;
- tmp = PyObject_GetAttrString(obj, "args");
+ tmp = _PyObject_GetAttrId(obj, &PyId_args);
if (tmp == NULL) goto failed;
res = obj2ast_arguments(tmp, &args, arena);
if (res != 0) goto failed;
@@ -4918,9 +4959,9 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
PyErr_SetString(PyExc_TypeError, "required field \"args\" missing from Lambda");
return 1;
}
- if (PyObject_HasAttrString(obj, "body")) {
+ if (_PyObject_HasAttrId(obj, &PyId_body)) {
int res;
- tmp = PyObject_GetAttrString(obj, "body");
+ tmp = _PyObject_GetAttrId(obj, &PyId_body);
if (tmp == NULL) goto failed;
res = obj2ast_expr(tmp, &body, arena);
if (res != 0) goto failed;
@@ -4943,9 +4984,9 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
expr_ty body;
expr_ty orelse;
- if (PyObject_HasAttrString(obj, "test")) {
+ if (_PyObject_HasAttrId(obj, &PyId_test)) {
int res;
- tmp = PyObject_GetAttrString(obj, "test");
+ tmp = _PyObject_GetAttrId(obj, &PyId_test);
if (tmp == NULL) goto failed;
res = obj2ast_expr(tmp, &test, arena);
if (res != 0) goto failed;
@@ -4955,9 +4996,9 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
PyErr_SetString(PyExc_TypeError, "required field \"test\" missing from IfExp");
return 1;
}
- if (PyObject_HasAttrString(obj, "body")) {
+ if (_PyObject_HasAttrId(obj, &PyId_body)) {
int res;
- tmp = PyObject_GetAttrString(obj, "body");
+ tmp = _PyObject_GetAttrId(obj, &PyId_body);
if (tmp == NULL) goto failed;
res = obj2ast_expr(tmp, &body, arena);
if (res != 0) goto failed;
@@ -4967,9 +5008,9 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
PyErr_SetString(PyExc_TypeError, "required field \"body\" missing from IfExp");
return 1;
}
- if (PyObject_HasAttrString(obj, "orelse")) {
+ if (_PyObject_HasAttrId(obj, &PyId_orelse)) {
int res;
- tmp = PyObject_GetAttrString(obj, "orelse");
+ tmp = _PyObject_GetAttrId(obj, &PyId_orelse);
if (tmp == NULL) goto failed;
res = obj2ast_expr(tmp, &orelse, arena);
if (res != 0) goto failed;
@@ -4991,11 +5032,11 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
asdl_seq* keys;
asdl_seq* values;
- if (PyObject_HasAttrString(obj, "keys")) {
+ if (_PyObject_HasAttrId(obj, &PyId_keys)) {
int res;
Py_ssize_t len;
Py_ssize_t i;
- tmp = PyObject_GetAttrString(obj, "keys");
+ tmp = _PyObject_GetAttrId(obj, &PyId_keys);
if (tmp == NULL) goto failed;
if (!PyList_Check(tmp)) {
PyErr_Format(PyExc_TypeError, "Dict field \"keys\" must be a list, not a %.200s", tmp->ob_type->tp_name);
@@ -5016,11 +5057,11 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
PyErr_SetString(PyExc_TypeError, "required field \"keys\" missing from Dict");
return 1;
}
- if (PyObject_HasAttrString(obj, "values")) {
+ if (_PyObject_HasAttrId(obj, &PyId_values)) {
int res;
Py_ssize_t len;
Py_ssize_t i;
- tmp = PyObject_GetAttrString(obj, "values");
+ tmp = _PyObject_GetAttrId(obj, &PyId_values);
if (tmp == NULL) goto failed;
if (!PyList_Check(tmp)) {
PyErr_Format(PyExc_TypeError, "Dict field \"values\" must be a list, not a %.200s", tmp->ob_type->tp_name);
@@ -5052,11 +5093,11 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
if (isinstance) {
asdl_seq* elts;
- if (PyObject_HasAttrString(obj, "elts")) {
+ if (_PyObject_HasAttrId(obj, &PyId_elts)) {
int res;
Py_ssize_t len;
Py_ssize_t i;
- tmp = PyObject_GetAttrString(obj, "elts");
+ tmp = _PyObject_GetAttrId(obj, &PyId_elts);
if (tmp == NULL) goto failed;
if (!PyList_Check(tmp)) {
PyErr_Format(PyExc_TypeError, "Set field \"elts\" must be a list, not a %.200s", tmp->ob_type->tp_name);
@@ -5089,9 +5130,9 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
expr_ty elt;
asdl_seq* generators;
- if (PyObject_HasAttrString(obj, "elt")) {
+ if (_PyObject_HasAttrId(obj, &PyId_elt)) {
int res;
- tmp = PyObject_GetAttrString(obj, "elt");
+ tmp = _PyObject_GetAttrId(obj, &PyId_elt);
if (tmp == NULL) goto failed;
res = obj2ast_expr(tmp, &elt, arena);
if (res != 0) goto failed;
@@ -5101,11 +5142,11 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
PyErr_SetString(PyExc_TypeError, "required field \"elt\" missing from ListComp");
return 1;
}
- if (PyObject_HasAttrString(obj, "generators")) {
+ if (_PyObject_HasAttrId(obj, &PyId_generators)) {
int res;
Py_ssize_t len;
Py_ssize_t i;
- tmp = PyObject_GetAttrString(obj, "generators");
+ tmp = _PyObject_GetAttrId(obj, &PyId_generators);
if (tmp == NULL) goto failed;
if (!PyList_Check(tmp)) {
PyErr_Format(PyExc_TypeError, "ListComp field \"generators\" must be a list, not a %.200s", tmp->ob_type->tp_name);
@@ -5138,9 +5179,9 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
expr_ty elt;
asdl_seq* generators;
- if (PyObject_HasAttrString(obj, "elt")) {
+ if (_PyObject_HasAttrId(obj, &PyId_elt)) {
int res;
- tmp = PyObject_GetAttrString(obj, "elt");
+ tmp = _PyObject_GetAttrId(obj, &PyId_elt);
if (tmp == NULL) goto failed;
res = obj2ast_expr(tmp, &elt, arena);
if (res != 0) goto failed;
@@ -5150,11 +5191,11 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
PyErr_SetString(PyExc_TypeError, "required field \"elt\" missing from SetComp");
return 1;
}
- if (PyObject_HasAttrString(obj, "generators")) {
+ if (_PyObject_HasAttrId(obj, &PyId_generators)) {
int res;
Py_ssize_t len;
Py_ssize_t i;
- tmp = PyObject_GetAttrString(obj, "generators");
+ tmp = _PyObject_GetAttrId(obj, &PyId_generators);
if (tmp == NULL) goto failed;
if (!PyList_Check(tmp)) {
PyErr_Format(PyExc_TypeError, "SetComp field \"generators\" must be a list, not a %.200s", tmp->ob_type->tp_name);
@@ -5188,9 +5229,9 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
expr_ty value;
asdl_seq* generators;
- if (PyObject_HasAttrString(obj, "key")) {
+ if (_PyObject_HasAttrId(obj, &PyId_key)) {
int res;
- tmp = PyObject_GetAttrString(obj, "key");
+ tmp = _PyObject_GetAttrId(obj, &PyId_key);
if (tmp == NULL) goto failed;
res = obj2ast_expr(tmp, &key, arena);
if (res != 0) goto failed;
@@ -5200,9 +5241,9 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
PyErr_SetString(PyExc_TypeError, "required field \"key\" missing from DictComp");
return 1;
}
- if (PyObject_HasAttrString(obj, "value")) {
+ if (_PyObject_HasAttrId(obj, &PyId_value)) {
int res;
- tmp = PyObject_GetAttrString(obj, "value");
+ tmp = _PyObject_GetAttrId(obj, &PyId_value);
if (tmp == NULL) goto failed;
res = obj2ast_expr(tmp, &value, arena);
if (res != 0) goto failed;
@@ -5212,11 +5253,11 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
PyErr_SetString(PyExc_TypeError, "required field \"value\" missing from DictComp");
return 1;
}
- if (PyObject_HasAttrString(obj, "generators")) {
+ if (_PyObject_HasAttrId(obj, &PyId_generators)) {
int res;
Py_ssize_t len;
Py_ssize_t i;
- tmp = PyObject_GetAttrString(obj, "generators");
+ tmp = _PyObject_GetAttrId(obj, &PyId_generators);
if (tmp == NULL) goto failed;
if (!PyList_Check(tmp)) {
PyErr_Format(PyExc_TypeError, "DictComp field \"generators\" must be a list, not a %.200s", tmp->ob_type->tp_name);
@@ -5250,9 +5291,9 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
expr_ty elt;
asdl_seq* generators;
- if (PyObject_HasAttrString(obj, "elt")) {
+ if (_PyObject_HasAttrId(obj, &PyId_elt)) {
int res;
- tmp = PyObject_GetAttrString(obj, "elt");
+ tmp = _PyObject_GetAttrId(obj, &PyId_elt);
if (tmp == NULL) goto failed;
res = obj2ast_expr(tmp, &elt, arena);
if (res != 0) goto failed;
@@ -5262,11 +5303,11 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
PyErr_SetString(PyExc_TypeError, "required field \"elt\" missing from GeneratorExp");
return 1;
}
- if (PyObject_HasAttrString(obj, "generators")) {
+ if (_PyObject_HasAttrId(obj, &PyId_generators)) {
int res;
Py_ssize_t len;
Py_ssize_t i;
- tmp = PyObject_GetAttrString(obj, "generators");
+ tmp = _PyObject_GetAttrId(obj, &PyId_generators);
if (tmp == NULL) goto failed;
if (!PyList_Check(tmp)) {
PyErr_Format(PyExc_TypeError, "GeneratorExp field \"generators\" must be a list, not a %.200s", tmp->ob_type->tp_name);
@@ -5298,9 +5339,9 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
if (isinstance) {
expr_ty value;
- if (PyObject_HasAttrString(obj, "value")) {
+ if (_PyObject_HasAttrId(obj, &PyId_value)) {
int res;
- tmp = PyObject_GetAttrString(obj, "value");
+ tmp = _PyObject_GetAttrId(obj, &PyId_value);
if (tmp == NULL) goto failed;
res = obj2ast_expr(tmp, &value, arena);
if (res != 0) goto failed;
@@ -5322,9 +5363,9 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
asdl_int_seq* ops;
asdl_seq* comparators;
- if (PyObject_HasAttrString(obj, "left")) {
+ if (_PyObject_HasAttrId(obj, &PyId_left)) {
int res;
- tmp = PyObject_GetAttrString(obj, "left");
+ tmp = _PyObject_GetAttrId(obj, &PyId_left);
if (tmp == NULL) goto failed;
res = obj2ast_expr(tmp, &left, arena);
if (res != 0) goto failed;
@@ -5334,11 +5375,11 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
PyErr_SetString(PyExc_TypeError, "required field \"left\" missing from Compare");
return 1;
}
- if (PyObject_HasAttrString(obj, "ops")) {
+ if (_PyObject_HasAttrId(obj, &PyId_ops)) {
int res;
Py_ssize_t len;
Py_ssize_t i;
- tmp = PyObject_GetAttrString(obj, "ops");
+ tmp = _PyObject_GetAttrId(obj, &PyId_ops);
if (tmp == NULL) goto failed;
if (!PyList_Check(tmp)) {
PyErr_Format(PyExc_TypeError, "Compare field \"ops\" must be a list, not a %.200s", tmp->ob_type->tp_name);
@@ -5359,11 +5400,11 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
PyErr_SetString(PyExc_TypeError, "required field \"ops\" missing from Compare");
return 1;
}
- if (PyObject_HasAttrString(obj, "comparators")) {
+ if (_PyObject_HasAttrId(obj, &PyId_comparators)) {
int res;
Py_ssize_t len;
Py_ssize_t i;
- tmp = PyObject_GetAttrString(obj, "comparators");
+ tmp = _PyObject_GetAttrId(obj, &PyId_comparators);
if (tmp == NULL) goto failed;
if (!PyList_Check(tmp)) {
PyErr_Format(PyExc_TypeError, "Compare field \"comparators\" must be a list, not a %.200s", tmp->ob_type->tp_name);
@@ -5400,9 +5441,9 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
expr_ty starargs;
expr_ty kwargs;
- if (PyObject_HasAttrString(obj, "func")) {
+ if (_PyObject_HasAttrId(obj, &PyId_func)) {
int res;
- tmp = PyObject_GetAttrString(obj, "func");
+ tmp = _PyObject_GetAttrId(obj, &PyId_func);
if (tmp == NULL) goto failed;
res = obj2ast_expr(tmp, &func, arena);
if (res != 0) goto failed;
@@ -5412,11 +5453,11 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
PyErr_SetString(PyExc_TypeError, "required field \"func\" missing from Call");
return 1;
}
- if (PyObject_HasAttrString(obj, "args")) {
+ if (_PyObject_HasAttrId(obj, &PyId_args)) {
int res;
Py_ssize_t len;
Py_ssize_t i;
- tmp = PyObject_GetAttrString(obj, "args");
+ tmp = _PyObject_GetAttrId(obj, &PyId_args);
if (tmp == NULL) goto failed;
if (!PyList_Check(tmp)) {
PyErr_Format(PyExc_TypeError, "Call field \"args\" must be a list, not a %.200s", tmp->ob_type->tp_name);
@@ -5437,11 +5478,11 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
PyErr_SetString(PyExc_TypeError, "required field \"args\" missing from Call");
return 1;
}
- if (PyObject_HasAttrString(obj, "keywords")) {
+ if (_PyObject_HasAttrId(obj, &PyId_keywords)) {
int res;
Py_ssize_t len;
Py_ssize_t i;
- tmp = PyObject_GetAttrString(obj, "keywords");
+ tmp = _PyObject_GetAttrId(obj, &PyId_keywords);
if (tmp == NULL) goto failed;
if (!PyList_Check(tmp)) {
PyErr_Format(PyExc_TypeError, "Call field \"keywords\" must be a list, not a %.200s", tmp->ob_type->tp_name);
@@ -5462,9 +5503,9 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
PyErr_SetString(PyExc_TypeError, "required field \"keywords\" missing from Call");
return 1;
}
- if (PyObject_HasAttrString(obj, "starargs")) {
+ if (_PyObject_HasAttrId(obj, &PyId_starargs)) {
int res;
- tmp = PyObject_GetAttrString(obj, "starargs");
+ tmp = _PyObject_GetAttrId(obj, &PyId_starargs);
if (tmp == NULL) goto failed;
res = obj2ast_expr(tmp, &starargs, arena);
if (res != 0) goto failed;
@@ -5473,9 +5514,9 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
} else {
starargs = NULL;
}
- if (PyObject_HasAttrString(obj, "kwargs")) {
+ if (_PyObject_HasAttrId(obj, &PyId_kwargs)) {
int res;
- tmp = PyObject_GetAttrString(obj, "kwargs");
+ tmp = _PyObject_GetAttrId(obj, &PyId_kwargs);
if (tmp == NULL) goto failed;
res = obj2ast_expr(tmp, &kwargs, arena);
if (res != 0) goto failed;
@@ -5496,9 +5537,9 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
if (isinstance) {
object n;
- if (PyObject_HasAttrString(obj, "n")) {
+ if (_PyObject_HasAttrId(obj, &PyId_n)) {
int res;
- tmp = PyObject_GetAttrString(obj, "n");
+ tmp = _PyObject_GetAttrId(obj, &PyId_n);
if (tmp == NULL) goto failed;
res = obj2ast_object(tmp, &n, arena);
if (res != 0) goto failed;
@@ -5519,9 +5560,9 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
if (isinstance) {
string s;
- if (PyObject_HasAttrString(obj, "s")) {
+ if (_PyObject_HasAttrId(obj, &PyId_s)) {
int res;
- tmp = PyObject_GetAttrString(obj, "s");
+ tmp = _PyObject_GetAttrId(obj, &PyId_s);
if (tmp == NULL) goto failed;
res = obj2ast_string(tmp, &s, arena);
if (res != 0) goto failed;
@@ -5540,13 +5581,13 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
return 1;
}
if (isinstance) {
- string s;
+ bytes s;
- if (PyObject_HasAttrString(obj, "s")) {
+ if (_PyObject_HasAttrId(obj, &PyId_s)) {
int res;
- tmp = PyObject_GetAttrString(obj, "s");
+ tmp = _PyObject_GetAttrId(obj, &PyId_s);
if (tmp == NULL) goto failed;
- res = obj2ast_string(tmp, &s, arena);
+ res = obj2ast_bytes(tmp, &s, arena);
if (res != 0) goto failed;
Py_XDECREF(tmp);
tmp = NULL;
@@ -5577,9 +5618,9 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
identifier attr;
expr_context_ty ctx;
- if (PyObject_HasAttrString(obj, "value")) {
+ if (_PyObject_HasAttrId(obj, &PyId_value)) {
int res;
- tmp = PyObject_GetAttrString(obj, "value");
+ tmp = _PyObject_GetAttrId(obj, &PyId_value);
if (tmp == NULL) goto failed;
res = obj2ast_expr(tmp, &value, arena);
if (res != 0) goto failed;
@@ -5589,9 +5630,9 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
PyErr_SetString(PyExc_TypeError, "required field \"value\" missing from Attribute");
return 1;
}
- if (PyObject_HasAttrString(obj, "attr")) {
+ if (_PyObject_HasAttrId(obj, &PyId_attr)) {
int res;
- tmp = PyObject_GetAttrString(obj, "attr");
+ tmp = _PyObject_GetAttrId(obj, &PyId_attr);
if (tmp == NULL) goto failed;
res = obj2ast_identifier(tmp, &attr, arena);
if (res != 0) goto failed;
@@ -5601,9 +5642,9 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
PyErr_SetString(PyExc_TypeError, "required field \"attr\" missing from Attribute");
return 1;
}
- if (PyObject_HasAttrString(obj, "ctx")) {
+ if (_PyObject_HasAttrId(obj, &PyId_ctx)) {
int res;
- tmp = PyObject_GetAttrString(obj, "ctx");
+ tmp = _PyObject_GetAttrId(obj, &PyId_ctx);
if (tmp == NULL) goto failed;
res = obj2ast_expr_context(tmp, &ctx, arena);
if (res != 0) goto failed;
@@ -5626,9 +5667,9 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
slice_ty slice;
expr_context_ty ctx;
- if (PyObject_HasAttrString(obj, "value")) {
+ if (_PyObject_HasAttrId(obj, &PyId_value)) {
int res;
- tmp = PyObject_GetAttrString(obj, "value");
+ tmp = _PyObject_GetAttrId(obj, &PyId_value);
if (tmp == NULL) goto failed;
res = obj2ast_expr(tmp, &value, arena);
if (res != 0) goto failed;
@@ -5638,9 +5679,9 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
PyErr_SetString(PyExc_TypeError, "required field \"value\" missing from Subscript");
return 1;
}
- if (PyObject_HasAttrString(obj, "slice")) {
+ if (_PyObject_HasAttrId(obj, &PyId_slice)) {
int res;
- tmp = PyObject_GetAttrString(obj, "slice");
+ tmp = _PyObject_GetAttrId(obj, &PyId_slice);
if (tmp == NULL) goto failed;
res = obj2ast_slice(tmp, &slice, arena);
if (res != 0) goto failed;
@@ -5650,9 +5691,9 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
PyErr_SetString(PyExc_TypeError, "required field \"slice\" missing from Subscript");
return 1;
}
- if (PyObject_HasAttrString(obj, "ctx")) {
+ if (_PyObject_HasAttrId(obj, &PyId_ctx)) {
int res;
- tmp = PyObject_GetAttrString(obj, "ctx");
+ tmp = _PyObject_GetAttrId(obj, &PyId_ctx);
if (tmp == NULL) goto failed;
res = obj2ast_expr_context(tmp, &ctx, arena);
if (res != 0) goto failed;
@@ -5674,9 +5715,9 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
expr_ty value;
expr_context_ty ctx;
- if (PyObject_HasAttrString(obj, "value")) {
+ if (_PyObject_HasAttrId(obj, &PyId_value)) {
int res;
- tmp = PyObject_GetAttrString(obj, "value");
+ tmp = _PyObject_GetAttrId(obj, &PyId_value);
if (tmp == NULL) goto failed;
res = obj2ast_expr(tmp, &value, arena);
if (res != 0) goto failed;
@@ -5686,9 +5727,9 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
PyErr_SetString(PyExc_TypeError, "required field \"value\" missing from Starred");
return 1;
}
- if (PyObject_HasAttrString(obj, "ctx")) {
+ if (_PyObject_HasAttrId(obj, &PyId_ctx)) {
int res;
- tmp = PyObject_GetAttrString(obj, "ctx");
+ tmp = _PyObject_GetAttrId(obj, &PyId_ctx);
if (tmp == NULL) goto failed;
res = obj2ast_expr_context(tmp, &ctx, arena);
if (res != 0) goto failed;
@@ -5710,9 +5751,9 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
identifier id;
expr_context_ty ctx;
- if (PyObject_HasAttrString(obj, "id")) {
+ if (_PyObject_HasAttrId(obj, &PyId_id)) {
int res;
- tmp = PyObject_GetAttrString(obj, "id");
+ tmp = _PyObject_GetAttrId(obj, &PyId_id);
if (tmp == NULL) goto failed;
res = obj2ast_identifier(tmp, &id, arena);
if (res != 0) goto failed;
@@ -5722,9 +5763,9 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
PyErr_SetString(PyExc_TypeError, "required field \"id\" missing from Name");
return 1;
}
- if (PyObject_HasAttrString(obj, "ctx")) {
+ if (_PyObject_HasAttrId(obj, &PyId_ctx)) {
int res;
- tmp = PyObject_GetAttrString(obj, "ctx");
+ tmp = _PyObject_GetAttrId(obj, &PyId_ctx);
if (tmp == NULL) goto failed;
res = obj2ast_expr_context(tmp, &ctx, arena);
if (res != 0) goto failed;
@@ -5746,11 +5787,11 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
asdl_seq* elts;
expr_context_ty ctx;
- if (PyObject_HasAttrString(obj, "elts")) {
+ if (_PyObject_HasAttrId(obj, &PyId_elts)) {
int res;
Py_ssize_t len;
Py_ssize_t i;
- tmp = PyObject_GetAttrString(obj, "elts");
+ tmp = _PyObject_GetAttrId(obj, &PyId_elts);
if (tmp == NULL) goto failed;
if (!PyList_Check(tmp)) {
PyErr_Format(PyExc_TypeError, "List field \"elts\" must be a list, not a %.200s", tmp->ob_type->tp_name);
@@ -5771,9 +5812,9 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
PyErr_SetString(PyExc_TypeError, "required field \"elts\" missing from List");
return 1;
}
- if (PyObject_HasAttrString(obj, "ctx")) {
+ if (_PyObject_HasAttrId(obj, &PyId_ctx)) {
int res;
- tmp = PyObject_GetAttrString(obj, "ctx");
+ tmp = _PyObject_GetAttrId(obj, &PyId_ctx);
if (tmp == NULL) goto failed;
res = obj2ast_expr_context(tmp, &ctx, arena);
if (res != 0) goto failed;
@@ -5795,11 +5836,11 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
asdl_seq* elts;
expr_context_ty ctx;
- if (PyObject_HasAttrString(obj, "elts")) {
+ if (_PyObject_HasAttrId(obj, &PyId_elts)) {
int res;
Py_ssize_t len;
Py_ssize_t i;
- tmp = PyObject_GetAttrString(obj, "elts");
+ tmp = _PyObject_GetAttrId(obj, &PyId_elts);
if (tmp == NULL) goto failed;
if (!PyList_Check(tmp)) {
PyErr_Format(PyExc_TypeError, "Tuple field \"elts\" must be a list, not a %.200s", tmp->ob_type->tp_name);
@@ -5820,9 +5861,9 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
PyErr_SetString(PyExc_TypeError, "required field \"elts\" missing from Tuple");
return 1;
}
- if (PyObject_HasAttrString(obj, "ctx")) {
+ if (_PyObject_HasAttrId(obj, &PyId_ctx)) {
int res;
- tmp = PyObject_GetAttrString(obj, "ctx");
+ tmp = _PyObject_GetAttrId(obj, &PyId_ctx);
if (tmp == NULL) goto failed;
res = obj2ast_expr_context(tmp, &ctx, arena);
if (res != 0) goto failed;
@@ -5921,9 +5962,9 @@ obj2ast_slice(PyObject* obj, slice_ty* out, PyArena* arena)
expr_ty upper;
expr_ty step;
- if (PyObject_HasAttrString(obj, "lower")) {
+ if (_PyObject_HasAttrId(obj, &PyId_lower)) {
int res;
- tmp = PyObject_GetAttrString(obj, "lower");
+ tmp = _PyObject_GetAttrId(obj, &PyId_lower);
if (tmp == NULL) goto failed;
res = obj2ast_expr(tmp, &lower, arena);
if (res != 0) goto failed;
@@ -5932,9 +5973,9 @@ obj2ast_slice(PyObject* obj, slice_ty* out, PyArena* arena)
} else {
lower = NULL;
}
- if (PyObject_HasAttrString(obj, "upper")) {
+ if (_PyObject_HasAttrId(obj, &PyId_upper)) {
int res;
- tmp = PyObject_GetAttrString(obj, "upper");
+ tmp = _PyObject_GetAttrId(obj, &PyId_upper);
if (tmp == NULL) goto failed;
res = obj2ast_expr(tmp, &upper, arena);
if (res != 0) goto failed;
@@ -5943,9 +5984,9 @@ obj2ast_slice(PyObject* obj, slice_ty* out, PyArena* arena)
} else {
upper = NULL;
}
- if (PyObject_HasAttrString(obj, "step")) {
+ if (_PyObject_HasAttrId(obj, &PyId_step)) {
int res;
- tmp = PyObject_GetAttrString(obj, "step");
+ tmp = _PyObject_GetAttrId(obj, &PyId_step);
if (tmp == NULL) goto failed;
res = obj2ast_expr(tmp, &step, arena);
if (res != 0) goto failed;
@@ -5965,11 +6006,11 @@ obj2ast_slice(PyObject* obj, slice_ty* out, PyArena* arena)
if (isinstance) {
asdl_seq* dims;
- if (PyObject_HasAttrString(obj, "dims")) {
+ if (_PyObject_HasAttrId(obj, &PyId_dims)) {
int res;
Py_ssize_t len;
Py_ssize_t i;
- tmp = PyObject_GetAttrString(obj, "dims");
+ tmp = _PyObject_GetAttrId(obj, &PyId_dims);
if (tmp == NULL) goto failed;
if (!PyList_Check(tmp)) {
PyErr_Format(PyExc_TypeError, "ExtSlice field \"dims\" must be a list, not a %.200s", tmp->ob_type->tp_name);
@@ -6001,9 +6042,9 @@ obj2ast_slice(PyObject* obj, slice_ty* out, PyArena* arena)
if (isinstance) {
expr_ty value;
- if (PyObject_HasAttrString(obj, "value")) {
+ if (_PyObject_HasAttrId(obj, &PyId_value)) {
int res;
- tmp = PyObject_GetAttrString(obj, "value");
+ tmp = _PyObject_GetAttrId(obj, &PyId_value);
if (tmp == NULL) goto failed;
res = obj2ast_expr(tmp, &value, arena);
if (res != 0) goto failed;
@@ -6296,9 +6337,9 @@ obj2ast_comprehension(PyObject* obj, comprehension_ty* out, PyArena* arena)
expr_ty iter;
asdl_seq* ifs;
- if (PyObject_HasAttrString(obj, "target")) {
+ if (_PyObject_HasAttrId(obj, &PyId_target)) {
int res;
- tmp = PyObject_GetAttrString(obj, "target");
+ tmp = _PyObject_GetAttrId(obj, &PyId_target);
if (tmp == NULL) goto failed;
res = obj2ast_expr(tmp, &target, arena);
if (res != 0) goto failed;
@@ -6308,9 +6349,9 @@ obj2ast_comprehension(PyObject* obj, comprehension_ty* out, PyArena* arena)
PyErr_SetString(PyExc_TypeError, "required field \"target\" missing from comprehension");
return 1;
}
- if (PyObject_HasAttrString(obj, "iter")) {
+ if (_PyObject_HasAttrId(obj, &PyId_iter)) {
int res;
- tmp = PyObject_GetAttrString(obj, "iter");
+ tmp = _PyObject_GetAttrId(obj, &PyId_iter);
if (tmp == NULL) goto failed;
res = obj2ast_expr(tmp, &iter, arena);
if (res != 0) goto failed;
@@ -6320,11 +6361,11 @@ obj2ast_comprehension(PyObject* obj, comprehension_ty* out, PyArena* arena)
PyErr_SetString(PyExc_TypeError, "required field \"iter\" missing from comprehension");
return 1;
}
- if (PyObject_HasAttrString(obj, "ifs")) {
+ if (_PyObject_HasAttrId(obj, &PyId_ifs)) {
int res;
Py_ssize_t len;
Py_ssize_t i;
- tmp = PyObject_GetAttrString(obj, "ifs");
+ tmp = _PyObject_GetAttrId(obj, &PyId_ifs);
if (tmp == NULL) goto failed;
if (!PyList_Check(tmp)) {
PyErr_Format(PyExc_TypeError, "comprehension field \"ifs\" must be a list, not a %.200s", tmp->ob_type->tp_name);
@@ -6365,9 +6406,9 @@ obj2ast_excepthandler(PyObject* obj, excepthandler_ty* out, PyArena* arena)
*out = NULL;
return 0;
}
- if (PyObject_HasAttrString(obj, "lineno")) {
+ if (_PyObject_HasAttrId(obj, &PyId_lineno)) {
int res;
- tmp = PyObject_GetAttrString(obj, "lineno");
+ tmp = _PyObject_GetAttrId(obj, &PyId_lineno);
if (tmp == NULL) goto failed;
res = obj2ast_int(tmp, &lineno, arena);
if (res != 0) goto failed;
@@ -6377,9 +6418,9 @@ obj2ast_excepthandler(PyObject* obj, excepthandler_ty* out, PyArena* arena)
PyErr_SetString(PyExc_TypeError, "required field \"lineno\" missing from excepthandler");
return 1;
}
- if (PyObject_HasAttrString(obj, "col_offset")) {
+ if (_PyObject_HasAttrId(obj, &PyId_col_offset)) {
int res;
- tmp = PyObject_GetAttrString(obj, "col_offset");
+ tmp = _PyObject_GetAttrId(obj, &PyId_col_offset);
if (tmp == NULL) goto failed;
res = obj2ast_int(tmp, &col_offset, arena);
if (res != 0) goto failed;
@@ -6398,9 +6439,9 @@ obj2ast_excepthandler(PyObject* obj, excepthandler_ty* out, PyArena* arena)
identifier name;
asdl_seq* body;
- if (PyObject_HasAttrString(obj, "type")) {
+ if (_PyObject_HasAttrId(obj, &PyId_type)) {
int res;
- tmp = PyObject_GetAttrString(obj, "type");
+ tmp = _PyObject_GetAttrId(obj, &PyId_type);
if (tmp == NULL) goto failed;
res = obj2ast_expr(tmp, &type, arena);
if (res != 0) goto failed;
@@ -6409,9 +6450,9 @@ obj2ast_excepthandler(PyObject* obj, excepthandler_ty* out, PyArena* arena)
} else {
type = NULL;
}
- if (PyObject_HasAttrString(obj, "name")) {
+ if (_PyObject_HasAttrId(obj, &PyId_name)) {
int res;
- tmp = PyObject_GetAttrString(obj, "name");
+ tmp = _PyObject_GetAttrId(obj, &PyId_name);
if (tmp == NULL) goto failed;
res = obj2ast_identifier(tmp, &name, arena);
if (res != 0) goto failed;
@@ -6420,11 +6461,11 @@ obj2ast_excepthandler(PyObject* obj, excepthandler_ty* out, PyArena* arena)
} else {
name = NULL;
}
- if (PyObject_HasAttrString(obj, "body")) {
+ if (_PyObject_HasAttrId(obj, &PyId_body)) {
int res;
Py_ssize_t len;
Py_ssize_t i;
- tmp = PyObject_GetAttrString(obj, "body");
+ tmp = _PyObject_GetAttrId(obj, &PyId_body);
if (tmp == NULL) goto failed;
if (!PyList_Check(tmp)) {
PyErr_Format(PyExc_TypeError, "ExceptHandler field \"body\" must be a list, not a %.200s", tmp->ob_type->tp_name);
@@ -6470,11 +6511,11 @@ obj2ast_arguments(PyObject* obj, arguments_ty* out, PyArena* arena)
asdl_seq* defaults;
asdl_seq* kw_defaults;
- if (PyObject_HasAttrString(obj, "args")) {
+ if (_PyObject_HasAttrId(obj, &PyId_args)) {
int res;
Py_ssize_t len;
Py_ssize_t i;
- tmp = PyObject_GetAttrString(obj, "args");
+ tmp = _PyObject_GetAttrId(obj, &PyId_args);
if (tmp == NULL) goto failed;
if (!PyList_Check(tmp)) {
PyErr_Format(PyExc_TypeError, "arguments field \"args\" must be a list, not a %.200s", tmp->ob_type->tp_name);
@@ -6495,9 +6536,9 @@ obj2ast_arguments(PyObject* obj, arguments_ty* out, PyArena* arena)
PyErr_SetString(PyExc_TypeError, "required field \"args\" missing from arguments");
return 1;
}
- if (PyObject_HasAttrString(obj, "vararg")) {
+ if (_PyObject_HasAttrId(obj, &PyId_vararg)) {
int res;
- tmp = PyObject_GetAttrString(obj, "vararg");
+ tmp = _PyObject_GetAttrId(obj, &PyId_vararg);
if (tmp == NULL) goto failed;
res = obj2ast_identifier(tmp, &vararg, arena);
if (res != 0) goto failed;
@@ -6506,9 +6547,9 @@ obj2ast_arguments(PyObject* obj, arguments_ty* out, PyArena* arena)
} else {
vararg = NULL;
}
- if (PyObject_HasAttrString(obj, "varargannotation")) {
+ if (_PyObject_HasAttrId(obj, &PyId_varargannotation)) {
int res;
- tmp = PyObject_GetAttrString(obj, "varargannotation");
+ tmp = _PyObject_GetAttrId(obj, &PyId_varargannotation);
if (tmp == NULL) goto failed;
res = obj2ast_expr(tmp, &varargannotation, arena);
if (res != 0) goto failed;
@@ -6517,11 +6558,11 @@ obj2ast_arguments(PyObject* obj, arguments_ty* out, PyArena* arena)
} else {
varargannotation = NULL;
}
- if (PyObject_HasAttrString(obj, "kwonlyargs")) {
+ if (_PyObject_HasAttrId(obj, &PyId_kwonlyargs)) {
int res;
Py_ssize_t len;
Py_ssize_t i;
- tmp = PyObject_GetAttrString(obj, "kwonlyargs");
+ tmp = _PyObject_GetAttrId(obj, &PyId_kwonlyargs);
if (tmp == NULL) goto failed;
if (!PyList_Check(tmp)) {
PyErr_Format(PyExc_TypeError, "arguments field \"kwonlyargs\" must be a list, not a %.200s", tmp->ob_type->tp_name);
@@ -6542,9 +6583,9 @@ obj2ast_arguments(PyObject* obj, arguments_ty* out, PyArena* arena)
PyErr_SetString(PyExc_TypeError, "required field \"kwonlyargs\" missing from arguments");
return 1;
}
- if (PyObject_HasAttrString(obj, "kwarg")) {
+ if (_PyObject_HasAttrId(obj, &PyId_kwarg)) {
int res;
- tmp = PyObject_GetAttrString(obj, "kwarg");
+ tmp = _PyObject_GetAttrId(obj, &PyId_kwarg);
if (tmp == NULL) goto failed;
res = obj2ast_identifier(tmp, &kwarg, arena);
if (res != 0) goto failed;
@@ -6553,9 +6594,9 @@ obj2ast_arguments(PyObject* obj, arguments_ty* out, PyArena* arena)
} else {
kwarg = NULL;
}
- if (PyObject_HasAttrString(obj, "kwargannotation")) {
+ if (_PyObject_HasAttrId(obj, &PyId_kwargannotation)) {
int res;
- tmp = PyObject_GetAttrString(obj, "kwargannotation");
+ tmp = _PyObject_GetAttrId(obj, &PyId_kwargannotation);
if (tmp == NULL) goto failed;
res = obj2ast_expr(tmp, &kwargannotation, arena);
if (res != 0) goto failed;
@@ -6564,11 +6605,11 @@ obj2ast_arguments(PyObject* obj, arguments_ty* out, PyArena* arena)
} else {
kwargannotation = NULL;
}
- if (PyObject_HasAttrString(obj, "defaults")) {
+ if (_PyObject_HasAttrId(obj, &PyId_defaults)) {
int res;
Py_ssize_t len;
Py_ssize_t i;
- tmp = PyObject_GetAttrString(obj, "defaults");
+ tmp = _PyObject_GetAttrId(obj, &PyId_defaults);
if (tmp == NULL) goto failed;
if (!PyList_Check(tmp)) {
PyErr_Format(PyExc_TypeError, "arguments field \"defaults\" must be a list, not a %.200s", tmp->ob_type->tp_name);
@@ -6589,11 +6630,11 @@ obj2ast_arguments(PyObject* obj, arguments_ty* out, PyArena* arena)
PyErr_SetString(PyExc_TypeError, "required field \"defaults\" missing from arguments");
return 1;
}
- if (PyObject_HasAttrString(obj, "kw_defaults")) {
+ if (_PyObject_HasAttrId(obj, &PyId_kw_defaults)) {
int res;
Py_ssize_t len;
Py_ssize_t i;
- tmp = PyObject_GetAttrString(obj, "kw_defaults");
+ tmp = _PyObject_GetAttrId(obj, &PyId_kw_defaults);
if (tmp == NULL) goto failed;
if (!PyList_Check(tmp)) {
PyErr_Format(PyExc_TypeError, "arguments field \"kw_defaults\" must be a list, not a %.200s", tmp->ob_type->tp_name);
@@ -6629,9 +6670,9 @@ obj2ast_arg(PyObject* obj, arg_ty* out, PyArena* arena)
identifier arg;
expr_ty annotation;
- if (PyObject_HasAttrString(obj, "arg")) {
+ if (_PyObject_HasAttrId(obj, &PyId_arg)) {
int res;
- tmp = PyObject_GetAttrString(obj, "arg");
+ tmp = _PyObject_GetAttrId(obj, &PyId_arg);
if (tmp == NULL) goto failed;
res = obj2ast_identifier(tmp, &arg, arena);
if (res != 0) goto failed;
@@ -6641,9 +6682,9 @@ obj2ast_arg(PyObject* obj, arg_ty* out, PyArena* arena)
PyErr_SetString(PyExc_TypeError, "required field \"arg\" missing from arg");
return 1;
}
- if (PyObject_HasAttrString(obj, "annotation")) {
+ if (_PyObject_HasAttrId(obj, &PyId_annotation)) {
int res;
- tmp = PyObject_GetAttrString(obj, "annotation");
+ tmp = _PyObject_GetAttrId(obj, &PyId_annotation);
if (tmp == NULL) goto failed;
res = obj2ast_expr(tmp, &annotation, arena);
if (res != 0) goto failed;
@@ -6666,9 +6707,9 @@ obj2ast_keyword(PyObject* obj, keyword_ty* out, PyArena* arena)
identifier arg;
expr_ty value;
- if (PyObject_HasAttrString(obj, "arg")) {
+ if (_PyObject_HasAttrId(obj, &PyId_arg)) {
int res;
- tmp = PyObject_GetAttrString(obj, "arg");
+ tmp = _PyObject_GetAttrId(obj, &PyId_arg);
if (tmp == NULL) goto failed;
res = obj2ast_identifier(tmp, &arg, arena);
if (res != 0) goto failed;
@@ -6678,9 +6719,9 @@ obj2ast_keyword(PyObject* obj, keyword_ty* out, PyArena* arena)
PyErr_SetString(PyExc_TypeError, "required field \"arg\" missing from keyword");
return 1;
}
- if (PyObject_HasAttrString(obj, "value")) {
+ if (_PyObject_HasAttrId(obj, &PyId_value)) {
int res;
- tmp = PyObject_GetAttrString(obj, "value");
+ tmp = _PyObject_GetAttrId(obj, &PyId_value);
if (tmp == NULL) goto failed;
res = obj2ast_expr(tmp, &value, arena);
if (res != 0) goto failed;
@@ -6704,9 +6745,9 @@ obj2ast_alias(PyObject* obj, alias_ty* out, PyArena* arena)
identifier name;
identifier asname;
- if (PyObject_HasAttrString(obj, "name")) {
+ if (_PyObject_HasAttrId(obj, &PyId_name)) {
int res;
- tmp = PyObject_GetAttrString(obj, "name");
+ tmp = _PyObject_GetAttrId(obj, &PyId_name);
if (tmp == NULL) goto failed;
res = obj2ast_identifier(tmp, &name, arena);
if (res != 0) goto failed;
@@ -6716,9 +6757,9 @@ obj2ast_alias(PyObject* obj, alias_ty* out, PyArena* arena)
PyErr_SetString(PyExc_TypeError, "required field \"name\" missing from alias");
return 1;
}
- if (PyObject_HasAttrString(obj, "asname")) {
+ if (_PyObject_HasAttrId(obj, &PyId_asname)) {
int res;
- tmp = PyObject_GetAttrString(obj, "asname");
+ tmp = _PyObject_GetAttrId(obj, &PyId_asname);
if (tmp == NULL) goto failed;
res = obj2ast_identifier(tmp, &asname, arena);
if (res != 0) goto failed;
@@ -6734,6 +6775,43 @@ failed:
return 1;
}
+int
+obj2ast_withitem(PyObject* obj, withitem_ty* out, PyArena* arena)
+{
+ PyObject* tmp = NULL;
+ expr_ty context_expr;
+ expr_ty optional_vars;
+
+ if (_PyObject_HasAttrId(obj, &PyId_context_expr)) {
+ int res;
+ tmp = _PyObject_GetAttrId(obj, &PyId_context_expr);
+ if (tmp == NULL) goto failed;
+ res = obj2ast_expr(tmp, &context_expr, arena);
+ if (res != 0) goto failed;
+ Py_XDECREF(tmp);
+ tmp = NULL;
+ } else {
+ PyErr_SetString(PyExc_TypeError, "required field \"context_expr\" missing from withitem");
+ return 1;
+ }
+ if (_PyObject_HasAttrId(obj, &PyId_optional_vars)) {
+ int res;
+ tmp = _PyObject_GetAttrId(obj, &PyId_optional_vars);
+ if (tmp == NULL) goto failed;
+ res = obj2ast_expr(tmp, &optional_vars, arena);
+ if (res != 0) goto failed;
+ Py_XDECREF(tmp);
+ tmp = NULL;
+ } else {
+ optional_vars = NULL;
+ }
+ *out = withitem(context_expr, optional_vars, arena);
+ return 0;
+failed:
+ Py_XDECREF(tmp);
+ return 1;
+}
+
static struct PyModuleDef _astmodule = {
PyModuleDef_HEAD_INIT, "_ast"
@@ -6750,8 +6828,6 @@ PyInit__ast(void)
NULL;
if (PyModule_AddIntConstant(m, "PyCF_ONLY_AST", PyCF_ONLY_AST) < 0)
return NULL;
- if (PyModule_AddStringConstant(m, "__version__", "82163") < 0)
- return NULL;
if (PyDict_SetItemString(d, "mod", (PyObject*)mod_type) < 0) return
NULL;
if (PyDict_SetItemString(d, "Module", (PyObject*)Module_type) < 0)
@@ -6785,10 +6861,8 @@ PyInit__ast(void)
NULL;
if (PyDict_SetItemString(d, "Raise", (PyObject*)Raise_type) < 0) return
NULL;
- if (PyDict_SetItemString(d, "TryExcept", (PyObject*)TryExcept_type) <
- 0) return NULL;
- if (PyDict_SetItemString(d, "TryFinally", (PyObject*)TryFinally_type) <
- 0) return NULL;
+ if (PyDict_SetItemString(d, "Try", (PyObject*)Try_type) < 0) return
+ NULL;
if (PyDict_SetItemString(d, "Assert", (PyObject*)Assert_type) < 0)
return NULL;
if (PyDict_SetItemString(d, "Import", (PyObject*)Import_type) < 0)
@@ -6951,6 +7025,8 @@ PyInit__ast(void)
return NULL;
if (PyDict_SetItemString(d, "alias", (PyObject*)alias_type) < 0) return
NULL;
+ if (PyDict_SetItemString(d, "withitem", (PyObject*)withitem_type) < 0)
+ return NULL;
return m;
}