[general]
name=ANNCSU Loader
qgisMinimumVersion=3.20
qgisMaximumVersion=4.99
description=Carica indirizzi ANNCSU da file Parquet locale filtrando per comune / Load ANNCSU addresses from local Parquet file filtered by municipality
version=2.0
author=Salvatore Fiandaca
email=pigrecoinfinito@gmail.com
about=Plugin to load ANNCSU data (Italian National Archive of Civic Numbers and Urban Streets)
    from a local Parquet file. Allows filtering by municipality and saving results
    as Parquet or GeoPackage with point geometry. Requires the duckdb library (pip install duckdb).
    Supports both QGIS 3.x and QGIS 4.x / PyQt6.
    ---
    Plugin per caricare i dati ANNCSU (Archivio Nazionale Numeri Civici e Strade Urbane)
    da file Parquet locale. Permette di filtrare per comune e salvare in formato
    Parquet o GeoPackage. Richiede la libreria duckdb (pip install duckdb).
    Realizzato con Claude Code (https://claude.ai/code).
tracker=https://github.com/pigreco/anncsu_loader/issues
repository=https://github.com/pigreco/anncsu_loader
homepage=https://github.com/pigreco/anncsu_loader
hasProcessingProvider=no
tags=anncsu, indirizzi, civici, parquet, duckdb, italia
category=Database
icon=icon.png
experimental=True
deprecated=False
server=False
changelog=
    2.0 Fix crash esportazione comuni con apostrofo nel nome (es. "Reggio nell'Emilia") — issue #10
        Nome file di output sanificato: apostrofi e spazi sostituiti da underscore
        Annotazioni nosec B608 su tutte le query DuckDB (falsi positivi Bandit)
    1.9 URL di download spostati in urls.py per facilitarne la manutenzione
        Aggiornati URL al dominio gbvitrano.it
    1.8 Aggiornati URL sorgente ANNCSU e confini ISTAT (nuovo repo quattochiacchiereinquattro/anncus)
        Gestione file esistente: avviso bloccante per download, offerta caricamento in QGIS per export
        Prefisso anncsu_/istat_ sul file esportato in base al parquet sorgente
        Export ANNCSU parquet produce GeoParquet con geometria punto (OGR Parquet driver)
        Credits gbvitrano/Geobeyond nel tab Scarica
    1.7 Ricerca comuni: risultati ordinati con "inizia con" in cima rispetto a "contiene"
        Ricerca indirizzi: query DuckDB con ORDER BY CASE per prioritizzare match "inizia con"
        su comune e via
    1.6 Fix SQL injection nella ricerca indirizzo: input utente ora passato come parametri bind
        invece di essere interpolato direttamente nella query DuckDB
    1.5 Rimosso bottone 'Seleziona tutti' che bloccava il plugin con dataset di grandi dimensioni
    1.4 Fix esportazione GeoPackage: esclude colonne GEOMETRY native dal Parquet
        (non convertibili da DuckDB in pandas); riscrive _scrivi_gpkg usando
        osgeo.ogr (GDAL) per evitare incompatibilità di tipo con numpy/pandas
        nullable dtypes nel memory layer PyQGIS
    1.3 Aggiunge descrizione in inglese nel campo about (richiesta dal repository QGIS)
    1.2 Aggiunge info PNRR con link nel tab Scarica; fix pushMessage per QGIS 4
        (Qgis.MessageLevel.Info); fix QFrame.Shape/Shadow enum Qt6
    1.1 Porting QGIS 4 / Qt6 / PyQt6: QgsBlockingNetworkRequest per il download,
        enum qualificati (QHeaderView.ResizeMode, QAbstractItemView.SelectionBehavior,
        QMessageBox.StandardButton, Qt.TextFormat), QMetaType.Type al posto di QVariant,
        QgsVectorFileWriter.WriterError e writeAsVectorFormatV3, stylesheet palette()
    1.0 Prima versione
