Ciao Luigi, 2015-06-18 0:19 GMT+02:00 Luigi Pirelli <lui...@gmail.com>: > consiglio di usare il wrapper ll'xml del progetto: > http://qgis.org/api/classQgsProject.html sgrapparsi all'handlaer > QgsProjectBadLayerHandler [...] > mi sembra prossa essere un buon plugin utile a tutti.
Ottime indicazioni Luigi, spero che avremo tempo di metterci mano più seriamente, per ora basta lo script a riga di comando. > piccola riflessione generale sul SW libero e non... bello, pero' come > faccio a comptere con con stagisti pagati dallo stato a cui io pago le > tasse? ricordo un progetto per una regione del nord italia su qgis che > abbiamo offerto il giusto e lo vince una sconosciuta ditta > (sconosciuta per il mondo del sw libero e di qgis) con un ribasso > impressionante (praticamente la meta')... ora, impossibile fare sti > prezzi a meno di avere schiavi stagisti o studenti sottopagati o > subcontrattati a indiani.... comunque di quel progetto, non abbiamo > visto l'ombra delle patch che avrebbero dovuto risolvere o del plugin > che avrebbero dovuto generare Concordo su tutto, il problema è duplice: - da un lato c'è chi sfrutta le persone e rovina il mercato con prezzi assurdi. - dall'altro i committenti non sono in grado di valutare la qualità e a parte Regione Toscana non si preoccupano di verificare la ridistribuzione del SW libero che hanno pagato. Che fare? Cerchiamo di passarci le informazioni su chi sfrutta la gente, e passiamo voce quando ci sono progetti di PA che "dovrebbero" essere rilasciati, l'Associazione è ben felice di fare un sollecito via PEC. Nel mio piccolo faccio lavorare lo stagista (che ha 19 anni e non è un programmatore del tuo calibro) per piccole cose interne e mi premuro di ridistribuire quel poco che ha fatto: _______________________________________ #Pythonlayerfixer #verifica se file dei layer specificati in un progetto QGIS esistono, altrimenti #li cerca nel percorso specificato dall'utente e releative sottocartelle. #-------------------------------------- #autore Mattia Dorigo,Amedeo Fadini #Azienda Tepco.srl - te...@tepco.it #18/06/15 # Licenza: Free BSD http://opensource.org/licenses/BSD-2-Clause #---------------------------------------- # librerie importate import xml.etree.ElementTree as ET import os, fnmatch # queste due funzioni permettono di trovare un file cercandolo da una cartella iniziale def find_files(directory, pattern): for root, dirs, files in os.walk(directory): for basename in files: if fnmatch.fnmatch(basename, pattern): filename = os.path.join(root, basename) yield filename def FindPath(HomeDir,nameFile): path = "" for filename in find_files(HomeDir,nameFile): path = filename return path #prendo il nome del file da input valore = raw_input('inserisci nome file di progetto senza estensione') valore = valore + ".qgs" percorso = raw_input('inserisci il nuovo percorso') # = raw_input('inserisci nome file con estensione') # importo il xml e lo leggo tree = ET.parse(valore) root = tree.getroot() print "-----------------------------------------------" # ciclo che mi permette di ottenere tutti i datasource del file xml for ds in root.iter('datasource'): single = ds.text single = single.split("|") # se il file esiste al percorso indicato, lo lascio stare if os.path.exists(single[0]): print single[0] print "esiste" # se non esiste, ci lavoro sopra else: print single[0] print "non esiste" #da un path prendo solo il nome del file textname = os.path.basename(single[0]) #con le funzioni sopra, cerco il file da una directory che ho dato path = FindPath(percorso,textname) #sostituisco i backslash con lo slash path = path.replace("\\", "/") single[0] = path #ricostruisco il percorso, aggiungendo eventualmente altri file single = "|".join(single) print single print "corretto" ds.text = single tree.write("modified.qgs") print "-----------------------------------------------" _______________________________________________ Gfoss@lists.gfoss.it http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it. 750 iscritti al 18.3.2015