Definire le descrizioni dei parametri per la guida di Python Toolbox?


14

Sto cercando di creare alcune toolbox Python per la nostra applicazione ArcMap (ad es. MyTool.pyt)

Vedo che il testo della guida è definito con l'attributo class self.description.

Tuttavia, una volta eseguito il programma e facendo clic su uno dei campi dei parametri, il testo della guida / descrizione diventa vuoto. Vorrei essere in grado di fornire il campo della descrizione per ciascun parametro. Come viene realizzato?

Dopo alcune risposte, vedo che tramite il menu di scelta rapida "Descrizione elemento" ci sono molti campi che possono essere popolati. Esiste un modo 'pitonico' per farlo? Cioè, semplicemente incorporando alcuni attributi nelle classi di file .pyt?

Ad esempio, nella definizione di toolbox .pyt hai la classe Toolbox:

import arcpy

class Toolbox(object):
    def __init__(self):
        """Define the toolbox (the name of the toolbox is the name of the
        .pyt file)."""
        self.label = "My Toolbox"
        self.alias = ""

        # List of tool classes associated with this toolbox
        self.tools = [MyNiceTool]


class MyNiceTool(object):
    def __init__(self):
        """Define the tool (tool name is the name of the class)."""
        self.label = "My Tool Class"
        self.description = """
A description that shows up in the help context side pane when the tool is launched.
        """
        self.canRunInBackground = True

    def rest_of_required_methods....

Dalla stringa self.description nella finestra della guida della finestra di dialogo Strumento verrà visualizzato questo testo. Tuttavia, ciò che voglio fare è avere una "descrizione" incorporata nel mio codice anche per ciascun parametro, in modo che quando lo strumento viene avviato e l'utente fa clic in un campo di parametro, viene mostrata la descrizione del parametro. Se dovessi farlo utilizzando il metodo "Descrizione articolo" a cui si fa riferimento nelle risposte di seguito, modificherei i campi Spiegazione della finestra di dialogo nella sezione Sintassi per ogni parametro ... Immagino.

Risposte:


16

Vedo che il testo della guida è definito con l'attributo class self.description.

Questo è dove stai sbagliando. Nella pagina di aiuto Documentare uno strumento in una casella degli strumenti di Python dice:

Per le caselle degli strumenti di Python, la documentazione per la casella degli strumenti e gli strumenti sono archiviati in file .xml associati alla casella degli strumenti e agli strumenti per nome. La guida per ogni strumento verrà archiviata in un file .xml separato.

Ciò significa che non è possibile impostare il testo di aiuto dall'interno del file .pyt stesso. Ciò ha senso se si considera che il testo della guida non è semplice ASCII ma testo ricco che può includere formattazione, punti elenco e immagini.

Fortunatamente, Python supporta la lettura e la scrittura di XML , quindi dovresti essere in grado di modificare dinamicamente il testo della guida da uno script separato.


2
Grazie per il link alla pagina di aiuto "Documentazione". Ho cercato, ma per qualche motivo non sono arrivato a quella pagina. Sarebbe bello se ESRI supportasse il testo ristrutturato. Quindi potremmo documentare direttamente le caselle degli strumenti dal codice come si può usare Sphinx.
Giovanni,

"dovresti essere in grado di modificare dinamicamente il testo di aiuto da uno script separato." -> Sarebbe molto desiderabile .. qualcuno ha sviluppato uno strumento per questo?
Ratnanil,

13

È possibile definire i messaggi per ciascun parametro seguendo questi passaggi:

  1. Aprire ArcCatalog ed evidenziare lo script nella struttura del catalogo
  2. Seleziona la scheda Descrizione
  3. Fai clic sul pulsante Modifica
  4. Fare clic sulla freccia giù accanto a ciascun parametro e digitare un messaggio
  5. Infine, salva le modifiche facendo clic sul pulsante Salva

Quando un utente fa clic all'interno di un parametro di script ora vedrà il tuo messaggio.


4
Grazie .. sai dove sono poi salvate queste informazioni? Viene scritto nei file XML che sembrano essere stati creati nella cartella in cui inserisco il file .pyt?
Giovanni,

11

Se ho capito bene, vuoi aggiungere testi di aiuto alle tue funzioni. Ciò può essere fatto facendo clic con il pulsante destro del mouse sullo strumento dalla finestra della casella degli strumenti e facendo clic su Descrizione elemento, quindi su Modifica in alto. Ti consentirà di aggiungere una descrizione per ciascun parametro, che verrà visualizzato nella sezione della guida quando fai clic sul parametro.

Se ti trovi in ​​Arcmap 10.0 (almeno SP precedenti) devi farlo dalla finestra di ArcCatalog (vai alla tua cassetta degli attrezzi) all'interno di Arcmap per farlo funzionare.


Grazie, questo è utile e sembra davvero essere una soluzione. In effetti, mi apre una nuova serie di domande! Non mi rendevo conto di tutti questi campi di "Descrizione dell'oggetto", dato che ho lavorato con i toolbox solo tramite i file Python Toolboxs (.pyt) in 10.1. Sfortunatamente, non è proprio quello che stavo cercando, quindi ... quindi modificherò la mia domanda ora.
Giovanni,

2

Devi solo fare clic sui metadati di modifica dello strumento, vedrai che per ogni parametro puoi facilmente modificare i messaggi da visualizzare.

inserisci qui la descrizione dell'immagine

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.