def gen_py_ast(ctx: GeneratorContext, lisp_ast: Node) -> GeneratedPyAST:
op: NodeOp = lisp_ast.op<EOL>assert op is not None, "<STR_LIT>"<EOL>handle_node = _NODE_HANDLERS.get(op)<EOL>assert (<EOL>handle_node is not None<EOL>), f"<STR_LIT>"<EOL>return handle_node(ctx, lisp_ast)<EOL>
Take a Lisp AST node as an argument and produce zero or more Python
    AST nodes.

    This is the primary entrypoint for generating AST nodes from Lisp
    syntax. It may be called recursively to compile child forms.