Menentukan deskripsi parameter untuk bantuan Python Toolbox?

14

Saya mencoba membuat beberapa Kotak Alat Python untuk aplikasi ArcMap kami (mis. MyTool.pyt)

Saya dapat melihat bahwa teks bantuan didefinisikan dengan atribut class self.description.

Namun, begitu saya menjalankan program, dan mengklik ke salah satu bidang parameter, teks bantuan / deskripsi menjadi kosong. Saya ingin dapat memberikan bidang deskripsi untuk setiap parameter. Bagaimana ini dicapai?

Setelah beberapa tanggapan, saya melihat bahwa melalui menu konteks klik kanan 'Deskripsi Item' ada banyak bidang yang dapat diisi. Apakah ada cara 'pythonic' untuk melakukan ini? Yaitu, hanya dengan menyematkan beberapa atribut dalam kelas file .pyt?

Misalnya, dalam definisi .pyt toolbox Anda memiliki kelas 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....

Dari string self.description, jendela bantuan dialog Alat akan menampilkan teks ini. Namun, apa yang ingin saya lakukan adalah memiliki 'deskripsi' yang tertanam dalam kode saya untuk setiap parameter juga, sehingga ketika alat diluncurkan, dan pengguna mengklik ke dalam bidang parameter, deskripsi parameter ditampilkan. Jika saya melakukan ini menggunakan metode 'Deskripsi Item' yang direferensikan di balasan di bawah, saya akan mengedit bidang Penjelasan Dialog di bawah bagian Sintaks untuk setiap parameter ... Saya kira.

John
sumber

Jawaban:

16

Saya dapat melihat bahwa teks bantuan didefinisikan dengan atribut class self.description.

Di sinilah Anda salah. Di halaman bantuan Mendokumentasikan alat dalam kotak alat Python dikatakan:

Untuk kotak alat Python, dokumentasi untuk kotak alat dan alat disimpan dalam file .xml yang terkait dengan kotak alat dan alat menurut nama. Bantuan untuk setiap alat akan disimpan dalam file .xml terpisah.

Ini berarti bahwa Anda tidak dapat mengatur teks bantuan dari dalam file .pyt itu sendiri. Ini masuk akal ketika Anda mempertimbangkan bahwa teks bantuan bukan ASCII polos tetapi teks kaya yang dapat menyertakan pemformatan, peluru, dan gambar.

Untungnya, Python mendukung untuk membaca dan menulis XML , jadi Anda harus dapat secara dinamis mengedit teks bantuan dari skrip terpisah.

dmahr
sumber
2
Terima kasih atas tautan ke halaman bantuan 'Dokumentasi' .. Saya mencari, tetapi untuk beberapa alasan tidak masuk ke halaman itu. Alangkah baiknya jika ESRI mendukung teks yang direstrukturisasi. Kemudian kita bisa mendokumentasikan kotak alat dari kode secara langsung karena kita dapat menggunakan Sphinx.
Yohanes
"Anda harus dapat mengedit teks bantuan secara dinamis dari skrip terpisah." -> Itu akan sangat diinginkan .. adakah yang mengembangkan alat untuk ini?
Ratnanil
13

Anda dapat menentukan pesan untuk setiap parameter dengan mengikuti langkah-langkah ini:

  1. Buka ArcCatalog dan sorot Script di pohon katalog
  2. Pilih tab Keterangan
  3. Klik tombol Edit
  4. Klik panah bawah di sebelah setiap parameter dan ketik pesan
  5. Terakhir, simpan suntingan dengan mengklik tombol Simpan

Ketika seorang pengguna mengklik dalam parameter skrip sekarang mereka akan melihat pesan Anda.

artwork21
sumber
4
Terima kasih .. apakah Anda tahu di mana informasi ini akhirnya disimpan? Apakah itu bisa ditulis ke file xml yang tampaknya dibuat di folder tempat saya meletakkan file .pyt?
John
11

Jika saya mengerti dengan benar, Anda ingin menambahkan teks Bantuan ke fungsi Anda. Itu bisa dilakukan dengan mengklik kanan alat Anda dari jendela kotak alat dan klik Deskripsi item lalu Edit di bagian atas. Ini akan memungkinkan Anda untuk menambahkan deskripsi untuk setiap parameter, yang akan muncul di bagian bantuan ketika mengklik parameter.

Jika Anda berada di Arcmap 10.0 (setidaknya SP sebelumnya), Anda perlu melakukan ini dari jendela ArcCatalog (browse ke kotak peralatan Anda) di dalam Arcmap agar bisa berfungsi.

Martin
sumber
Terima kasih, ini membantu, dan tampaknya memang menjadi solusi. Bahkan, itu membuka serangkaian pertanyaan baru bagi saya! Saya tidak menyadari tentang semua bidang 'Deskripsi Item' ini, karena saya hanya bekerja dengan kotak alat melalui file Python Toolbox (.pyt) di 10.1. Sayangnya, itu tidak seperti yang saya kejar, jadi ... jadi saya akan mengedit pertanyaan saya sekarang.
John
2

Anda hanya perlu mengklik pada metadata edit alat Anda akan melihat bahwa untuk setiap parameter Anda dapat dengan mudah mengedit pesan untuk ditampilkan.

masukkan deskripsi gambar di sini

Nacho Moreno
sumber