💮 amazing QRCode generator (supporting animated gif) - amazing 二维码生成器(支持 gif 动态图片二维码)
This report summarizes scanner evidence for x-hw/amazing-qr, a Python project with 10,831 GitHub stars. SynthScan examined 4,463 lines of code across 31 source files, recording 60 pattern matches distributed across 7 syntactic categories. The legacy adjusted pattern signal is 16.8 (Elevated pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 58 finding(s).
Are imports declared and package/API names verified? 1 finding(s).
Are wrappers, guards, and repeated structures necessary? 45 finding(s).
Which changes need focused human review? 60 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 60 distinct pattern matches across 7 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | amzqr/mylibs/matrix.py | 194 | def add_format_and_version_string(ver, ecl, mask_num, m): | CODE |
| LOW | tests/test_gif.py | 45 | def test_gif_per_frame_duration_preserved(tmp_path): | CODE |
| LOW⚡ | tests/test_combine_mask.py | 24 | def test_mask_allows_clear_data_pixel(): | CODE |
| LOW⚡ | tests/test_combine_mask.py | 31 | def test_mask_reserves_finder_corners(): | CODE |
| LOW⚡ | tests/test_combine_mask.py | 39 | def test_mask_reserves_timing(): | CODE |
| LOW⚡ | tests/test_combine_mask.py | 47 | def test_mask_reserves_only_module_centers(): | CODE |
| LOW⚡ | tests/test_combine_mask.py | 57 | def test_mask_reserves_alignment_blocks(): | CODE |
| LOW | tests/test_combine_mask.py | 118 | def test_mask_parity_with_original_loop(ver): | CODE |
| LOW | tests/test_constant_layout.py | 11 | def test_layout_constants_values(): | CODE |
| LOW | tests/test_constant_layout.py | 21 | def test_layout_constants_derive_from_roots(): | CODE |
| LOW | tests/test_matrix.py | 33 | def test_matrix_size_scales_with_version(): | CODE |
| LOW | tests/test_matrix.py | 39 | def test_finder_pattern_top_left(): | CODE |
| LOW | tests/test_matrix.py | 51 | def test_three_finder_patterns(): | CODE |
| LOW | tests/test_matrix.py | 71 | def test_dark_module_is_fixed_dark(): | CODE |
| LOW | tests/test_combine_layout.py | 73 | def test_combine_respects_reserved_modules(tmp_path): | CODE |
| LOW | tests/test_combine_layout.py | 122 | def test_combine_scaling_preserves_aspect_ratio(tmp_path): | CODE |
| LOW | tests/test_combine_layout.py | 202 | def test_combine_fully_transparent_bg_keeps_qr(tmp_path): | CODE |
| LOW⚡ | tests/test_run_smoke.py | 16 | def test_run_plain_writes_png(tmp_path): | CODE |
| LOW⚡ | tests/test_run_smoke.py | 25 | def test_run_rejects_unsupported_chars(tmp_path): | CODE |
| LOW⚡ | tests/test_run_smoke.py | 30 | def test_run_rejects_bad_version(tmp_path): | CODE |
| LOW⚡ | tests/test_run_smoke.py | 52 | def test_run_accepts_jpeg_extension(tmp_path): | CODE |
| LOW⚡ | tests/test_run_smoke.py | 59 | def test_run_accepts_uppercase_extension(tmp_path): | CODE |
| LOW⚡ | tests/test_run_smoke.py | 67 | def test_run_rejects_unsupported_picture_extension(tmp_path): | CODE |
| LOW⚡ | tests/test_run_smoke.py | 75 | def test_run_rejects_unsupported_save_name_extension(tmp_path): | CODE |
| LOW⚡ | tests/test_run_smoke.py | 82 | def test_run_accepts_jpeg_save_name(tmp_path): | CODE |
| LOW⚡ | tests/test_run_smoke.py | 88 | def test_run_accepts_uppercase_save_name(tmp_path): | CODE |
| LOW⚡ | tests/test_run_smoke.py | 95 | def test_run_gif_picture_requires_gif_save_name(tmp_path): | CODE |
| LOW⚡ | tests/test_run_smoke.py | 102 | def test_run_gif_picture_accepts_uppercase_gif_save_name(tmp_path): | CODE |
| LOW | tests/test_data.py | 16 | def test_numeric_encoding_groups_of_three(): | CODE |
| LOW | tests/test_data.py | 21 | def test_numeric_encoding_single_and_double_digit_groups(): | CODE |
| LOW | tests/test_data.py | 39 | def test_alphanumeric_single_char(): | CODE |
| LOW | tests/test_data.py | 45 | def test_byte_encoding_two_chars(): | CODE |
| LOW⚡ | tests/test_data.py | 63 | def test_encode_chooses_alphanumeric_for_mixed(): | CODE |
| LOW⚡ | tests/test_data.py | 70 | def test_encode_uses_version_one_at_exact_capacity(content): | CODE |
| LOW⚡ | tests/test_data.py | 76 | def test_encode_accepts_version_forty_at_exact_capacity(): | CODE |
| LOW⚡ | tests/test_data.py | 83 | def test_oversized_content_raises(): | CODE |
| LOW⚡ | tests/test_pipeline.py | 26 | def test_pipeline_version_and_size(): | CODE |
| LOW⚡ | tests/test_pipeline.py | 33 | def test_pipeline_finder_patterns(): | CODE |
| LOW⚡ | tests/test_pipeline.py | 43 | def test_pipeline_timing_patterns(): | CODE |
| LOW⚡ | tests/test_pipeline.py | 51 | def test_pipeline_dark_module_is_fixed_dark(): | CODE |
| LOW⚡ | tests/test_pipeline.py | 58 | def test_get_qrcode_writes_png(tmp_path): | CODE |
| LOW⚡ | tests/test_pipeline.py | 68 | def test_pipeline_is_deterministic(): | CODE |
| LOW | benchmarks/test_bench_combine_static.py | 28 | def test_bench_combine_static(benchmark, tmp_path, bg_size, colorized, version, ecl, words_key): | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | amzqr/amzqr.py | 12 | CODE | |
| LOW | amzqr/amzqr.py | 80 | CODE | |
| LOW | amzqr/mylibs/matrix.py | 37 | CODE | |
| LOW | amzqr/mylibs/matrix.py | 50 | CODE | |
| LOW | amzqr/mylibs/matrix.py | 83 | CODE | |
| LOW | amzqr/mylibs/matrix.py | 109 | CODE | |
| LOW | amzqr/mylibs/matrix.py | 142 | CODE | |
| LOW | amzqr/mylibs/matrix.py | 110 | CODE | |
| LOW | amzqr/mylibs/matrix.py | 164 | CODE | |
| LOW | amzqr/mylibs/matrix.py | 165 | CODE | |
| LOW | tests/test_combine_mask.py | 75 | CODE | |
| LOW | tests/test_combine_layout.py | 38 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/test_combine_layout.py | 134 | # Create a portrait bg (width < height) with distinct top/bottom colors. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | amzqr/amzqr.py | 61 | draw.point(pts, fill=0) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | amzqr/amzqr.py | 80 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | amzqr/__init__.py | 3 | __all__ = ["__version__"] | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | amzqr/__init__.py | 1 | CODE |