用 ast 分析每个函数的作用域,只重命名函数体内纯局部的变量;函数参数、全局名、类属性、导入名保持不变,避免破坏关键字参数调用等程序行为。
检测到 eval / exec / getattr / globals() 等动态特性时,自动禁用重命名并给出提示,而不是生成一个跑不起来的脚本。
源码先转换为 AST 再重新生成,注释本就不在 AST 中,因此天然被剥离;文档字符串会被单独检测并移除。
普通字符串字面量会被替换为 base64 解码调用;f-string 的文本片段会被保留,只有其表达式部分参与转换,避免破坏格式化输出。