2016-10-16 49 views
5

Sphinx (HTML yap) kullanarak, kendi işlevlerinin reStructuredText belgelerinden otomatik olarak bir Python 3 modülünün HTML belgelerini oluşturuyorum. Oluşturulan HTML belgeleri şu ana kadar iyi görünüyor, ancak kaynak kodunda PEP484 type hints olarak verilen işlev imzalarının parametre türleri doğru şekilde gösterilmiyor.Python 3: Sphinx, doğru şekilde ipuçları göstermiyor

E.g.

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 

Bu ben gibi görünmek için ne beklenir: Bu benim işlevlerinden birinin Sfenks oluşturulan HTML doc alınan bazı örnek çıkışı

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 

Bu nasıl Python kodu aslında

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 [] 

nasıl Sfenks yapabilirsiniz Python 3 türü doğru ipuçlarını gösterir: benziyor?

+1

Tipleri docstring'e koymak bir seçenek değil mi? ': param str dosya adı: ...' ve ': rtype: liste 'dönüş tipi için ... – Bakuriu

+0

Bu gereksiz yapar ve projemizde insanlar iki kez türleri değiştirmeyi düşünmez. Ayrıca, Sphinx'in PEP484 tipi ipuçlarını desteklediğine benziyor: https://github.com/sphinx-doc/sphinx/issues/1968 –

cevap

5

sphinx-autodoc-typehints extension'u kullanarak kendi başıma hallettim.

+0

Bu uzantının şu anda '__init __() 'olmayan sınıflar için çalışmadığına dikkat edin. Python 3.6'da - [biletim] bölümüne bakın (https://github.com/agronholm/sphinx-autodoc-typehints/issues/12). –