Definiowanie opisów parametrów dla pomocy Python Toolbox?

14

Próbuję utworzyć niektóre Python Toolbox dla naszej aplikacji ArcMap (np. MyTool.pyt)

Widzę, że tekst pomocy jest zdefiniowany za pomocą atrybutu self.description klas.

Jednak po uruchomieniu programu i kliknięciu w dowolne pole parametru tekst pomocy / opisu staje się pusty. Chciałbym móc podać pole opisu dla każdego parametru. Jak to się osiąga?

Po niektórych odpowiedziach widzę, że za pomocą menu kontekstowego „Opis elementu” prawym przyciskiem myszy można wypełnić wiele pól. Czy jest na to „pythonowy” sposób? Czyli po prostu osadzając niektóre atrybuty w klasach plików .pyt?

Na przykład w definicji przybornika .pyt masz klasę 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....

Z ciągu self.description w oknie pomocy okna dialogowego Narzędzia wyświetli się ten tekst. Chciałbym jednak mieć w swoim kodzie „opis” osadzony również w każdym kodzie, aby po uruchomieniu narzędzia i kliknięciu w pole parametru wyświetlany był opis parametru. Gdybym miał to zrobić za pomocą metody „Opis elementu”, o której mowa w odpowiedziach poniżej, edytowałbym pola Objaśnienie okna dialogowego w sekcji Składnia dla każdego parametru ... tak sądzę.

Jan
źródło

Odpowiedzi:

16

Widzę, że tekst pomocy jest zdefiniowany za pomocą atrybutu self.description klas.

To jest błąd. Na stronie pomocy Dokumentowanie narzędzia w przyborniku Python napisano:

W przypadku przyborników Python dokumentacja przybornika i narzędzi jest przechowywana w plikach .xml powiązanych z przybornikiem i narzędziami według nazwy. Pomoc dla każdego narzędzia będzie przechowywana w osobnym pliku .xml.

Oznacza to, że nie można ustawić tekstu pomocy z poziomu samego pliku .pyt. Ma to sens, gdy weźmie się pod uwagę, że tekst pomocy nie jest zwykłym kodem ASCII, ale tekstem sformatowanym, który może obejmować formatowanie, wypunktowanie i obrazy.

Na szczęście Python obsługuje odczytywanie i zapisywanie XML , więc powinieneś być w stanie dynamicznie edytować tekst pomocy z oddzielnego skryptu.

dmahr
źródło
2
Dzięki za link do strony pomocy „Dokumentowanie”. Szukałem, ale z jakiegoś powodu nie trafiłem na tę stronę. Byłoby miło, gdyby ESRI obsługiwał tekst restrukturyzowany. Następnie moglibyśmy udokumentować skrzynki narzędziowe bezpośrednio z kodu, tak jak można to zrobić za pomocą Sphinx.
Jan
„powinieneś być w stanie dynamicznie edytować tekst pomocy z oddzielnego skryptu”. -> To byłoby bardzo pożądane .. czy ktoś opracował do tego narzędzie?
Ratnanil
13

Możesz zdefiniować komunikaty dla każdego parametru, wykonując następujące kroki:

  1. Otwórz ArcCatalog i zaznacz Skrypt w drzewie katalogu
  2. Wybierz kartę Opis
  3. Kliknij przycisk Edytuj
  4. Kliknij strzałkę w dół obok każdego parametru i wpisz komunikat
  5. Na koniec zapisz zmiany, klikając przycisk Zapisz

Gdy użytkownik kliknie teraz w parametrze skryptu, zobaczy Twoją wiadomość.

grafika 21
źródło
4
Dzięki .. czy wiesz, gdzie te informacje są ostatecznie zapisywane? Czy jest zapisywany w plikach XML, które wydają się być tworzone w folderze, w którym umieszczam plik .pyt?
Jan
11

Jeśli dobrze rozumiem, chcesz dodać teksty pomocy do swoich funkcji. Można to zrobić, klikając prawym przyciskiem myszy narzędzie w oknie przybornika i klikając Opis elementu, a następnie Edytuj u góry. Umożliwi to dodanie opisu każdego parametru, który pojawi się w sekcji pomocy po kliknięciu parametru.

Jeśli korzystasz z Arcmap 10.0 (przynajmniej wcześniejszych SP), musisz to zrobić w oknie ArcCatalog (przejdź do swojego zestawu narzędzi) w Arcmap, aby działało.

Jaskółka oknówka
źródło
Dzięki, to jest pomocne i wydaje się być rozwiązaniem. W rzeczywistości otwiera mi to zupełnie nową serię pytań! Nie zdawałem sobie sprawy z wszystkich tych pól „Opis przedmiotu”, ponieważ pracowałem z przybornikami tylko za pomocą plików Python Toolboxs (.pyt) w 10.1. Niestety, nie jest to dokładnie to, o co mi chodziło ... więc teraz zmienię moje pytanie.
Jan
2

Wystarczy kliknąć metadane edycji narzędzia, aby zobaczyć, że dla każdego parametru można łatwo edytować wyświetlane komunikaty.

wprowadź opis zdjęcia tutaj

Nacho Moreno
źródło