2.9.44 Audit de la zone d'analyse (AOI) : corrections - Le BILAN de la zone etait produit a l'interieur du bloc qui indexe le voisinage, lequel ne tourne que si un controle de PAIRES est coche. Decocher chevauchements, hauteur imbriquee et croisements de lignes suffisait donc a faire disparaitre l'avertissement « analyse restreinte », a laisser le compte d'entites a 0 et l'etendue sur la couche entiere — le rapport annoncait « Restreinte : 0 entite(s) sur 7 » apres en avoir analyse 4. Une restriction muette est precisement ce que cette fonction doit empecher : le bilan ne depend plus d'aucun controle. - L'onglet « Attributs » lisait les N premieres entites de la COUCHE : il montrait des lignes qu'aucun controle n'avait examinees, et sur une couche triee geographiquement il pouvait n'en montrer AUCUNE de la zone. L'echantillon porte desormais sur la zone. - La regle « cette entite est-elle dans la zone » etait ecrite DEUX FOIS (analyse et reparation). Deux ecritures d'une meme regle finissent par diverger, et la reparation aurait alors produit un extrait d'un perimetre different de celui controle. Une seule definition partagee, feature_in_aoi(). - Decharger le plugin laissait le rectangle bleu de la zone dessine sur la carte, sans plus rien pour l'expliquer ni personne pour l'effacer — le defaut meme que la fonction de nettoyage dit corriger pour la surbrillance. L'outil de trace et les signaux d'edition de la couche restaient eux aussi branches. - Deux clics sur « Dessiner… » enfermaient dans l'outil : le second relisait l'outil courant du canevas, qui etait l'outil de trace LUI-MEME ; il devenait « l'outil precedent », et le retablir en fin de trace remettait l'utilisateur en mode zone sans aucune sortie visible. - La verification automatique apres une reparation sous zone pouvait annoncer « 0 anomalie restante » a tort : le fichier verifie est l'EXTRAIT de la zone, les voisins n'y figurent pas, un chevauchement de bord n'a donc plus de second membre et ne peut pas etre recontrole. La reserve est desormais enoncee, et la zone n'est plus rejouee sur un extrait qui EST deja la zone. - Une note « Non evalue » (zone vide) vaut 0 sans rien avoir mesure : la comparer a l'analyse precedente affichait « -100 pts » en rouge, comme un effondrement de la qualite. L'ecart n'est plus calcule contre une note qui n'en est pas une. Reparation automatique : plus d'ecrasement silencieux - Depuis que la sortie est ecrite automatiquement a cote de la source, aucun dialogue d'enregistrement ne prevenait plus qu'un fichier du meme nom existait : deux reparations d'affilee remplacaient la premiere SANS RIEN DIRE, y compris si l'utilisateur avait travaille dessus entre-temps. Le choix est maintenant propose entre ecraser et ecrire a cote (_repare_2, _repare_3…), les deux menant quelque part. Verifie et non corrige - Le parametre d'etendue Processing non renseigne rend bien toute la couche (piege classique de l'etendue vide ecarte), une AOI couvrant toute la couche rend exactement le meme resultat que pas d'AOI, et le second anneau de voisinage reste borne (30 000 entites traitees en 0,4 s). Publication : durcissement securite - Trois try/except: pass introduits par le code recent (deux dans le nouvel outil de trace de zone, un dans le contexte de mesure Processing) sont remplaces par contextlib.suppress(Exception) : ce motif est bloque comme critique par le scanner de securite (Bandit) de plugins.qgis.org et n'aurait pas ete honore par un simple commentaire nosec. Verifie : Bandit rend « No issues identified » sur le zip extrait. - Cycle de vie reel valide sur le zip pret a publier : classFactory() -> initGui() -> ouverture du panneau -> unload(), avec un faux iface n'exposant que ce que le plugin utilise reellement ; tout est retire proprement (menu, icone de barre d'outils, panneau). - Injection de formule CSV et rapport HTML repasses au nom de couche/colonne malveillant (deja corriges en 2.9.21) : toujours sains, verifie par parsing reel du CSV et du HTML, pas par recherche de motif. Tests - 194 tests passent. Les huit correctifs AOI ci-dessus portent chacun un test verifie en deux temps : il echoue quand le bug est reintroduit, il passe sur le code corrige.
yes
Bchini
2026-09-08T08:57:58.383818+00:00
3.16.0
3.99.0
None
no
Plugin Tags