ブロックコメントで、80文字を超えるURLを参照したいと思います。
このURLを表示するための推奨される規則は何ですか?
bit.lyがオプションであることは知っていますが、URL自体は説明的です。それを短縮してから、短縮されたURLを説明するネストされたコメントを付けることは、くだらない解決策のように思えます。
URLを壊さないでください:
# A Foolish Consistency is the Hobgoblin of Little Minds [1]
# [1]: http://www.python.org/dev/peps/pep-0008/#a-foolish-consistency-is-the-hobgoblin-of-little-minds
PEP8から
しかし、最も重要なことは、いつ矛盾するかを知ることです。スタイルガイドが適用されない場合があります。疑わしい場合は、最善の判断を下してください。他の例を見て、何が最もよく見えるかを決定します。そして、遠慮なく質問してください!
特定のルールを破る2つの理由:
- ルールを適用すると、ルールに従ったコードを読むことに慣れている人でも、コードが読みにくくなります。
個人的には、私はそのアドバイスを使用し、むしろ人々のためにあなたのコメントに完全な説明的なURLを残します。
行の最後にあるを使用して# noqa
、PEP8/Flake8がそのチェックを実行しないようにすることができます。これは、PEP8によって次の方法で許可されます。
特別な場合は、規則を破るほど特別なものではありません。
私はそれを残すと言うでしょう...
特別な場合は、規則を破るほど特別なものではありません。
実用性は純粋さを打ち負かしますが。
URLをすばやくコピーして貼り付けてから、ブラウザに貼り付けるときに改行を削除できる方が実用的です。
flake8を使用している場合:
"""
long-url: http://stackoverflow.com/questions/10739843/how-should-i-format-a-long-url-in-a-python-comment-and-still-be-pep8-compliant
""" # noqa
'#noqa'の追加は機能しますが、それがdocstringにある場合、spinxでビルドすると'#noqa'がドキュメントに表示されます。その場合、カスタムautodocプロセスメソッドを作成できます。この回答を参照してください。
これが私の適応バージョンです、
from sphinx.application import Sphinx
import re
def setup(app):
noqa_regex = re.compile('^(.*)\s\s#\snoqa.*$')
def trim_noqa(app, what_, name, obj, options):
for i, line in enumerate(lines):
if noqa_regex.match(line):
new_line = noqa_regex.sub(r'\1', line)
lines[i] = new_line
app.connect('autodoc-process-docstring', trim_noqa)
return app
あなたはグーグルのようなURL短縮サービスを使用しているので、これから:
http://www.python.org/dev/peps/pep-0008/#a-foolish-consistency-is-the-hobgoblin-of-little-minds
あなたが得る:
私のオプションは次のとおりです。
URL = ('http://stackoverflow.com/questions/10739843/'
'how-should-i-format-a-long-url-in-a-python-'
'comment-and-still-be-pep8-compliant')