Files
016-pretty-table/docs/sqa/reviews/rc-004-python-source-code.md
T
Tirsvad 02dadc0ebd
CI / test (push) Successful in 50s
CI / test (pull_request) Successful in 49s
Resolve pending commit link
2026-10-07 12:56:20 +08:00

3.3 KiB

SQA Review Record

Metadata

Key Value
ID RC-004
CrossReference MIL-001, QC-PY-001

Version History

Date Status Author Reviewer Change Commit
2026-10-07 Proposed Jens Tirsvad Nielsen S01 Initial version 10337f4

Artifact Under Review

  • Instance reviewed: Python source code in src/pretty_table/ and its tests in tests/ (task 9 of MIL-001, Go criterion 6)
  • Checklist used: QC-PY-001 (qc-programming-python.md)
  • Scope: full review
  • Language and domain: n/a (technical type)
  • Language reviewer: none

Checklist Results

# Criterion Status Evidence/Notes
1 PEP 8 casing Pass Modules constants.py, main.py; functions create_table, main; constants COLUMN_NAME, POKEMON
2 Names state purpose; no abbreviations Pass Minor: the comprehension variable type_ in main.py could be pokemon_type, which avoids the trailing underscore. Not a defect
3 Formatter and linter pass, no suppressions Pass ruff format --check . reports 17 files already formatted; ruff check . passes; no noqa comments
4 Every signature annotated Pass create_table() -> PrettyTable, main() -> None, all test functions annotated
5 No bare except or swallowed exceptions N-A The code has no exception handling
6 No mutable defaults, no shadowed builtins Pass No default arguments; no builtin names shadowed
7 Context managers for files, locks and connections N-A The code opens no files, locks or connections
8 Docstrings say what, not how Pass Every module and function has a Doxygen docstring
9 logging instead of print; no secrets in output Pass main() uses print to produce the program's required output, not diagnostics; no secrets or personal data are printed
10 Classes and operations trace to a DCD N-A The task is a plain technical task (MIL-001 task 3, no use case or DCD); there is no DCD in the project
11 Tests for new behaviour, named for the behaviour, order- and network-independent Pass 8 tests in tests/test_main.py and tests/test_constants.py; python -m pytest passes
12 Type checker strict, Any justified Pass mypy (strict, set in pyproject.toml) reports no issues in 7 source files; no Any
13 Dependencies declared and pinned, none unused Pass prettytable>=3.10 is declared and used; dev tools are in the dev extra. The pin is a lower bound, not an exact version

Overall Verdict

Go — every mandatory criterion passes or does not apply, and the optional criteria pass. This satisfies Go criterion 6 of MIL-001. The author and the reviewer are both S01, the only stakeholder, as in RC-001 to RC-003.

Action Items

Action Owner Due
Optionally rename type_ to pokemon_type in main.py S01 next change to main.py
Re-review RC-001 to RC-003 against the checklists in framework/qc/, which were missing when those records were written S01 when convenient