Docstring Coverage-Pythonコードをドキュメントでカバー

手作業ですべてを閲覧するか、pydocでドキュメントを生成してソースと比較することを除いて、Python開発者(または自分)がコードを十分に文書化したことを確認するにはどうすればよいですか? そのため、フォークとそれに続く単純な改良を促した古いスクリプトに偶然出くわすまで、解決策を見つけることができませんでした。



結果として、プロジェクト全体のドキュメントを使用してコードのカバレッジ率を推定できるDocstringカバレッジツールを入手しました(少なくとも私にとっては:))。







次のように始まります:

docstring-coverage [] <    >
      
      







出力例:

 $ docstring-coverage docstring-coverage/ File docstring-coverage/setup.py - No module dostring! Needed: 1; Exist: 0; Missing: 1; Coverage: 0.0% File docstring-coverage/docstringcoverage/__init__.py - No module dostring! Needed: 1; Exist: 0; Missing: 1; Coverage: 0.0% File docstring-coverage/docstringcoverage/cover.py - No docstring for DocStringCoverageVisitor! - No docstring for DocStringCoverageVisitor.__init__! - No docstring for DocStringCoverageVisitor.visitModule! - No docstring for DocStringCoverageVisitor.visitClass! - No docstring for DocStringCoverageVisitor.visitFunction! - No docstring for DocStringCoverageVisitor.getResult! - No docstring for get_docstring_coverage.printDocstring! Needed: 11; Exist: 4; Missing: 7; Coverage: 36.4% Overall statistics for 3 files: Docstrings needed: 13; Docstrings exist: 4; Docstrings missing: 9 Total docstring coverage: 30.8%; Grade: not so good
      
      





オプションの中には-mがあり、ユーティリティが__magic__ pythonおよび-vメソッドを強制的にスキップします。これにより、出力の「おしゃべり」レベルを0から3に調整できます。



必要に応じて、カバレッジの統計を取得するために使用する作業ドラフトにインポートできます。



 import docstringcoverage cover_results = docstringcoverage.get_docstring_coverage(['somefolder/somefile.py'])
      
      







dict型の2つの要素を含むリストとして提案されます。

 [ {'< >': { 'missing': ["< ,   ","..."], 'module_doc': <True or False>, #     'missing_count': <missing_count>, #   'needed_count': <needed_docstrings_count>, #     'coverage': <percent_of_coverage>, #  'empty': <True or False> #True,    #( , ,   ) }, ... }, #   { 'missing_count': <total_missing_count>, 'needed_count': <total_needed_docstrings_count>, 'coverage': <total_percent_of_coverage>, }
      
      







例付きのドキュメントはすべてプロジェクトページにあります。



All Articles