namespace java com.jetbrains.python.profiler struct FuncStat { 1: required string file, // File name of the executed function 2: optional i32 line, // Line number of the executed function 3: required string func_name, // Name of the executed function 4: required i32 calls_count, // number of times the executed function is called. 5: required double total_time, // total time spent in the executed function. See Clock Types to interpret this value correctly. 6: required double own_time, // total time spent in the executed function, excluding subcalls. See Clock Types to interpret this value correctly. } struct Function { 1: required FuncStat func_stat, 2: required list callers, // list of functions called from the executed function. } struct Stats { 1: required list func_stats } struct CallTreeStat { 1: required i32 count, 2: required string name, 3: required list children, 4: required map line_count, // number of times a line inside the frame was executed } struct TreeStats { 1: required double sampling_interval, 2: optional CallTreeStat call_tree, } struct Stats_Req {} struct SaveSnapshot_Req { 1: required string filepath } struct ProfilerRequest { 1: required i32 id, 2: optional Stats_Req ystats, 3: optional SaveSnapshot_Req save_snapshot, } struct ProfilerResponse { 1: required i32 id, 2: optional Stats ystats, 3: optional TreeStats tree_stats, 4: optional string snapshot_filepath, }