@@ -378,17 +378,32 @@ def modify_agent_tools(
378378
379379 filename = _framework_filename (framework , path )
380380
381- with open (filename , 'r' ) as f :
382- source = f .read ()
381+ with open (filename , 'r' , encoding = 'utf-8' ) as f :
382+ source_lines = f .readlines ()
383383
384- tree = ast .parse (source )
384+ # Create a map of line numbers to comments
385+ comments = {}
386+ for i , line in enumerate (source_lines ):
387+ stripped = line .strip ()
388+ if stripped .startswith ('#' ):
389+ comments [i + 1 ] = line
390+
391+ tree = ast .parse ('' .join (source_lines ))
385392
386393 class ModifierTransformer (ast .NodeTransformer ):
387394 def visit_FunctionDef (self , node ):
388395 return _modify_agent_tools (node , tool_data , operation , agents , base_name )
389396
390397 modified_tree = ModifierTransformer ().visit (tree )
391398 modified_source = astor .to_source (modified_tree )
399+ modified_lines = modified_source .splitlines ()
400+
401+ # Reinsert comments
402+ final_lines = []
403+ for i , line in enumerate (modified_lines , 1 ):
404+ if i in comments :
405+ final_lines .append (comments [i ])
406+ final_lines .append (line + '\n ' )
392407
393- with open (filename , 'w' ) as f :
394- f .write (modified_source )
408+ with open (filename , 'w' , encoding = 'utf-8' ) as f :
409+ f .write ('' . join ( final_lines ) )
0 commit comments