Yashvardhan0901/PyForge
GitHub: Yashvardhan0901/PyForge
PyForge 是一款 Python 静态代码分析工具,通过交互式仪表盘、依赖图和 HTML 报告帮助开发者快速理解代码库质量与结构。
Stars: 0 | Forks: 0
# 🚀 PyForge - Python 项目逆向工程与静态代码分析器
     
## 📌 概述 **PyForge** 是一款 Python 静态代码分析与项目逆向工程工具,旨在帮助开发者快速理解任何 Python 代码库。 无需手动浏览数百个文件,PyForge 会自动扫描整个项目,提取有用的软件度量指标,检测代码异味,衡量代码质量,可视化依赖关系,并生成交互式 Dashboard 和专业的 HTML 报告。 该项目作为一个轻量级的开发者生产力工具而开发,灵感来源于 SonarQube、Radon 和 Pylint 等现代静态分析平台。 ## ✨ 核心功能 ### 📂 项目分析 - 递归扫描项目 - 自动发现 Python 文件 - 生成项目摘要 - 文件级统计数据 ### 📊 代码指标 PyForge 提取的有用指标包括: - 代码行数 (LOC) - 类的数量 - 函数的数量 - 导入的数量 - 注释数量 - 空行数量 - 平均函数长度 ### 📈 代码质量分析 PyForge 通过以下方式评估软件质量: - 圈复杂度 - 可维护性指数 - 健康评分 - 项目健康状态 ### 🔍 代码异味检测 自动检测包括以下在内的常见问题: - 过长函数 - 过大类 - 过深嵌套 - 过多参数 - 过长文件 ### 🕸 依赖图 使用 NetworkX 和 Matplotlib 生成可视化的依赖图,展示项目内部的模块关系。 ### 📄 HTML 报告生成 创建包含以下内容的专业 HTML 报告: - 项目摘要 - 指标 - 图表 - 健康评分 - 复杂度分析 - 代码异味 - 依赖图 ### 📊 交互式 Dashboard 基于 **Streamlit** 构建的 Dashboard 提供: - KPI 卡片 - 交互式图表 - 文件统计 - 复杂度排名 - 可维护性分析 - 项目健康可视化 ## 🖥 Dashboard 预览 ## 🖥 Dashboard 预览 ### 仪表板  ### 数据分析  ### 代码异味  ### HTML 报告  # 🏗 系统架构 ``` +------------------------+ | Python Project | +-----------+------------+ | ▼ Project Scanner | +-------------------+-------------------+ | | | ▼ ▼ ▼ AST Parser Metrics Engine Dependency Analyzer | | | +-------------------+-------------------+ | ▼ Project Analyzer | +--------------------+--------------------+ | | ▼ ▼ Streamlit Dashboard HTML Report Generator ``` # 📂 项目结构 ``` PyForge/ │ ├── assets/ │ └── templates/ │ └── report_template.html │ ├── pyforge/ │ ├── scanner.py │ ├── parser.py │ ├── metrics.py │ ├── complexity.py │ ├── maintainability.py │ ├── dependency.py │ ├── code_smells.py │ ├── project_analyzer.py │ └── report_generator.py │ ├── reports/ │ ├── screenshots/ │ ├── streamlit_app.py ├── app.py ├── requirements.txt ├── README.md └── LICENSE ``` # 🛠 使用的技术 | 技术 | 用途 | |------------|---------| | Python | 核心编程语言 | | AST | 源代码解析 | | Streamlit | 交互式 Dashboard | | Plotly | 交互式图表 | | NetworkX | 依赖图 | | Matplotlib | 图形可视化 | | Jinja2 | HTML 报告生成 | | Pandas | 数据处理 | | HTML/CSS | 报告样式设计 | # ⚙ 安装 克隆代码库: ``` git clone https://github.com/Yashvardhan0901/PyForge.git ``` 进入项目目录: ``` cd PyForge ``` 创建虚拟环境(推荐): ``` python -m venv venv ``` 激活环境: ### Windows ``` venv\Scripts\activate ``` ### Linux / macOS ``` source venv/bin/activate ``` 安装依赖项: ``` pip install -r requirements.txt ``` # 🚀 运行 PyForge 启动 Streamlit Dashboard: ``` streamlit run streamlit_app.py ``` 应用程序将在您的默认 Web 浏览器中打开。 选择一个 Python 项目文件夹并开始分析。 # 📄 生成的输出 PyForge 会自动生成: - 交互式 Streamlit Dashboard - 依赖图 - HTML 分析报告 - 项目指标摘要 - 代码异味分析 - 复杂度排名 - 可维护性报告 生成的报告保存在: ``` reports/ ``` # 🔍 示例分析工作流 1. 选择一个 Python 项目。 2. 扫描所有 Python 文件。 3. 使用 Python AST 解析源代码。 4. 提取项目指标。 5. 计算圈复杂度。 6. 计算可维护性指数。 7. 检测代码异味。 8. 构建依赖图。 9. 在 Streamlit 中展示结果。 10. 生成专业的 HTML 报告。 # 📈 示例指标 PyForge 为 Python 代码库提供全面的洞察,包括: - Python 文件总数 - 代码行数 (LOC) - 类的数量 - 函数的数量 - 导入语句 - 平均函数长度 - 圈复杂度 - 可维护性指数 - 健康评分 - 代码异味摘要 这些指标可帮助开发者快速了解项目的整体质量和可维护性。 # 🎯 应用场景 PyForge 适用于: - 理解不熟悉的 Python 项目 - 代码质量评估 - 软件维护 - 教学用途 - 项目文档记录 - 代码审查准备 - 技术面试 - 作品集展示 # 🚀 未来增强 PyForge 未来版本的一些构想包括: - 生成 PDF 报告 - 将分析结果导出为 JSON 或 CSV - 支持 Java 和 JavaScript 项目 - 集成 Git 进行基于提交的分析 - 历史趋势分析 - 安全漏洞检测 - 重复代码检测 - 基于 AI 的代码改进建议 - Docker 支持 - CI/CD pipeline 集成 # 🤝 参与贡献 欢迎您的贡献! 如果您想改进 PyForge: 1. Fork 该代码库 2. 创建一个功能分支 ``` git checkout -b feature-name ``` 3. 提交您的更改 ``` git commit -m "Add new feature" ``` 4. 推送到您的分支 ``` git push origin feature-name ``` 5. 发起一个 Pull Request # 📜 许可证 本项目基于 **MIT License** 授权。 详情请参阅 **LICENSE** 文件。 # 👨💻 作者 **Yashvardhan Sahu** GitHub: https://github.com/Yashvardhan0901 如果您觉得这个项目有用,欢迎在 GitHub 上给它点一个 ⭐。 # ⭐ 致谢 本项目的灵感来源于包括以下在内的现代静态分析工具: - SonarQube - Radon - Pylint - Flake8 同时它也是作为一个轻量级的教学与作品集项目而设计的。⭐ 如果您喜欢这个项目,别忘了给代码库点星标!
标签:Kubernetes, Python, Streamlit, 云资产清单, 安全专业人员, 无后门, 特权检测, 自动化payload嵌入, 访问控制, 逆向工具, 逆向工程, 错误基检测, 静态代码分析