Metadati pacchetto
I metadati del pacchetto sono un dizionario di valori di testo (stringa) definiti a livello di pacchetto. È incluso nella SBSAR durante la pubblicazione ed è un archivio di uso generale destinato ad essere utilizzato dalla scrittura pitone.
Visualizzazione e modifica dei metadati tramite l’interfaccia di Designer
Se state sviluppando un plug-in Python, potete modificare manualmente i metadati a scopo di test e debug. Ecco come potete fare:
-
Se fai doppio clic su un pacchetto nell’esploratore, si apre il pannello Proprietà su questo pacchetto.
-
Ecco una sezione dedicata, “Metadati”. Nel tuo caso potrebbe essere vuoto, come nell’immagine precedente.
Potete aggiungere nuovi metadati mediante il pulsante “più”.
-
Viene visualizzato un nuovo elemento nella sezione:
-
Sono disponibili i campi “Chiave” e “Valore”. Entrambi possono essere impostati su qualsiasi cosa si adatti alle vostre esigenze. Il campo “Chiave” deve avere un valore univoco in tutto l’elenco.
-
Potete anche scegliere il “Tipo” dell’elemento. Al momento può essere “String” o “URL”:
-
Qui “URL” indica un riferimento a una risorsa inclusa nel pacchetto. A tale scopo, scegli un file sul disco rigido e trascinalo sul pacchetto in Esplora risorse. Può essere una risorsa normale, come un’immagine, o qualsiasi altro file, come un file di testo.
-
Il file viene visualizzato come nuova risorsa nel pacchetto.
Ora torna al pannello Proprietà del pacchetto, crea un nuovo metadati, assegnagli una chiave appropriata e scegli “URL” come tipo. Quindi seleziona “…” nel campo “Valore” e scegliere “Da risorsa”. Infine, scegli il file appena incluso e convalidalo:
-
Ora puoi vedere che l’“URL” della risorsa è memorizzato nel campo “Valore”.
Puoi anche eliminare i metadati utilizzando il pulsante “X” a destra dell’elemento:
Metadati nei file SBSAR pubblicati
In alcuni casi, potrebbe essere necessario recuperare i metadati definiti in un pacchetto nel SBSAR pubblicato corrispondente. Di seguito potete leggere come i metadati vengono trasformati e archiviati nell’archivio e il modo corretto per sfruttarli.
I metadati vengono memorizzati in base al formato JSON in un file denominato /assemblies/content/0000/metadata.json (il percorso è relativo alla cartella principale dell’archivio .sbsar).
I metadati regolari (stringa) vengono memorizzati così come sono, ad esempio “chiave”: “valore stringa”, uno per riga. Anche in questo caso, l’ordine originale delle varie chiavi non viene mantenuto e viene definita l’implementazione. Non fare mai affidamento sull’ordine nel vostro processo, come con i normali pitoni dicts!
Poiché lo scopo dei metadati URL è quello di consentire agli utenti e ai plug-in di includere file esterni nell’archivio .sbsar, questi sono soggetti a una trasformazione specifica: In primo luogo, il file della risorsa che corrisponde all’URL archiviato viene copiato nell’archivio in un percorso definito dall’implementazione (di solito in una sottocartella numerata, che conterrà solo questo file. Lo scopo è evitare conflitti di nomi.) Il file manterrà il nome originale (il nome della risorsa viene ignorato a questo punto). Quindi, invece dell’URL originale in metadata.json, viene scritto il percorso del file copiato nell’archivio relativo a metadata.json.
Se esportiamo il pacchetto di esempio creato nella sezione precedente (dopo aver creato almeno un grafico con alcuni output), otteniamo questo contenuto di archivio:
myPackage.sbsar
|-- assemblies
|-- content
|-- 0000
|-- New_Graph.sbsasm
|-- New_Graph.xml
|-- metadata.json
|-- resources
|-- 0
|-- TEXT.txt
E il contenuto metadata.json è:
{
"myResource": "resources/0/TEXT.txt",
"myText": "This is a text"
}
Al momento, non viene fornito alcuno strumento specifico per accedere ai metadati e alle risorse archiviate. Il metodo consigliato consiste nell’aprire l’archivio con il decodificatore LZMA di tua scelta e nell’analizzare il file metadata.json con un normale parser JSON (se le chiavi o le stringhe di valori contengono alcuni caratteri complessi, verranno ignorate nel modo JSON).