Définir des descriptions de paramètres pour l'aide de Python Toolbox?

14

J'essaie de créer des boîtes à outils Python pour notre application ArcMap (par exemple MyTool.pyt)

Je peux voir que le texte d'aide est défini avec l'attribut classes self.description.

Cependant, une fois que j'ai exécuté le programme et cliqué dans l'un des champs de paramètres, le texte d'aide / description devient vide. Je voudrais pouvoir fournir le champ de description de chaque paramètre. Comment est-ce accompli?

Après quelques réponses, je constate que via le menu contextuel du clic droit «Description de l'article», de nombreux champs peuvent être remplis. Existe-t-il une manière «pythonique» de procéder? Autrement dit, simplement en incorporant certains attributs dans les classes de fichiers .pyt?

Par exemple, dans la définition de boîte à outils .pyt, vous avez la classe Boîte à outils:

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....

À partir de la chaîne self.description, la fenêtre d'aide de la boîte de dialogue Outil affichera ce texte. Cependant, ce que je veux faire, c'est avoir une `` description '' intégrée dans mon code pour chaque paramètre également, de sorte que lorsque l'outil est lancé et que l'utilisateur clique dans un champ de paramètre, la description du paramètre soit affichée. Si je devais le faire en utilisant la méthode 'Item Description' référencée dans les réponses ci-dessous, je modifierais les champs Explication de la boîte de dialogue sous la section Syntaxe pour chaque paramètre ... Je suppose.

John
la source

Réponses:

16

Je peux voir que le texte d'aide est défini avec l'attribut classes self.description.

C'est là que vous vous trompez. Dans la page d'aide Documentation d'un outil dans une boîte à outils Python, il est dit:

Pour les boîtes à outils Python, la documentation de la boîte à outils et des outils est stockée dans des fichiers .xml associés à la boîte à outils et aux outils par leur nom. L'aide de chaque outil sera stockée dans un fichier .xml distinct.

Cela signifie que vous ne pouvez pas définir de texte d'aide à partir du fichier .pyt lui-même. Cela est logique lorsque vous considérez que le texte d'aide n'est pas du texte ASCII ordinaire mais du texte riche qui peut inclure la mise en forme, les puces et les images.

Heureusement, Python prend en charge la lecture et l'écriture de XML , vous devriez donc être en mesure de modifier dynamiquement le texte d'aide à partir d'un script distinct.

dmahr
la source
2
Merci pour le lien vers la page d'aide «Documentation». J'ai cherché, mais pour une raison quelconque, je ne suis pas venu sur cette page. Ce serait bien si ESRI soutenait restructuredText. Ensuite, nous pourrions documenter les boîtes à outils à partir du code directement comme on peut utiliser Sphinx.
John
"vous devriez pouvoir éditer dynamiquement le texte d'aide à partir d'un script séparé." -> Ce serait très souhaitable. Quelqu'un a-t-il développé un outil pour cela?
Ratnanil
13

Vous pouvez définir des messages pour chaque paramètre en suivant ces étapes:

  1. Ouvrez ArcCatalog et mettez en surbrillance le script dans l'arborescence du catalogue
  2. Sélectionnez l'onglet Description
  3. Cliquez sur le bouton Modifier
  4. Cliquez sur la flèche vers le bas à côté de chaque paramètre et saisissez un message
  5. Enfin, enregistrez les modifications en cliquant sur le bouton Enregistrer

Lorsqu'un utilisateur clique dans un paramètre de script, il verra maintenant votre message.

oeuvre21
la source
4
Merci .. savez-vous où ces informations sont finalement enregistrées? Est-il écrit dans les fichiers xml qui semblent avoir été créés dans le dossier où je place le fichier .pyt?
John
11

Si je comprends bien, vous souhaitez ajouter des textes d'aide à vos fonctions. Cela peut être fait en cliquant avec le bouton droit sur votre outil dans la fenêtre de la boîte à outils et en cliquant sur Description de l'élément , puis sur Modifier en haut. Cela vous permettra d'ajouter une description pour chaque paramètre, qui apparaîtra dans la section d'aide lorsque vous cliquez sur le paramètre.

Si vous êtes dans Arcmap 10.0 (au moins les SP antérieurs), vous devez le faire à partir de la fenêtre ArcCatalog (accédez à votre boîte à outils) dans Arcmap pour que cela fonctionne.

Martin
la source
Merci, c'est utile et cela semble être une solution. En fait, cela m'ouvre une toute nouvelle série de questions! Je ne m'étais pas rendu compte de tous ces champs 'Description de l'article', car je n'ai travaillé qu'avec les boîtes à outils via les fichiers Python Toolboxs (.pyt) dans 10.1. Malheureusement, ce n'est pas tout à fait ce que je recherchais, alors ... je vais donc modifier ma question maintenant.
John
2

Il vous suffit de cliquer sur les métadonnées d'édition de l'outil, vous verrez que pour chaque paramètre, vous pouvez facilement modifier les messages à afficher.

entrez la description de l'image ici

Nacho Moreno
la source