Определение описания параметров для справки Python Toolbox?

14

Я пытаюсь создать несколько наборов инструментов Python для нашего приложения ArcMap (например, MyTool.pyt)

Я вижу, что текст справки определяется с помощью атрибута classes.description.

Однако после запуска программы и нажатия на любое из полей параметров текст справки / описания становится пустым. Я хотел бы иметь возможность предоставить поле описания для каждого параметра. Как это достигается?

После некоторых ответов я вижу, что через контекстное меню правой кнопкой мыши «Описание элемента» можно заполнить много полей. Есть ли «питонный» способ сделать это? То есть просто встраивая некоторые атрибуты в классы файлов .pyt?

Например, в определении набора инструментов .pyt у вас есть класс 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....

В строке self.description этот текст будет отображаться в окне справки диалога инструментов. Однако то, что я хочу сделать, это иметь «описание», встроенное в мой код также для каждого параметра, так что, когда инструмент запускается, и пользователь щелкает в поле параметра, отображается описание параметра. Если бы я сделал это, используя метод «Item Description», на который ссылаются в ответах ниже, я бы отредактировал поля объяснения диалога в разделе «Синтаксис» для каждого параметра ... Я думаю.

Джон
источник

Ответы:

16

Я вижу, что текст справки определяется с помощью атрибута classes.description.

Это где вы идете не так. На странице справки Документирование инструмента в наборе инструментов Python сказано:

Для наборов инструментов Python документация для набора инструментов и инструментов хранится в XML-файлах , связанных с набором инструментов и инструментами по имени. Справка для каждого инструмента будет храниться в отдельном XML-файле.

Это означает, что вы не можете установить текст справки из самого файла .pyt. Это имеет смысл, если учесть, что текст справки - это не простой ASCII, а форматированный текст, который может включать форматирование, маркеры и изображения.

К счастью, Python поддерживает чтение и запись XML , поэтому вы должны иметь возможность динамически редактировать текст справки из отдельного сценария.

dmahr
источник
2
Спасибо за ссылку на страницу справки «Документирование». Я искал, но по какой-то причине не пришел на эту страницу. Было бы хорошо, если бы ESRI поддерживал restructuredText. Затем мы могли бы документировать наборы инструментов непосредственно из кода, как это можно сделать с помощью Sphinx.
Джон
«Вы должны иметь возможность динамически редактировать текст справки из отдельного скрипта». -> Это было бы очень желательно .. кто-нибудь разработал инструмент для этого?
Ратнанил
13

Вы можете определить сообщения для каждого параметра, выполнив следующие действия:

  1. Откройте ArcCatalog и выделите скрипт в дереве каталога.
  2. Выберите вкладку Описание
  3. Нажмите кнопку Изменить
  4. Нажмите стрелку вниз рядом с каждым параметром и введите сообщение
  5. Наконец, сохраните изменения, нажав кнопку Сохранить

Когда пользователи щелкают внутри параметра скрипта, они увидят ваше сообщение.

artwork21
источник
4
Спасибо. Вы знаете, где эта информация в конечном итоге сохраняется? Записывается ли это в xml-файлы, которые, кажется, созданы в папке, куда я помещаю .pyt-файл?
Джон
11

Если я правильно понимаю, вы хотите добавить справочные тексты в свои функции. Это можно сделать, щелкнув правой кнопкой мыши по вашему инструменту в окне панели инструментов и выбрав « Описание элемента», а затем « Изменить» вверху. Это позволит вам добавить описание для каждого параметра, которое будет отображаться в разделе справки при нажатии на параметр.

Если вы находитесь в Arcmap 10.0 (по крайней мере, в более ранних версиях SP), вам нужно сделать это из окна ArcCatalog (перейдите к панели инструментов) в Arcmap, чтобы оно работало.

Мартин
источник
Спасибо, это полезно, и, похоже, это действительно решение. Фактически, это открывает для меня совершенно новую серию вопросов! Я не осознавал всех этих полей 'Item Description', так как я работал только с наборами инструментов через файлы Python Toolboxs (.pyt) в 10.1. К сожалению, это не совсем то, что я хотел, хотя ... поэтому я собираюсь редактировать свой вопрос сейчас.
Джон
2

Вам нужно всего лишь нажать на метаданные редактирования инструмента, и вы увидите, что для каждого параметра вы можете легко редактировать отображаемые сообщения.

введите описание изображения здесь

Начо Морено
источник