← 返回
未分类 中文

Python Code Review

Reviews Python code for type safety, async patterns, error handling, and common mistakes. Use when reviewing .py files, checking type hints, async/await usag...
审查 Python 代码的类型安全、异步模式、错误处理及常见错误。适用于审查 .py 文件、检查类型提示、async/await 用法。
anderskev
未分类 clawhub v1.1.1 2 版本 100000 Key: 无需
★ 0
Stars
📥 670
下载
💾 97
安装
2
版本
#latest

概述

Python Code Review

Quick Reference

Issue TypeReference
-----------------------
Indentation, line length, whitespace, namingreferences/pep8-style.md
Missing/wrong type hints, Any usagereferences/type-safety.md
Blocking calls in async, missing awaitreferences/async-patterns.md
Bare except, missing context, loggingreferences/error-handling.md
Mutable defaults, print statementsreferences/common-mistakes.md

Review Checklist

PEP8 Style

  • [ ] 4-space indentation (no tabs)
  • [ ] Line length ≤79 characters (≤72 for docstrings/comments)
  • [ ] Two blank lines around top-level definitions, one within classes
  • [ ] Imports grouped: stdlib → third-party → local (blank line between groups)
  • [ ] No whitespace inside brackets or before colons/commas
  • [ ] Naming: snake_case for functions/variables, CamelCase for classes, UPPER_CASE for constants
  • [ ] Inline comments separated by at least two spaces

Type Safety

  • [ ] Type hints on all function parameters and return types
  • [ ] No Any unless necessary (with comment explaining why)
  • [ ] Proper T | None syntax (Python 3.10+)

Async Patterns

  • [ ] No blocking calls (time.sleep, requests) in async functions
  • [ ] Proper await on all coroutines

Error Handling

  • [ ] No bare except: clauses
  • [ ] Specific exception types with context
  • [ ] raise ... from to preserve stack traces

Common Mistakes

  • [ ] No mutable default arguments
  • [ ] Using logger not print() for output
  • [ ] f-strings preferred over .format() or %

Valid Patterns (Do NOT Flag)

These patterns are intentional and correct - do not report as issues:

  • Type annotation vs type assertion - Annotations declare types but are not runtime assertions; don't confuse with missing validation
  • Using Any when interacting with untyped libraries - Required when external libraries lack type stubs
  • Empty __init__.py files - Valid for package structure, no code required
  • noqa comments - Valid when linter rule doesn't apply to specific case
  • Using cast() after runtime type check - Correct pattern to inform type checker of narrowed type

Context-Sensitive Rules

Only flag these issues when the specific conditions apply:

IssueFlag ONLY IF
---------------------
Generic exception handlingSpecific exception types are available and meaningful
Unused variablesVariable lacks _ prefix AND isn't used in f-strings, logging, or debugging

Gates (reporting workflow)

Complete in order. Do not advance until each pass condition is met.

  1. ScopePass: You list every .py path (or explicit glob) you inspected this run.
  2. False-positive screenPass: For each issue you plan to report, you checked Valid Patterns and Context-Sensitive Rules above; you drop or narrow the finding if those sections say not to flag it.
  3. EvidencePass: Each remaining finding includes [FILE:LINE] (or a bounded line range). Symbols or short verbatim snippets may supplement the location anchor but do not replace it.
  4. Verification protocolPass: You load review-verification-protocol and complete its mandatory steps for each reported issue before the user-facing write-up.
  5. ShipPass: The user-visible output matches whatever structure that protocol requires (no issues-only dump that skips its checks).

When to Load References

  • Reviewing code formatting/style → pep8-style.md
  • Reviewing function signatures → type-safety.md
  • Reviewing async def functions → async-patterns.md
  • Reviewing try/except blocks → error-handling.md
  • General Python review → common-mistakes.md

Review Questions

  1. Does the code follow PEP8 formatting (indentation, line length, whitespace)?
  2. Are imports properly grouped (stdlib → third-party → local)?
  3. Do names follow conventions (snake_case, CamelCase, UPPER_CASE)?
  4. Are all function signatures fully typed?
  5. Are async functions truly non-blocking?
  6. Do exceptions include meaningful context?
  7. Are there any mutable default arguments?

Before reporting: complete Gates (reporting workflow) above (especially gate 4).

版本历史

共 2 个版本

  • v1.1.1 当前
    2026-05-03 06:07 安全 安全
  • v1.1.0
    2026-03-31 02:54 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

Vitest Testing

anderskev
Vitest 测试框架模式与最佳实践。适用于编写单元测试、集成测试、配置 vitest.config、使用 vi.mock/vi.fn 进行模拟等...
★ 0 📥 895

Rust Testing Code Review

anderskev
审查 Rust 测试代码,包括单元测试模式、集成测试结构、异步测试、模拟方式和属性测试,覆盖 Rust 2024 版。
★ 0 📥 763

Rust Code Review

anderskev
审查 Rust 代码,涵盖所有权、借用、生命周期、错误处理、trait 设计、unsafe 使用及常见错误,适用于 .rs 文件审查,检查...
★ 0 📥 744