Saat menggunakan kotak alat python (.pyt) di ArcMap, saya biasanya akan mengikuti pola di mana file .pyt itu sendiri hanyalah pembungkus untuk mengumpulkan argumen input dan mendefinisikan alat itu sendiri. Kode pendukung disimpan dalam modul unit-testable yang terpisah.
Contoh:
import supporting_module
class MyTool(object):
...
def execute(self, parameters, messages):
"""The source code of the tool."""
some_input = parameters[0].valueAsText
some_output = parameters[1].valueAsText
supporting_module.do_something(some_input, some_output)
arcpy.SetParameter(2, some_output)
Ini bekerja dengan sangat baik tetapi saya telah mengalami satu masalah yang membuat frustrasi selama pengembangan. Klik kanan -> Refresh pada .pyt di ArcMap hanya menyegarkan kode file .pyt. Itu tidak menyegarkan modul yang diimpor, jadi saya harus menutup dan membuka kembali ArcMap setiap kali saya mengubah sesuatu di sana. Untungnya, karena saya sedang menguji kodenya secara independen, saya tidak perlu melakukan ini banyak, tetapi masih merupakan masalah besar. Apakah ada cara untuk mengatasi ini? Agak terkait - apakah ada cara untuk me-refresh sepenuhnya konsol Python (saya punya paket-situs kustom yang saya juga harus menutup / membuka kembali ArcMap untuk menarik perubahan juga)?
Saya menggunakan ArcMap 10.2.1.