Pracuję nad dokumentacją dla mojego modułu Pythona (używając Sphinx i reST), i znajduję to, gdy porównując inne obiekty Pythona (moduły, klasy, funkcje, itp.), Cały obiekt nazwa kończy się niesamowicie długa. Często jest to więcej niż 80 znaków, których chciałbym uniknąć za wszelką cenę.Python Sphinx z długimi nazwami
Oto przykład:
def exampleFunction():
'''Here is an example docstring referencing another
:class:`module1.module2.module3.module4.module5.ReallyLongExampleClassName`
'''
Kwestia jest taka, że przy tworzeniu dokumentacji dla ReallyLongExampleClassName klasy I generowane go do pełna nazwa ścieżki module1.module2.module3.module4.module5.ReallyLongExampleClassaName .
Zastanawiam się, czy jest jakiś sposób, aby rozwiązać ten problem? Próbowałem następujących metod, bez powodzenia:
1) Dodawanie podział na linii w środku nazwy modułu. Przykład:
:class:`module1.module2.module3.module4.
module5.ReallyLongExampleClassName`
2) Odniesienie do nazwy klasy w inny (ale wciąż możliwy do importowania w Pythonie sposób). Przykład:
:class:`module1.module2.ReallyLongClassName`
wierzę, że skoro dokumentacja ReallyLongClassName jest przywiązany do pełnych nazw ścieżek że Sfinks nie można skorelować skróconej wersji z wersją całkowicie nazwie.
Każda pomoc zostanie bardzo doceniona.
Edit 04/05/2012:
Jak na odpowiedź/sugestię j13r (patrz niżej) Próbowałem następujące:
:class:`module1.module2.module3.module4.module5\
ReallyLongExampleClassName`
I to działało poprawnie. Jedynym zastrzeżeniem, aby to zadziałało, jest to, że druga linia nie może zawierać spacji (co jest dość frustrujące, gdy używa się tego w docstringu). Tak więc, aby mój oryginalny przykład zadziałał, wyglądałby tak:
def exampleFunction():
'''Here is an example docstring referencing another
:class:`module1.module2.module3.module4.module5.\
ReallyLongExampleClassName`
'''
Ładnie i brzydko. Jeśli wstawisz spacje przed "ReallyLongExampleClassName" w celu wcięcia go na ten sam poziom, co linia powyżej, wynik będzie zawierać spacje, a zatem Sphinx spróbuje odwołać się do czegoś takiego jak "module1.module2.module3.module4.module5. ReallyLongExampleClassName. "
Należy również pamiętać, że próbowałem dwie inne odmiany tego, co nie działa:
# Note: Trying to put a space before the '\'
:class:`module1.module2.module3.module4.module5. \
ReallyLongExampleClassName`
# Note: Trying to leave out the '\'
:class:`module1.module2.module3.module4.module5.
ReallyLongExampleClassName`
szukałem rozwiązania, które nie wiążą się niszcząc formatowanie docstring, ale przypuszczam, to zrobi ... Myślę, że tak naprawdę wolę linię, która ma ponad 80 znaków.
Dzięki j13r za odpowiedź!
Dokładnie to, czego szukałem. Dzięki! – furtypajohn