stdlib/3/ast: add visit_* methods to NodeVisitor (#3796)

NodeVisitor recurses over an AST tree. When encountering a node, it
checks if a method called `visit_{node.__class__.__name__}` exists, and
calls it if so, otherwise calls the generic visitor.

Add the possible methods to NodeVisitor. This is not exactly correct,
since the methods don't *actually* exist on NodeVisitor, e.g.
`NodeVisitor().visit_Module(...)` doesn't work. But it's nice for
subclasses to know which methods they can override and which type they
should have.
This commit is contained in:
Ran Benita
2020-03-06 14:15:04 +02:00
committed by GitHub
parent 337051501b
commit 92d53086be
5 changed files with 230 additions and 1 deletions

View File

@@ -1,3 +1,7 @@
ast.NodeVisitor.visit_AnnAssign
ast.NodeVisitor.visit_Constant
ast.NodeVisitor.visit_FormattedValue
ast.NodeVisitor.visit_JoinedStr
asyncio.Future.__init__
asyncio.Task._wakeup
asyncio.constants.SENDFILE_FALLBACK_READBUFFER_SIZE

View File

@@ -2,6 +2,10 @@ _bisect.bisect
_bisect.insort
_tracemalloc._get_object_traceback
_tracemalloc.start
ast.NodeVisitor.visit_AnnAssign
ast.NodeVisitor.visit_Constant
ast.NodeVisitor.visit_FormattedValue
ast.NodeVisitor.visit_JoinedStr
asyncio.AbstractEventLoop.create_unix_server
asyncio.AbstractEventLoop.sock_sendfile
asyncio.Future.__init__

View File

@@ -5,6 +5,10 @@ _thread._ExceptHookArgs
_tracemalloc._get_object_traceback
_tracemalloc.start
_weakref.getweakrefcount
ast.NodeVisitor.visit_AnnAssign
ast.NodeVisitor.visit_FormattedValue
ast.NodeVisitor.visit_JoinedStr
ast.NodeVisitor.visit_NamedExpr
asyncio.AbstractEventLoop.create_unix_server
asyncio.AbstractEventLoop.sock_sendfile
asyncio.Future.__init__

View File

@@ -15,6 +15,106 @@ abc.abstractstaticmethod
aifc.open
aifc.openfp
argparse.Namespace.__getattr__
ast.NodeVisitor.visit_Add
ast.NodeVisitor.visit_And
ast.NodeVisitor.visit_Assert
ast.NodeVisitor.visit_Assign
ast.NodeVisitor.visit_AsyncFor
ast.NodeVisitor.visit_AsyncFunctionDef
ast.NodeVisitor.visit_AsyncWith
ast.NodeVisitor.visit_Attribute
ast.NodeVisitor.visit_AugAssign
ast.NodeVisitor.visit_AugLoad
ast.NodeVisitor.visit_AugStore
ast.NodeVisitor.visit_Await
ast.NodeVisitor.visit_BinOp
ast.NodeVisitor.visit_BitAnd
ast.NodeVisitor.visit_BitOr
ast.NodeVisitor.visit_BitXor
ast.NodeVisitor.visit_BoolOp
ast.NodeVisitor.visit_Break
ast.NodeVisitor.visit_Bytes
ast.NodeVisitor.visit_Call
ast.NodeVisitor.visit_ClassDef
ast.NodeVisitor.visit_Compare
ast.NodeVisitor.visit_Continue
ast.NodeVisitor.visit_Del
ast.NodeVisitor.visit_Delete
ast.NodeVisitor.visit_Dict
ast.NodeVisitor.visit_DictComp
ast.NodeVisitor.visit_Div
ast.NodeVisitor.visit_Ellipsis
ast.NodeVisitor.visit_Eq
ast.NodeVisitor.visit_ExceptHandler
ast.NodeVisitor.visit_Expr
ast.NodeVisitor.visit_Expression
ast.NodeVisitor.visit_ExtSlice
ast.NodeVisitor.visit_FloorDiv
ast.NodeVisitor.visit_For
ast.NodeVisitor.visit_FunctionDef
ast.NodeVisitor.visit_GeneratorExp
ast.NodeVisitor.visit_Global
ast.NodeVisitor.visit_Gt
ast.NodeVisitor.visit_GtE
ast.NodeVisitor.visit_If
ast.NodeVisitor.visit_IfExp
ast.NodeVisitor.visit_Import
ast.NodeVisitor.visit_ImportFrom
ast.NodeVisitor.visit_In
ast.NodeVisitor.visit_Index
ast.NodeVisitor.visit_Interactive
ast.NodeVisitor.visit_Invert
ast.NodeVisitor.visit_Is
ast.NodeVisitor.visit_IsNot
ast.NodeVisitor.visit_LShift
ast.NodeVisitor.visit_Lambda
ast.NodeVisitor.visit_List
ast.NodeVisitor.visit_ListComp
ast.NodeVisitor.visit_Load
ast.NodeVisitor.visit_Lt
ast.NodeVisitor.visit_LtE
ast.NodeVisitor.visit_MatMult
ast.NodeVisitor.visit_Mod
ast.NodeVisitor.visit_Module
ast.NodeVisitor.visit_Mult
ast.NodeVisitor.visit_Name
ast.NodeVisitor.visit_NameConstant
ast.NodeVisitor.visit_Nonlocal
ast.NodeVisitor.visit_Not
ast.NodeVisitor.visit_NotEq
ast.NodeVisitor.visit_NotIn
ast.NodeVisitor.visit_Num
ast.NodeVisitor.visit_Or
ast.NodeVisitor.visit_Param
ast.NodeVisitor.visit_Pass
ast.NodeVisitor.visit_Pow
ast.NodeVisitor.visit_RShift
ast.NodeVisitor.visit_Raise
ast.NodeVisitor.visit_Return
ast.NodeVisitor.visit_Set
ast.NodeVisitor.visit_SetComp
ast.NodeVisitor.visit_Slice
ast.NodeVisitor.visit_Starred
ast.NodeVisitor.visit_Store
ast.NodeVisitor.visit_Str
ast.NodeVisitor.visit_Sub
ast.NodeVisitor.visit_Subscript
ast.NodeVisitor.visit_Suite
ast.NodeVisitor.visit_Try
ast.NodeVisitor.visit_Tuple
ast.NodeVisitor.visit_UAdd
ast.NodeVisitor.visit_USub
ast.NodeVisitor.visit_UnaryOp
ast.NodeVisitor.visit_While
ast.NodeVisitor.visit_With
ast.NodeVisitor.visit_Yield
ast.NodeVisitor.visit_YieldFrom
ast.NodeVisitor.visit_alias
ast.NodeVisitor.visit_arg
ast.NodeVisitor.visit_arguments
ast.NodeVisitor.visit_comprehension
ast.NodeVisitor.visit_keyword
ast.NodeVisitor.visit_withitem
asyncio.AbstractEventLoop.connect_accepted_socket
asyncio.AbstractEventLoop.create_unix_connection
asyncio.BaseChildWatcher