2016-10-16 11 views
5

मैं स्फिंक्स (एचटीएमएल बनाने) का उपयोग कर अपने कार्यों के अपने पुनर्गठित पाठ डॉकस्ट्रिंग से स्वचालित रूप से एक पायथन 3 मॉड्यूल का एक HTML दस्तावेज़ उत्पन्न कर रहा हूं। उत्पन्न HTML दस्तावेज़ अब तक ठीक दिखता है, लेकिन फ़ंक्शन हस्ताक्षर के पैरामीटर प्रकार, जो स्रोत कोड में PEP484 type hints के रूप में दिए गए हैं, सही ढंग से नहीं दिखाए जाते हैं।पायथन 3: स्फिंक्स टाइप संकेतों को सही ढंग से नहीं दिखाता

उदा। यह मेरा कार्यों में से एक के स्फिंक्स जेनरेट किया गया HTML दस्तावेज़ से कुछ उदाहरण उत्पादन होता है:

static parse_from_file(filename: str) → list 
    Parses stuff from a text file. 

    Parameters: filename – the filepath of a textfile to be parsed 
    Returns:  list of parsed elements 

यह मैं इसे तरह देखने के लिए उम्मीद करेंगे क्या है:

static parse_from_file(filename) 
    Parses stuff from a text file. 

    Parameters: filename (str) – the filepath of a textfile to be parsed 
    Returns:  list of parsed elements 
    Return type: list 

इस तरह अजगर कोड वास्तव में ऐसा लगता है:

def parse_from_file(filename: str) -> list: 
    """Parses stuff from a text file. 

    :param filename: the filepath of a textfile to be parsed 
    :returns: list of parsed elements 
    """ 
    return [] 

मैं स्फिंक्स को पाइथन 3 प्रकार संकेतों को सही तरीके से कैसे दिखा सकता हूं?

+1

डॉकस्ट्रिंग में प्रकार डालने का विकल्प नहीं है? ': param str फ़ाइल नाम: ...' और ': rtype: सूची' वापसी प्रकार के लिए ... – Bakuriu

+0

इससे यह अनावश्यक हो जाएगा और हमारी परियोजना में लोग दो बार प्रकार बदलने के बारे में नहीं सोचेंगे। इसके अलावा, ऐसा लगता है कि स्फिंक्स पीईपी 484 प्रकार संकेतों का समर्थन करता है: https://github.com/sphinx-doc/sphinx/issues/1968 –

उत्तर

5

मैंने sphinx-autodoc-typehints extension का उपयोग करके इसे स्वयं से निपटाया।

+0

यह ध्यान देने योग्य हो सकता है कि यह एक्सटेंशन वर्तमान में '__init __()' के बिना कक्षाओं के लिए काम नहीं करता है। पायथन 3.6 में - देखें [मेरा टिकट] (https://github.com/agronholm/sphinx-autodoc-typehints/issues/12)। –

संबंधित मुद्दे