Supe232323/pystreamliner
GitHub: Supe232323/pystreamliner
基于 Python AST 的自动化代码清理工具,安全移除冗余代码并报告潜在问题,在不破坏功能的前提下提升代码质量。
Stars: 1 | Forks: 0
# pystreamliner
[](https://pypi.org/project/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嵌入, 逆向工具, 静态分析