add PythonSourceGenerator
improve support GtNode