¿Definir descripciones de parámetros para la ayuda de Python Toolbox?


14

Estoy tratando de crear algunas cajas de herramientas de Python para nuestra aplicación ArcMap (por ejemplo, MyTool.pyt)

Puedo ver que el texto de ayuda se define con el atributo de clases self.description.

Sin embargo, una vez que ejecuto el programa y hago clic en cualquiera de los campos de parámetros, el texto de ayuda / descripción se vacía. Me gustaría poder proporcionar el campo de descripción para cada parámetro. ¿Cómo se logra esto?

Después de algunas respuestas, veo que a través del menú contextual del botón derecho 'Descripción del elemento' hay muchos campos que se pueden completar. ¿Hay una manera 'pitónica' de hacer esto? Es decir, ¿simplemente incrustando algunos atributos en las clases de archivo .pyt?

Por ejemplo, en la definición de .pyt toolbox tienes la clase 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....

Desde la cadena self.description, la ventana de ayuda del cuadro de diálogo Tool mostrará este texto. Sin embargo, lo que quiero hacer es tener una 'descripción' incrustada en mi código para cada parámetro también, de modo que cuando se inicie la herramienta y el usuario haga clic en un campo de parámetro, se muestre la descripción del parámetro. Si tuviera que hacer esto utilizando el método 'Descripción del elemento' al que se hace referencia en las respuestas a continuación, editaría los campos Explicación del cuadro de diálogo en la sección Sintaxis para cada parámetro ... supongo.

Respuestas:


16

Puedo ver que el texto de ayuda se define con el atributo de clases self.description.

Aquí es donde te estás equivocando. En la página de ayuda Documentar una herramienta en una caja de herramientas de Python dice:

Para las cajas de herramientas de Python, la documentación de la caja de herramientas y las herramientas se almacenan en archivos .xml que están asociados con la caja de herramientas y las herramientas por nombre. La ayuda para cada herramienta se almacenará en un archivo .xml separado.

Esto significa que no puede establecer el texto de ayuda desde el archivo .pyt. Esto tiene sentido cuando considera que el texto de ayuda no es ASCII simple sino texto enriquecido que puede incluir formato, viñetas e imágenes.

Afortunadamente, Python admite la lectura y escritura de XML , por lo que debería poder editar dinámicamente el texto de ayuda desde un script separado.


2
Gracias por el enlace a la página de ayuda "Documentación". Busqué, pero por alguna razón no llegué a esa página. Sería bueno si ESRI apoyara restructuredText. Entonces podríamos documentar las cajas de herramientas del código directamente como se puede usar Sphinx.
John

"Debería poder editar dinámicamente el texto de ayuda desde un script separado". -> Eso sería muy deseable ... ¿Alguien ha desarrollado una herramienta para esto?
Ratnanil

13

Puede definir mensajes para cada parámetro siguiendo estos pasos:

  1. Abra ArcCatalog y resalte el Script en el árbol de catálogo.
  2. Seleccione la pestaña Descripción
  3. Haga clic en el botón Editar
  4. Haga clic en la flecha hacia abajo junto a cada parámetro y escriba un mensaje
  5. Finalmente, guarde las ediciones haciendo clic en el botón Guardar

Cuando un usuario hace clic dentro de un parámetro de script ahora verá su mensaje.


44
Gracias ... ¿sabes dónde se guarda esta información? ¿Se escribe en los archivos xml que parecen haberse creado en la carpeta donde coloco el archivo .pyt?
John

11

Si entiendo correctamente, desea agregar textos de ayuda a sus funciones. Eso se puede hacer haciendo clic con el botón derecho en la herramienta desde la ventana de la caja de herramientas y haciendo clic en Descripción del elemento y luego en Editar en la parte superior. Le permitirá agregar una descripción para cada parámetro, que aparecerá en la sección de ayuda al hacer clic en el parámetro.

Si está en Arcmap 10.0 (al menos SP anteriores), debe hacerlo desde la ventana ArcCatalog (vaya a su caja de herramientas) dentro de Arcmap para que funcione.


Gracias, esto es útil, y parece ser una solución. De hecho, me abre una nueva serie de preguntas. No me di cuenta de todos estos campos de 'Descripción del elemento', ya que solo trabajé con las cajas de herramientas a través de los archivos Python Toolboxs (.pyt) en 10.1. Desafortunadamente, no es exactamente lo que buscaba ... así que voy a editar mi pregunta ahora.
John

2

Solo necesita hacer clic en los metadatos de edición de la herramienta, verá que para cada parámetro puede editar fácilmente los mensajes para mostrar.

ingrese la descripción de la imagen aquí

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.