पायथन टूलबॉक्स मदद के लिए पैरामीटर विवरण को परिभाषित करना?


14

मैं हमारे आर्केप एप्लिकेशन (जैसे MyTool.pyt) के लिए कुछ पायथन टूलबॉक्स बनाने की कोशिश कर रहा हूं

मैं देख सकता हूं कि सहायता पाठ को स्व.डिस्क्रिप्शन विशेषता के साथ परिभाषित किया गया है।

हालाँकि, एक बार जब मैं प्रोग्राम चलाता हूं, और किसी भी पैरामीटर फ़ील्ड में क्लिक करता हूं, तो मदद / विवरण पाठ खाली हो जाता है। मैं प्रत्येक पैरामीटर के लिए विवरण क्षेत्र प्रदान करने में सक्षम होना चाहता हूं। यह कैसे पूरा किया जाता है?

कुछ प्रतिक्रियाओं के बाद, मैं देखता हूं कि 'आइटम विवरण' के माध्यम से राइट-क्लिक करें संदर्भ मेनू में कई फ़ील्ड हैं जो आबादी वाले हो सकते हैं। क्या ऐसा करने का कोई 'पाइथोनिक' तरीका है? अर्थात, .pyt फ़ाइल कक्षाओं में कुछ विशेषताओं को एम्बेड करके?

उदाहरण के लिए, .pyt टूलबॉक्स परिभाषा में आपके पास टूलबॉक्स क्लास है:

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

Self.description स्ट्रिंग से टूल डायलॉग सहायता विंडो इस पाठ को प्रदर्शित करेगी। हालाँकि, मैं जो करना चाहता हूँ, उसमें प्रत्येक पैरामीटर के लिए भी मेरे कोड में एक 'विवरण' सन्निहित है, ताकि जब उपकरण लॉन्च किया जाए, और उपयोगकर्ता एक पैरामीटर फ़ील्ड में क्लिक करे, तो पैरामीटर विवरण दिखाया जाता है। यदि मैं नीचे दिए गए उत्तरों में संदर्भित 'आइटम विवरण' विधि का उपयोग कर रहा था, तो मैं प्रत्येक पैरामीटर के लिए सिंटैक्स अनुभाग के अंतर्गत डायलॉग स्पष्टीकरण फ़ील्ड संपादित करूँगा ... मुझे लगता है।

जवाबों:


16

मैं देख सकता हूं कि सहायता पाठ को स्व.डिस्क्रिप्शन विशेषता के साथ परिभाषित किया गया है।

यह वह जगह है जहाँ आप गलत हो रहे हैं। हेल्प पेज में पायथन टूलबॉक्स में एक टूल का दस्तावेजीकरण होता है, जो कहता है:

पायथन टूलबॉक्स के लिए, टूलबॉक्स और टूल के लिए प्रलेखन .xml फ़ाइलों में संग्रहीत होते हैं जो टूलबॉक्स और टूल नाम से जुड़े होते हैं। प्रत्येक उपकरण के लिए सहायता एक अलग .xml फ़ाइल में संग्रहीत की जाएगी।

इसका मतलब है कि आप .pyt फ़ाइल में से पाठ की मदद नहीं कर सकते। यह तब समझ में आता है जब आप समझते हैं कि मदद पाठ सादा ASCII नहीं है बल्कि समृद्ध पाठ है जिसमें प्रारूपण, बुलेट और चित्र शामिल हो सकते हैं।

सौभाग्य से, पायथन XML को पढ़ने और लिखने के लिए समर्थन करता है , इसलिए आपको एक अलग स्क्रिप्ट से सहायता पाठ को गतिशील रूप से संपादित करने में सक्षम होना चाहिए।


2
'डॉक्यूमेंटिंग' हेल्प पेज के लिंक के लिए धन्यवाद .. मैंने खोजा, लेकिन किसी कारणवश उस पेज पर नहीं आया। यह अच्छा होगा यदि ESRI पुनर्गठन का समर्थन करता है। तब हम कोड से टूलबॉक्स को सीधे दस्तावेज़ में दर्ज कर सकते हैं क्योंकि Sphinx का उपयोग कर सकते हैं।
जॉन

"आपको एक अलग स्क्रिप्ट से सहायता पाठ को गतिशील रूप से संपादित करने में सक्षम होना चाहिए।" -> यह बहुत ही वांछनीय होगा .. क्या किसी ने इसके लिए एक उपकरण विकसित किया है?
रतननील

13

आप इन चरणों का पालन करके प्रत्येक पैरामीटर के लिए संदेशों को परिभाषित कर सकते हैं:

  1. ArcCatalog खोलें और कैटलॉग ट्री में स्क्रिप्ट को हाइलाइट करें
  2. विवरण टैब का चयन करें
  3. एडिट बटन पर क्लिक करें
  4. प्रत्येक पैरामीटर के बगल में नीचे तीर पर क्लिक करें और संदेश में टाइप करें
  5. अंत में, सहेजें बटन पर क्लिक करके संपादन सहेजें

जब उपयोगकर्ता किसी स्क्रिप्ट पैरामीटर पर क्लिक करते हैं तो वे आपके संदेश को देखेंगे।


4
धन्यवाद .. क्या आप जानते हैं कि यह जानकारी आखिर बचती कहां है? क्या यह उस xml फ़ाइलों को लिखा जाता है जो फ़ोल्डर में बनाई गई प्रतीत होती है जहाँ मैं .pyt फ़ाइल रखता हूँ?
जॉन

11

अगर मैं सही तरीके से समझूं, तो आप अपने कार्यों में मदद ग्रंथ जोड़ना चाहते हैं। यह टूलबॉक्स विंडो से अपने टूल को राइट-क्लिक करके किया जा सकता है और आइटम विवरण पर क्लिक करें और फिर शीर्ष पर संपादित करें । यह आपको प्रत्येक पैरामीटर के लिए एक विवरण जोड़ने की अनुमति देगा, जो पैरामीटर को क्लिक करने पर सहायता अनुभाग में दिखाई देगा।

यदि आप आर्कमैप 10.0 (कम से कम पहले के एसपी) में हैं तो आपको आर्कमैप्स विंडो (आर्क टूल) में अपने काम करने के लिए इसे (टूलबॉक्स में ब्राउज़ करें) से करना होगा।


धन्यवाद, यह मददगार है, और यह वास्तव में एक समाधान है। वास्तव में, यह मेरे लिए सवालों की एक पूरी नई श्रृंखला खोलता है! मुझे इन सभी के बारे में पता नहीं चला 'आइटम विवरण' फ़ील्ड, जैसा कि मैंने केवल 10.1 में पायथन बॉक्सबॉक्स (.pyt) फ़ाइलों के माध्यम से टूलबॉक्स के साथ काम किया है। दुर्भाग्य से, यह काफी नहीं है कि मैं क्या था, हालांकि ... इसलिए मैं अब अपने प्रश्न को संपादित करने जा रहा हूं।
जॉन

2

आपको केवल उस टूल के एडिट मेटाडेटा पर क्लिक करना होगा जिसे आप देखेंगे कि प्रत्येक पैरामीटर के लिए आप आसानी से प्रदर्शित करने के लिए संदेशों को संपादित कर सकते हैं।

यहाँ छवि विवरण दर्ज करें

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.