Визначення описів параметрів для довідки Python Toolbox?


14

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

Я бачу, що довідковий текст визначається за допомогою атрибута self.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....

Із рядка самописування в діалоговому вікні інструмента відобразиться цей текст. Однак те, що я хочу зробити, - це "опис", вбудований у мій код для кожного параметра, так що коли запускається інструмент і користувач натискає на поле параметра, відображається опис параметра. Якби я це робив за допомогою методу "Опис предмета", на який йдеться у відповідях нижче, я б редагував поля Діалог Пояснення в розділі Синтаксис для кожного параметра ... Я думаю.

Відповіді:


16

Я бачу, що довідковий текст визначається за допомогою атрибута self.description класів.

Тут ви йдете не так. На сторінці довідки Документування інструменту в панелі інструментів Python написано:

Для панелей інструментів Python документація для інструментарію та інструментів зберігається у файлах .xml , які пов’язані з набором інструментів та інструментами за назвою. Довідка для кожного інструменту буде зберігатися в окремому файлі .xml.

Це означає, що ви не можете встановити довідковий текст із самого файлу .pyt. Це має сенс, якщо ви вважаєте, що довідковий текст - це не звичайний ASCII, а насичений текст, який може включати форматування, кулі та зображення.

На щастя, Python підтримує читання та запис XML , тому вам слід мати можливість динамічно редагувати довідковий текст із окремого сценарію.


2
Дякую за посилання на довідкову сторінку «Документування». Я шукав, але чомусь не зайшов на цю сторінку. Було б добре, якби ESRI підтримував restructuredText. Тоді ми могли б документувати коробки інструментів безпосередньо з коду, як можна, використовуючи Sphinx.
Іван

"ви повинні мати можливість динамічно редагувати довідковий текст із окремого сценарію." -> Це було б дуже бажано .. хтось розробив інструмент для цього?
Ратнаніл

13

Ви можете визначити повідомлення для кожного параметра, виконавши наступні кроки:

  1. Відкрийте ArcCatalog і виділіть сценарій у дереві каталогу
  2. Виберіть вкладку Опис
  3. Натисніть кнопку Редагувати
  4. Клацніть стрілку вниз поруч із кожним параметром та введіть повідомлення
  5. Нарешті, збережіть правки, натиснувши кнопку «Зберегти»

Коли користувач натисне параметр сценарію, тепер він побачить ваше повідомлення.


4
Дякую .. чи знаєте ви, де в кінцевому підсумку зберігається ця інформація? Чи записується це у файли xml, які здаються створеними у папці, де я розміщую файл .pyt?
Іван

11

Якщо я правильно розумію, ви хочете додати довідкові тексти у свої функції. Це можна зробити, клацнувши правою кнопкою миші інструмент у вікні панелі інструментів, натисніть Опис предмета, а потім вгорі Редагувати . Це дозволить вам додати опис кожного параметра, який відображатиметься у довідковому розділі при натисканні параметра.

Якщо ви перебуваєте в Arcmap 10.0 (принаймні, раніше SP), вам потрібно зробити це у вікні ArcCatalog (перегляньте до своєї панелі інструментів) в Arcmap, щоб воно працювало.


Дякую, це корисно, і, здається, це справді є рішенням. Насправді це відкриває для мене цілу нову серію питань! Я не розумів про всі ці поля "Опис предмета", тому що я працював лише з панелями інструментів через файли Python Toolboxs (.pyt) в 10.1. На жаль, це не зовсім те, що я був після, тому ... тому я зараз редагую своє запитання.
Іван

2

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

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.