Skip to content

Commit f6bfc77

Browse files
Lukas Geigerclaude
andcommitted
docs: sync CHANGELOG Unreleased (B-004–B-009 AST false-positive fixes); standardize llms.txt
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 0e22eed commit f6bfc77

2 files changed

Lines changed: 30 additions & 2 deletions

File tree

CHANGELOG.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,17 @@ Format basiert auf [Keep a Changelog](https://keepachangelog.com/de/1.1.0/).
66
## [Unreleased]
77

88
### Build / Packaging
9-
- `build_exe.bat` ergänzt einen reproduzierbaren PyInstaller-Build mit lokalem Workpath unter `C:\_Local_DEV\codex_build\methodenanalyser`, zentralem Build-Exclude-Scanner und Kopie der fertigen EXE nach `dist\MethodenAnalyser.exe` sowie `MethodenAnalyser.exe`.
9+
- `build_exe.bat` ergänzt einen reproduzierbaren PyInstaller-Build mit lokalem Workpath (lokales Build-Verzeichnis), zentralem Build-Exclude-Scanner und Kopie der fertigen EXE nach `dist\MethodenAnalyser.exe` sowie `MethodenAnalyser.exe`.
1010
- `START.bat` startet unter Windows bevorzugt die gebaute EXE und fällt erst danach auf den Python-Start zurück.
1111
- `MethodenAnalyser.spec` nutzt relative Projektpfade, bündelt Icon und `locales/` und deaktiviert UPX.
1212

1313
### Fehlerbehebungen / Bug Fixes
14+
- **B-004** (`MethodenAnalyser3.py`): `auto_fix_unused_imports` las Dateien ausschließlich als UTF-8, was bei Latin-1-kodierten Quellcode-Dateien zu `UnicodeDecodeError` führte. Fix: UTF-8-First mit `latin-1`-Fallback via `readlines()` (Zeilennummern bleiben mit `ast.lineno` synchron). 9 Regressionstests in `tests/test_cli.py` ergänzt.
15+
- **B-005** (`MethodenAnalyser3.py`): `analyze_project` fing nur `IOError`/`OSError`, nicht `UnicodeDecodeError` — Latin-1-Dateien brachen den gesamten Projekt-Scan ab. Fix: `UnicodeDecodeError` in denselben `except`-Block aufgenommen.
16+
- **B-006** (`MethodenAnalyser3.py`): Backup- und Output-Schreibvorgänge nutzten immer UTF-8, was Latin-1-Dateien mit Non-ASCII-Zeichen korrumpierte. Fix: erkannte Encoding-Information wird beim Schreiben wiederverwendet.
17+
- **B-007** (`MethodenAnalyser3.py`): `_collect_unused_import_lines` entfernte `from __future__ import annotations` fälschlich als ungenutzt. Fix: `__future__`-Imports werden übersprungen (PEP-563-Semantik).
18+
- **B-008** (`MethodenAnalyser3.py`): `CodeAnalyzer.visit_ExceptHandler` trug Binding-Namen aus `except ... as e`-Blöcken nicht in `local_names` ein — `ExceptHandler.name` ist ein `str`, kein `ast.Name`-Knoten und wurde von `visit_Name` nicht erfasst. Fix: explizite Eintragung in `local_names`.
19+
- **B-009** (`MethodenAnalyser3.py`): `analyze_source` listete `__file__`, `__name__`, `__doc__` als fehlende Imports, weil Modul-Level-Dunders nicht in `builtins` enthalten sind. Fix: Dunders werden aus `missing_imports` herausgefiltert.
1420
- **B-001** (`translator.py`): `_is_german()` erkannte englische Wörter fälschlich als Deutsch, weil die Zeichenmenge `"aeoeueAeOeUess"` als einzelne ASCII-Zeichen iteriert wurde statt als echte Umlaute. Fix: Prüfung auf `"äöüÄÖÜß"` (Unicode). Regressionstest in `tests/test_cli.py` ergänzt.
1521
- **B-002** (`MethodenAnalyser3.py`): `_collect_unused_import_lines()` markierte `import os.path` nicht zur Entfernung, weil `alias.name` den Wert `"os.path"` liefert, während `unused_set` nur `"os"` enthält. Fix: `alias.name.split(".")[0]`. Regressionstest ergänzt.
1622
- **B-003** (`MethodenAnalyser3.py`): `scan_dynamic_usage()` gab Strings wie `"getattr("`, `"setattr("` als extrahierte Methodennamen zurück, weil Regex-Muster ohne Capture-Group den vollen Match liefern. Fix: Strings mit `(` werden ausgefiltert. Regressionstest ergänzt.

llms.txt

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,5 +36,27 @@ All analysis runs locally. The tool does not include telemetry, cloud sync, exte
3636
- `README_de.md`: German translation and localized documentation.
3737
- `EXPORTFORMAT.md`: `methodenanalyser-report-v1.json` schema.
3838
- `WEBAPP.md`: local browser helper details.
39-
- `PORTIERUNGSPLAN.md`: platform scope and non-goals.
4039
- `.github/workflows/tests.yml`: Windows, Ubuntu and macOS smoke matrix.
40+
41+
## Audience
42+
43+
- Python developers who want a dependency-free, local static code analyzer with GUI
44+
- Windows developers looking for an offline-first code quality tool without cloud dependencies
45+
- Development teams using CI/CD pipelines that need structured JSON output for automated analysis
46+
- Developers preparing Python projects for refactoring or cleanup
47+
- Python beginners who want an accessible, readable AST-based tool to explore their own code
48+
49+
## Search Phrases
50+
51+
```
52+
dev-bricks MethodenAnalyser
53+
Python static code analyzer Tkinter GUI
54+
unused imports detector Python AST
55+
local Python code quality checker no dependencies
56+
Python dead code finder GUI Windows
57+
AST-based Python code analyzer portable
58+
Python import tracker unused definitions finder
59+
code similarity detector Python local
60+
```
61+
62+
## Last-checked: 2026-06-11

0 commit comments

Comments
 (0)