16 votos

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

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 self.description de las clases.

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 queda vacío. Me gustaría poder proporcionar el campo de descripción para cada parámetro. ¿Cómo se consigue esto?

Después de algunas respuestas, veo que a través del menú contextual "Descripción del artículo" del botón derecho del ratón hay muchos campos que se pueden rellenar. ¿Existe una forma "pitónica" de hacer esto? Es decir, ¿simplemente incrustando algunos atributos en las clases del archivo .pyt?

Por ejemplo, en la definición de la caja de herramientas .pyt 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 diálogo de la herramienta 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 la herramienta se lanza, y el usuario hace clic en un campo de parámetro, la descripción del parámetro se muestra. Si tuviera que hacer esto usando el método 'Descripción de elementos' al que se hace referencia en las respuestas de abajo, editaría los campos Explicación del diálogo en la sección Sintaxis para cada parámetro... supongo.

19voto

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

Aquí es donde te equivocas. En la página de ayuda Documentación de 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 son almacenados en archivos .xml que se asocian a la caja de herramientas y a las herramientas por su nombre. La ayuda para cada herramienta se almacenará en un archivo .xml separado.

Esto significa que no se puede establecer el texto de ayuda desde el propio archivo .pyt. Esto tiene sentido si se tiene en cuenta que el texto de ayuda no es ASCII plano sino texto enriquecido que puede incluir formato, viñetas e imágenes.

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

2 votos

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

0 votos

"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?

14voto

Hameno Puntos 129

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

  1. Abra ArcCatalog y resalte el script en el árbol del 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. Por último, guarde las modificaciones haciendo clic en el botón Guardar

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

4 votos

Gracias ¿sabes dónde se guarda esta información en última instancia? ¿Se escribe en los archivos xml que parecen crearse en la carpeta donde coloco el archivo .pyt?

12voto

Martin Puntos 2872

Si he entendido bien, quieres añadir textos de ayuda a tus funciones. Eso se puede hacer haciendo clic con el botón derecho del ratón en su herramienta desde la ventana de la caja de herramientas y haciendo clic en Descripción del artículo y luego Editar en la parte superior. Te permitirá añadir una descripción para cada parámetro, que aparecerá en la sección de ayuda al hacer clic en el parámetro.

Si usted está en Arcmap 10.0 (por lo menos los anteriores SP) tiene que hacer esto desde la ventana de ArcCatalog (navegar a su caja de herramientas) dentro de Arcmap para que funcione.

0 votos

Gracias, esto es útil, y parece que efectivamente es una solución. De hecho, ¡me abre toda una serie de preguntas nuevas! No me había dado cuenta de todos estos campos de "Descripción de elementos", ya que sólo he trabajado con las cajas de herramientas a través de los archivos Python Toolboxs (.pyt) en 10.1. Desafortunadamente, no es exactamente lo que buscaba, sin embargo... así que voy a editar mi pregunta ahora.

3voto

jkelley Puntos 841

Sólo tienes que hacer clic en la edición de metadatos de la herramienta verás que para cada parámetro puedes editar fácilmente los mensajes a mostrar.

enter image description here

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X