Definindo descrições de parâmetros para a ajuda do Python Toolbox?

14

Estou tentando criar algumas caixas de ferramentas Python para nosso aplicativo ArcMap (por exemplo, MyTool.pyt)

Percebo que o texto de ajuda é definido com o atributo self.description das classes.

No entanto, depois de executar o programa e clicar em qualquer um dos campos de parâmetro, o texto de ajuda / descrição fica vazio. Eu gostaria de poder fornecer o campo de descrição para cada parâmetro. Como isso é realizado?

Após algumas respostas, vejo que, no menu de contexto com o botão direito do mouse em 'Descrição do item', existem muitos campos que podem ser preenchidos. Existe uma maneira 'pitônica' de fazer isso? Ou seja, apenas incorporando alguns atributos nas classes de arquivo .pyt?

Por exemplo, na definição da caixa de ferramentas .pyt, você tem a 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....

Na sequência self.description, a janela de ajuda da caixa de diálogo Ferramenta exibirá esse texto. No entanto, o que eu quero fazer é ter uma 'descrição' incorporada no meu código para cada parâmetro também, para que, quando a ferramenta for iniciada e o usuário clicar em um campo de parâmetro, a descrição do parâmetro seja mostrada. Se eu fizesse isso usando o método 'Item Description' mencionado nas respostas abaixo, editaria os campos Dialog Explication na seção Syntax para cada parâmetro ... eu acho.

John
fonte

Respostas:

16

Percebo que o texto de ajuda é definido com o atributo self.description das classes.

É aqui que você está errado. Na página de ajuda Documentando uma ferramenta em uma caixa de ferramentas Python , diz:

Para caixas de ferramentas Python, a documentação da caixa de ferramentas e das ferramentas é armazenada em arquivos .xml associados à caixa de ferramentas e às ferramentas por nome. A ajuda para cada ferramenta será armazenada em um arquivo .xml separado.

Isso significa que você não pode definir o texto de ajuda no próprio arquivo .pyt. Isso faz sentido quando você considera que o texto de ajuda não é ASCII simples, mas um texto rico que pode incluir formatação, marcadores e imagens.

Felizmente, o Python suporta a leitura e gravação de XML , para que você possa editar dinamicamente o texto de ajuda de um script separado.

dmahr
fonte
2
Obrigado pelo link para a página de ajuda 'Documentação'. Pesquisei, mas por algum motivo não cheguei a essa página. Seria bom se a ESRI apoiasse o texto reestruturado. Em seguida, poderíamos documentar as caixas de ferramentas diretamente do código, como é possível usar o Sphinx.
John
"você deve poder editar dinamicamente o texto de ajuda de um script separado." -> Isso seria muito desejável .. alguém desenvolveu uma ferramenta para isso?
Ratnanil
13

Você pode definir mensagens para cada parâmetro seguindo estas etapas:

  1. Abra o ArcCatalog e destaque o Script na árvore de catálogos
  2. Selecione a guia Descrição
  3. Clique no botão Editar
  4. Clique na seta para baixo ao lado de cada parâmetro e digite uma mensagem
  5. Por fim, salve as edições clicando no botão Salvar

Quando um usuário clica em um parâmetro de script, agora ele vê sua mensagem.

artwork21
fonte
4
Obrigado .. você sabe onde essas informações são salvas? Ele é gravado nos arquivos xml que parecem criados na pasta em que coloco o arquivo .pyt?
John
11

Se bem entendi, você deseja adicionar textos de Ajuda às suas funções. Isso pode ser feito clicando com o botão direito do mouse na ferramenta na janela da caixa de ferramentas, clique em Descrição do item e, em seguida, em Editar na parte superior. Isso permitirá que você adicione uma descrição para cada parâmetro, que será exibida na seção de ajuda ao clicar no parâmetro.

Se você estiver no Arcmap 10.0 (pelo menos SPs anteriores), precisará fazer isso na janela do ArcCatalog (navegue até sua caixa de ferramentas) no Arcmap para que ele funcione.

Martin
fonte
Obrigado, isso é útil e parece realmente ser uma solução. De fato, isso abre uma nova série de perguntas para mim! Não percebi todos esses campos 'Descrição do item', pois só trabalhei com as caixas de ferramentas através dos arquivos Python Toolboxs (.pyt) na versão 10.1. Infelizmente, não foi exatamente o que eu estava procurando ... então vou editar minha pergunta agora.
John
2

Você só precisa clicar nos metadados de edição da ferramenta; verá que, para cada parâmetro, é possível editar facilmente as mensagens a serem exibidas.

insira a descrição da imagem aqui

Nacho Moreno
fonte