tboy1337/PyRefactor
GitHub: tboy1337/PyRefactor
PyRefactor 是一个基于 AST 分析的 Python 重构与优化 linter,帮助开发者自动检测代码中的性能问题、复杂度缺陷和非惯用模式。
Stars: 2 | Forks: 0
# PyRefactor
一个 Python 重构和优化 linter,使用 AST 分析来识别性能问题、复杂度问题以及代码改进。
[](https://www.python.org/downloads/)
## 功能
- **多线程分析**:快速的并行文件处理
- **可配置的检测器**:启用/禁用特定的检测器
- **严重性级别**:问题被分类为 INFO、LOW、MEDIUM 或 HIGH
- **灵活的输出**:按文件或严重性分组
- **跨平台**:支持 Windows、macOS 和 Linux
## 检测器
- **复杂度**:高圈复杂度的函数
- **性能**:循环中的字符串拼接、未缓存的调用、低效的操作
- **布尔逻辑**:过于复杂的布尔表达式
- **循环**:嵌套循环、不变代码、可使用推导式优化的场景
- **重复**:重复的代码块
- **Context Manager**:资源操作中缺失的 `with` 语句
- **控制流**:在 `return`/`raise`/`break`/`continue` 之后不必要的 `else`
- **字典操作**:非惯用的 dict 模式、缺失的 `.get()`、不必要的 `.keys()`
- **比较**:链式比较、单例检查、`type()` 与 `isinstance()`
## 安装说明
### 推荐:通过 pip
```
pip install pyrefactor
```
### 独立可执行文件
从 [Releases](https://github.com/tboy1337/PyRefactor/releases/latest) 部分下载最新版本。无需安装 Python。
### 从源码
```
git clone https://github.com/tboy1337/PyRefactor.git
cd PyRefactor
pip install -e .
```
**要求**:Python 3.9+
## 用法
```
# 分析文件或目录
pyrefactor myfile.py
pyrefactor src/
# 仅显示中/高严重级别的问题
pyrefactor --min-severity medium src/
# 按严重级别分组
pyrefactor --group-by severity src/
# 使用更多 workers 以加快分析速度
pyrefactor --jobs 8 src/
# 自定义配置文件
pyrefactor --config custom.toml src/
```
### 选项
- `-c, --config`:配置文件路径(默认:`pyproject.toml`)
- `-g, --group-by`:按 `file` 或 `severity` 分组(默认:`file`)
- `--min-severity`:报告的最低严重性级别:`info`、`low`、`medium`、`high`(默认:`info`)
- `-j, --jobs`:并行 worker 数量(默认:4)
- `-v, --verbose`:启用详细日志记录
- `--version`:显示版本信息
### 退出码
- `0` - 没有问题,或仅有 INFO/LOW 严重级别的问题
- `1` - 发现 MEDIUM/HIGH 严重级别的问题
- `2` - 分析错误(语法错误、无效路径)
## 配置
通过 TOML 文件(例如 `pyproject.toml`)进行配置:
```
[tool.pyrefactor]
exclude_patterns = ["__pycache__", ".venv", "build", "dist"]
[tool.pyrefactor.complexity]
max_complexity = 10
[tool.pyrefactor.performance]
enabled = true
min_concatenations = 3
min_duplicate_calls = 3
[tool.pyrefactor.boolean_logic]
enabled = true
min_depth = 3
[tool.pyrefactor.loops]
enabled = true
max_nesting = 3
[tool.pyrefactor.duplication]
enabled = true
min_lines = 5
similarity_threshold = 0.8
[tool.pyrefactor.context_manager]
enabled = true
[tool.pyrefactor.control_flow]
enabled = true
[tool.pyrefactor.dict_operations]
enabled = true
[tool.pyrefactor.comparisons]
enabled = true
```
配置查找顺序为:`--config` → `pyproject.toml` → `pyrefactor.ini` → 默认值
## CI/CD 集成
### Pre-commit Hook
```
repos:
- repo: local
hooks:
- id: pyrefactor
name: PyRefactor
entry: pyrefactor
language: system
types: [python]
args: [--min-severity=medium]
```
### GitHub Actions
```
name: Code Quality
on: [push, pull_request]
jobs:
pyrefactor:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: '3.9'
- run: pip install pyrefactor
- run: pyrefactor --min-severity medium src/
```
## 贡献
欢迎贡献!本项目采用商业限制许可证。如需商业使用,请联系版权所有者。
1. 遵循现有的代码风格(Black、isort)
2. 为新功能添加测试(覆盖率 > 95%)
3. 运行类型检查和 lint
## 许可证
基于 CRL 许可证授权 - 详情请参阅 [LICENSE.md](LICENSE.md)。
标签:LNA, Python, Python安全, 云安全监控, 代码规范, 代码重构, 弱口令爆破, 性能优化, 无后门, 检测绕过, 自动化payload嵌入, 逆向工具, 静态分析