2013-01-19 16 views
10

Używam Sphinxdoc do generowania dokumentacji API i napotkałem problem z konformacją pep8 podczas pisania docstringu.Jak przełamać link w pierwszym docstringu, aby zaspokoić pep8?

Jak widać poniżej, link do OWASP miejscu kończy się w kolumnie 105, dalekiej przeszłości co pep8 dyktuje maximum-line-length

def handle_csrf(...): 
    """The general recommendation by people in the know [OWASP]_, is 
     'to implement the Synchronizer Token Pattern (STP_)'. 

     .. [OWASP] The Open Web Application Security Project 
      (https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)_Prevention_Cheat_Sheet) 
     .. _STP: http://www.corej2eepatterns.com/Design/PresoDesign.htm 

    """ 

Czy istnieje sposób, aby owinąć url zachowując mu URL w wygenerowane dokumenty?

Wstawianie ukośnika odwrotnego nie działa.

+2

możliwy duplikat [Jak sformatować długi URL w komentarzu Pythona i nadal być zgodny z PEP8] (http://stackoverflow.com/questions/10739843/how-should-i-format-a-long-url -w-pytonie-komentarz-i-wciąż-być-pep8-zgodny). Ale nie chodzi o Sfinksa. –

+1

Miałem nadzieję, że shpinx/first ma jakiś sposób na dzielenie linii przy zachowaniu wcięcia, zwłaszcza, że ​​wcięcie na linii kontynuacji jest ogólnie znaczące. – thebjorn

+1

To bardzo głupia sugestia, ale co powiesz na tinyurl.com lub bit.ly –

Odpowiedz

6

Ukośnik odwrotny \ wykonuje zadanie, ale przechodzi do ładnego wcięcia.

def handle_csrf(): 
    """The general recommendation by people in the know [OWASP]_, is 
     'to implement the Synchronizer Token Pattern (STP_)'. 

     .. [OWASP] The Open Web Application Security Project 
      (https://www.owasp.org/index.php/Cross-\ 
Site_Request_Forgery_(CSRF)_Prevention_Cheat_Sheet) 
     .. _STP: http://www.corej2eepatterns.com/Design/PresoDesign.htm 

    """ 

Wynik (to samo jest na długim wierszu):

>>> print handle_csrf.__doc__ 
The general recommendation by people in the know [OWASP]_, is 
     'to implement the Synchronizer Token Pattern (STP_)'. 

     .. [OWASP] The Open Web Application Security Project 
      (https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)_Prevention_Cheat_Sheet) 
     .. _STP: http://www.corej2eepatterns.com/Design/PresoDesign.htm 

Również PEP8 jest przewodnikiem, a nie prawo - to wydaje się (rzadko) przypadek, w którym to OK, aby go zignorować .

5

Patrząc na a problem, wymyśliłem (n elegancki?) Sposób rozwiązania problemu.

pierwsze, tutaj jest mój docstring:

def ook(): 
"""The sound a monkey makes... 
    ⚠ `SQLAlchemy`_ used here. 
""" 
... 

Po drugie, w pliku rst, mam to określono:

.. autofunction:: ook 
.. _SQLAlchemy: http://www.sqlalchemy.org 

więc kiedy ook jest udokumentowane, tym SQLAlchemy _ prace linku.

Powiązane problemy