6 个仓库
Static analysis tools specifically designed for Python source code to detect errors, style violations, and code smells.
Distinct from Static Code Analysis: Distinct from Static Code Analysis: focuses on Python-specific analysis rather than language-agnostic scanning.
Explore 6 awesome GitHub repositories matching testing & quality assurance · Python Static Analyzers. Refine with filters or upvote what's useful.
Pylint 是一个 Python 静态代码分析工具,它在不执行程序的情况下检查源代码中的错误、编码标准违规和代码异味。它将代码解析为抽象语法树并遍历该树以检测问题,强制执行可配置的样式规则和命名约定,并通过比较标记化的源序列来识别重复的代码块。该工具还包含一个推理引擎,通过模拟代码路径来推断变量类型,即使在无类型代码中也能进行更深入的分析。 Pylint 的独特之处在于其基于插件的检查器架构,它允许用户通过加载在运行时注册自定义检查器和推理规则的外部 Python 模块来扩展分析。它支持配置文件分层,合并来自多个配置文件和命令行参数的设置,以便项目范围的默认值可以被本地或插件特定的选项覆盖。Pylint 还通过将当前的分析结果与存储的基准分数进行比较来跟踪代码质量随时间的变化,报告连续运行中的改进或回归,并可以以 Graphviz、PlantUML 或 MermaidJS 格式从抽象语法树生成 UML 类图和包图。 该工具集成到持续集成流水线和预提交钩子中,以自动跨多个 Python 解释器版本运行检查。它可以通过 pip、conda 或系统包管理器安装,并通过 enchant 库提供代码标识符的可选拼写检查。Pylint 还为 Emacs 和 TextMate 等环境提供编辑器集成,并包含一个消息解释查看器,可直接从命令行打印任何特定警告或错误代码的完整描述和上下文。
Provides static analysis for Python source code, detecting errors, style violations, and code smells.
python-mode 是一个 Vim IDE 插件,为 Python 开发提供了集成的工具集。它包含一个用于管理执行断点和检查程序状态的调试界面、一个用于检索官方语言符号的文档浏览器,以及一个用于静态分析和自动化结构重构的系统。 该项目具有专用的环境管理器,可检测并使用项目特定的虚拟环境,以确保正确的库和解释器解析。它集成了 PyLint 和 Rope 等外部工具,以识别代码错误并执行项目范围的重构。 该插件涵盖了广泛的开发功能,包括实时代码检查(linting)、自动化代码格式化和智能代码补全。它还提供用于在定义之间跳转的结构化导航工具、高级语法高亮显示,以及直接从编辑器执行单个代码块的能力。
Uses PyLint to perform static analysis of Python source code to detect errors and style violations.
jedi-vim 是一个 Vim 扩展和语言服务器接口,为 Python 开发提供静态分析和智能自动补全。它充当 Vim 编辑器与 Jedi 库之间的桥梁,为编辑器带来集成开发环境(IDE)的功能。 该插件提供上下文感知的代码补全和静态分析工具,包括跳转到定义、跨文件跟踪符号使用以及全局重命名标识符以保持代码库一致性的能力。它还具有用于文档预览的浮动弹出窗口和实时函数签名显示功能。 该工具包括对 Python 虚拟环境的集成,以确保对项目特定依赖项和第三方包进行准确分析。
Provides a static analysis tool for Python to enable symbol navigation, refactoring, and documentation popups.
autopep8 是一个 Python 静态代码样式器和格式化程序,旨在自动重写源代码以符合 PEP 8 样式指南。它作为一个递归代码清理器,识别并修复整个项目中的缩进、空格和语法不规范之处。 该工具使用抽象语法树(AST)转换执行结构化重构,以执行非空格更改,例如缩短长行和改进身份测试。它包括用于复杂样式违规的激进重构模式,并支持通过内联标记进行选择性格式化,以禁用特定代码块的更改。 功能包括用于定位或忽略特定错误代码的基于规则的修复过滤、行范围格式化,以及生成样式差异报告。该系统可以通过具有递归目录遍历和原地文件修改的命令行界面处理文件,也可以通过 API 以编程方式集成。 格式化偏好和规则集可以通过全局或本地配置文件进行管理。
Identifies and fixes indentation, whitespace, and syntax irregularities using static analysis.
Vulture is a static analysis tool and linter designed to find unused variables, functions, and classes in Python source code. It operates as a dead code detector and unused code finder that scans source files to identify unreachable expressions and imports without executing the code. The tool employs a confidence-based heuristic scoring system to assign probability values to detections, helping to distinguish truly unused symbols from potential false positives. It further assists in pruning dead logic by sorting detected unused classes and functions by line count to prioritize the removal of
Provides static analysis for Python source code to identify unreachable blocks and unused imports.
Overcommit 是一个 Git 钩子管理器和预提交验证框架,旨在自动化在各种 Git 事件期间执行脚本和检查。它作为一个工作流自动化工具,确保在更改提交或推送到远程存储库之前满足代码质量和项目标准。 该系统通过全面的基于 YAML 的配置脱颖而出,该配置允许对钩子行为进行详细控制,包括文件执行过滤、有条件跳过和钩子依赖项管理。它提供专门的角色,例如提交消息验证器以强制执行命名约定,以及推送防护以阻止不稳定或不安全的代码到达远程分支。 该项目涵盖了广泛的功能领域,包括多语言静态分析和 Linting、自动化依赖管理以及安全验证(如密钥扫描和许可证合规性)。它还通过受保护的分支强制执行和并行钩子执行来管理存储库完整性,以优化性能。
Integrates Pylint to analyze Python files for coding errors and style violations.