2012-06-04 7 views
22

मैं एक पायथन पैकेज बना रहा हूं, और दस्तावेज़ बनाने के लिए स्फिंक्स का उपयोग कर रहा हूं। मेरे पैकेज कोड के अलावा, मैं बहुत कमांड लाइन पायथन स्क्रिप्ट्स भी शामिल करता हूं, जो argparse का उपयोग करते हैं। मैं सोच रहा था कि क्या स्प्रिंक्स को इन स्क्रिप्ट्स को स्वत: दस्तावेज करने का कोई तरीका है? अंतिम लक्ष्य संबंधित सहायता प्रिंट, तर्क और विकल्पों के साथ स्क्रिप्ट की एक सुंदर मुद्रित सूची होगी। और स्पष्ट होने के लिए, मैं इसे करने के लिए एक पूर्व-मौजूदा तरीका ढूंढ रहा हूं, इसे स्वयं लागू करने का कोई तरीका नहीं।स्फिंक्स और Argparse - autodocumenting कमांड लाइन स्क्रिप्ट?

यह एक प्रश्न के विशिष्ट नहीं है जैसा कि मैं आमतौर पर एसओ पर पूछता हूं, यदि कोई और उचित एसई है। इस सवाल को पोस्ट करने के लिए साइट, कृपया मुझे बताएं। धन्यवाद।

+0

असंबंधित, लेकिन उपयोगी हो सकता है। पीईपीआई पर पीएलएसी पैकेज की जांच करें। –

+0

ऐसा नहीं लगता कि यह मुझे इस के साथ मदद करता है, लेकिन दिलचस्प है, हेड-अप के लिए धन्यवाद। – jeremiahbuddha

उत्तर

16

आप अपने दस्तावेज़ में कमांड लाइन से मदद संदेश शामिल करने के लिए sphinxcontrib.programoutput का उपयोग कर सकते हैं।

यह argparse के लिए विशिष्ट नहीं है लेकिन कमांड लाइन पर किसी स्क्रिप्ट प्रिंटिंग सहायता संदेशों को दस्तावेज़ित करने के लिए उपयोग किया जा सकता है। स्फिंक्स-argparse विस्तार

16
+1

उत्कृष्ट। क्या "उपयोग" ब्लॉक अलग तरीके से इलाज करने का कोई तरीका है? मेरे लिए, इसे एक शाब्दिक ब्लॉक के रूप में रखना बिल्कुल सही नहीं है। – orome

+1

और जब मैं इसमें हूं, तो विकल्पों के आउटपुट के लिए यह अच्छा होगा कि '.. विकल्प ::' उत्पादन करता है: केवल झंडे (कोई डिफ़ॉल्ट संकेत नहीं दिया गया है), वर्णन के लिए कम इंडेंटेशन के साथ बाईं ओर सभी तरह से गठबंधन किया गया है , और कैप्स को पहला अक्षर बदलना और अंत में एक अवधि जोड़ना यदि कोई पहले से नहीं है (क्योंकि '--help' के लिए मुहावरे इन्हें छोड़ना और सभी लोअरकेस का उपयोग करना है)। इसके अलावा शायद मदद से मेल खाने वाली फ्लैग प्रविष्टियां अधिक निकटता से मदद करती हैं (उदा। '-कोल्स [COL [COL ...]]' केवल 'cols' के बजाय), क्योंकि सभी पाठ उस संदर्भ में लिखे गए हैं। – orome

+0

एक त्रुटि होने लगता है: http://pastebin.com/jXAz1qHw –

2

आप sphinxcontrib.autoprogram उपयोग कर सकते हैं। pip install sphinxcontrib-autoprogram, तो अपने conf.py में

extensions += ['sphinxcontrib.autoprogram'] 

डाल दिया। argparse parser वस्तु parser (जो एक अजगर अभिव्यक्ति हो सकती है, एक समारोह get_parser() की तरह) के साथ cli आयात द्वारा आदेश cli.py दस्तावेज़ करने के लिए, का उपयोग

.. autoprogram:: cli:parser 
    :prog: cli.py