return init for k, v in _ast.__dict__.items(): if isinstance(v, type) and issubclass(v, _ast.AST): ns = {"__init__": make_new_init(v, v._fields), "_sup_cls": v} v = SupertypeMeta(k, (v, ), ns) setattr(ast, k, v) if not hasattr(_ast, "Constant"): class Constant(ConsistentConstant): pass ast.Constant = Constant def get_constant(n: Constant): if isinstance(n, ast.Num): return n.n elif isinstance(n, ast.Str): return n.s return n.value else: def get_constant(n: ast.Constant): return n.value if not hasattr(_ast, "Starred"): class Starred: