tboy1337/PyRefactor

GitHub: tboy1337/PyRefactor

PyRefactor 是一个基于 AST 分析的 Python 重构与优化 linter,帮助开发者自动检测代码中的性能问题、复杂度缺陷和非惯用模式。

Stars: 2 | Forks: 0

# PyRefactor 一个 Python 重构和优化 linter,使用 AST 分析来识别性能问题、复杂度问题以及代码改进。 [![Python 3.9+](https://img.shields.io/badge/python-3.9+-blue.svg)](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嵌入, 逆向工具, 静态分析