web-dev-qa-db-ja.com

pythonのプラグマ

Bottle.pyのソースコードを読んでいます。それは3000行以上のpythonコードを含むWebフレームワークです。とてもクールです。

私はこのようなコードを見つけました:

class ServerAdapter(object):
    quiet = False
    def __init__(self, Host='127.0.0.1', port=8080, **config):
        self.options = config
        self.Host = Host
        self.port = int(port)

    def run(self, handler): # pragma: no cover
        pass
    ... 

# pragma: no coverはどういう意味ですか? pythonのドキュメントにpragma構文の紹介がありません。

44
hhbcarl

coverage.py に関連しているようです:

Coverage.pyは、Pythonプログラムのコードカバレッジを測定するためのツールです。プログラムを監視し、コードのどの部分が実行されたかを記録し、ソースを分析して実行された可能性のあるコードを特定しますしかし、そうではありませんでした。

まさに# pragma: no coverは、ツールによってコードの一部を無視する必要があるというヒントです- カバレッジからのコードの除外 を参照してください。

74
pepr

Pythonの場合、これは単なるコメントです。これは、Pythonコード、たとえばdoctestの#doctest: +EllipsisアノテーションやPyLintの# pylint: disable=W0613スタイルアノテーションと同様のコードを読み取り、分析する外部ツールを対象としたアノテーションである可能性があります。

12
Dirk