LibCST: Converting arbitrary nodes to code

677 views Asked by At

Is it possible to dump an arbitrary LibCST node into Python code? My use case is that I want to extract the code for functions that match a specific naming scheme. I can extract the FunctionDef nodes that I need, but I don't seem to find a way to convert them to code.

1

There are 1 answers

1
Sebastian Kreft On

It is possible using the method code_for_node from the Module class.

You use it as follow:

import libcst

function_def = libcst.parse_statement("def hello_world():\n  print('Hello World')")
print(libcst.Module([]).code_for_node(function_def))

and that would generate the output:

def hello_world():
    print('Hello World')