Files
aiscr-qgis-amcr-viewer/openspec/changes/archive/2026-10-02-fix-component-feature-weight/tasks.md
T
david-spacil 6e95973296 fix: váha prvku komponent počítaná z komponent prošlých filtrem (#55) (#83)
* fix: váha prvku komponent počítaná z komponent prošlých filtrem (#55)

Váha prvku_vaha = 1/n se dosud počítala ze všech komponent dokumentační
jednotky ještě před filtrem na období a areál, takže při aktivním filtru
váhy prvků jedné DJ nedávaly v součtu 1 (DJ se 4 komponentami, filtru
vyhoví 1 → váha 0,25 místo 1).

- nová funkce _component_entries: nejdřív vyfiltruje komponenty, pak
  přidělí váhu 1/n z těch, které prošly; DJ bez komponent má váhu 1
- smoke test vaha_komponent (4×0,25; 1 ze 4 → 1; 2 ze 3 → 2×0,5; bez
  komponent → 1)
- README: pole prvek_vaha v tabulce atributů komponent
- changelog v2.2.0 doplněn (bez povýšení verze)
- OpenSpec změna openspec/changes/fix-component-feature-weight

Ověřeno: živá data (Praha, novověk) – 0 z 1204 DJ se součtem vah ≠ 1,
původní kód 921; check_sources, bandit, detect-secrets, flake8, ruff,
pyqgis4-checker, smoke test v qgis/qgis:ltr i :stable.

Implementace připravena AI (Claude, subagent), ověřena a zkontrolována.

* openspec: archivovat fix-component-feature-weight (#55)

Ruční test v QGIS ověřen správcem: akce i lokality s Načíst komponenty,
bez filtru i s filtrem období – váhy prvků jedné DJ dávají součet 1 a
počítají se jen z vyfiltrovaných komponent. Úkol 3.2 odškrtnut, změna
archivována přes openspec archive --skip-specs.

Připraveno s pomocí AI (Claude).
2026-10-02 17:17:28 +02:00

1.9 KiB
Raw Blame History

Tasks

1. Weight computed from passing components

  • 1.1 In amcr_viewer/amcr_tools.py extract the per-component entry building of the Načíst komponenty branch into a pure helper that takes the DJ metadata, the component list and a pass predicate, filters first and sets vaha = 1/len(passing); set vaha = 1 explicitly for a DJ without components; verify with python3 tests/check_sources.py, flake8 --isolated amcr_viewer/ and ruff check .
  • 1.2 Extend tests/smoke_test.py with an offline case for the helper (4 components no filter → 4×0.25; 1 of 4 passes → 1.0; 2 of 3 pass → 2×0.5, sum 1 within tolerance; no components → 1 entry, weight 1); verify the smoke test passes in qgis/qgis:ltr and qgis/qgis:stable

2. Documentation

  • 2.1 Add prvek_vaha (alias Váha prvku) to the component fields table in README.md with the rule "1/n, n = features created from the same documentation unit after filters"; verify by reading the rendered table
  • 2.2 Extend the v2.2.0 changelog bullet about the feature weight in amcr_viewer/metadata.txt (weights of one documentation unit sum to 1 also with period/area filters); no version bump – 2.2.0 is unreleased and CITATION.cff already says 2.2.0; verify both versions match

3. Verification

  • 3.1 Run the full local check set from AGENTS.md (check_sources, bandit, detect-secrets --all-files, flake8 --isolated, ruff, pyqgis4-checker log empty, smoke test ltr + stable); verify all clean
  • 3.2 Manual test in QGIS (user): akce in a small window with Načíst komponenty and one period filter; verify in the attribute table that prvek_vaha sums to 1 per dj_id
    • Verified by the maintainer 2026-10-02: akce and lokality with Načíst komponenty, without and with a period filter – weights sum to 1 per DJ and are computed only from the filtered components