Supe232323/pystreamliner

GitHub: Supe232323/pystreamliner

基于 Python AST 的自动化代码清理工具,安全移除冗余代码并报告潜在问题,在不破坏功能的前提下提升代码质量。

Stars: 1 | Forks: 0

# pystreamliner [![PyPI version](https://img.shields.io/pypi/v/pystreamliner.svg)](https://pypi.org/project/pystreamliner/) [![PyPI downloads](https://img.shields.io/pypi/dm/pystreamliner)](https://pypi.org/project/pystreamliner/) **自动清理混乱的 Python 文件——且绝不破坏原有功能。** pystreamliner 利用 Python 的 AST(抽象语法树)来安全地检测并修复常见的代码问题。它在两个层面上运行:可以零风险自动修复的问题,以及标记出来供您手动审查的问题。 ## 功能说明 **自动修复(Tier 1 — 立即应用):** - 移除未使用的 import,或修剪部分未使用的 `from x import y` 语句 - 移除连续重复的行 - 限制过多的空行 **警告(Tier 2 — 仅报告,绝不自动修改):** - 未使用的变量 - 未使用的顶级函数 - 模糊的变量名(`x`、`tmp`、`foo`、`bar` 等) pystreamliner 绝不会触碰它不确定的代码。如果有任何疑问,它会向您发出警告。 ## 安装说明 ``` pip install pystreamliner ``` 无外部依赖。支持 Python 3.10+。 ## 运行说明 ``` python streamliner.py your_file.py ``` 这将: 1. 分析 `your_file.py` 2. 原地写入清理后的版本 3. 打印包含所有更改及需要手动审查内容的完整报告 4. 显示所有修改的 diff **在不修改任何内容的情况下预览更改:** ``` python streamliner.py --dry-run your_file.py ``` ## 输出示例 ``` ══════════════════════════════════════════ PyStreamliner Report ══════════════════════════════════════════ File: main.py Lines analyzed: 312 Auto-fixes applied: Unused imports removed: 3 Duplicate lines removed: 1 Blank lines reduced: 2 Warnings (manual review needed): Unused variables detected: 2 Unused functions detected: 1 Vague variable names: 1 ────────────────────────────────────────── Unused imports removed: • line 4: import os • line 5: import sys • line 7: from pathlib import Path, PurePath (partially cleaned: kept 'Path') Unused variables: ⚠ line 42: result ⚠ line 87: temp_val Vague variable names: ⚠ line 23: tmp ══════════════════════════════════════════ ``` ## 为什么不直接使用 Black / isort / autoflake? 这些工具都非常优秀,pystreamliner 并不打算取代它们。区别在于: - **Black** 负责格式化代码风格。pystreamliner 负责移除死代码。 - **autoflake** 仅移除未使用的 import,但不会对未使用的变量、模糊的命名或死函数发出警告。 - **pystreamliner** 将轻量级的静态分析、保守的自动修复以及人类可读的报告结合在一起——这一切都在一个零依赖的单文件中完成。 ## 贡献指南 请参阅 [CONTRIBUTING.md](CONTRIBUTING.md)。
标签:Python, SOC Prime, 云安全监控, 代码优化, 代码规范, 开发工具, 无后门, 自动化payload嵌入, 逆向工具, 静态分析