рдпрд╣ рдХреИрд╕реЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЕрдЬрдЧрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ (рдпрд╛ рд╕реНрд╡рдпрдВ) рдиреЗ рдХреЛрдб рдХреЛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкреНрд░рд▓реЗрдЦрд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рд╕рд┐рд╡рд╛рдп рд╣рд╛рде рд╕реЗ рд╕рдм рдХреБрдЫ рдмреНрд░рд╛рдЙрдЬрд╝ рдХрд░рдиреЗ рдпрд╛ pydoc рдореЗрдВ рдкреНрд░рд▓реЗрдЦрди рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдФрд░ рд╕реНрд░реЛрдд рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛? рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рддрдм рддрдХ рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдорд┐рд▓рд╛ рдЬрдм рддрдХ рдХрд┐ рдореИрдВ рдЧрд▓рддреА рд╕реЗ рдПрдХ рдкреБрд░рд╛рдиреА-рдкреБрд░рд╛рдиреА рд▓рд┐рдкрд┐ рдореЗрдВ рдирд╣реАрдВ рдЖ рдЧрдпрд╛ рдЬрд┐рд╕рдиреЗ рдореБрдЭреЗ рдХрд╛рдВрдЯрд╛ рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рдХреЗ рд╕рд░рд▓ рд╢реЛрдзрди рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛ред
рдирддреАрдЬрддрди, рдореБрдЭреЗ рдПрдХ рд╕рд░рд▓ рдФрд░ рдЙрдкрдпреЛрдЧреА (рдХрдо рд╕реЗ рдХрдо рдореЗрд░реЗ рд▓рд┐рдП :)) рдбреЙрдХрд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╡рд░реЗрдЬ рдЯреВрд▓ рдорд┐рд▓рд╛ рдЬреЛ рдЖрдкрдХреЛ рдкреВрд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рд╕рд╛рде рдХреЛрдб рдХреЗ рдкреНрд░рддрд┐рд╢рдд рдХрд╡рд░реЗрдЬ рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдпрд╣ рдЗрд╕ рддрд░рд╣ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ:
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__ рдкрд╛рдпрдерди рдФрд░ -v рддрд░реАрдХреЛрдВ рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдЖрдкрдХреЛ 0 рд╕реЗ 3 рддрдХ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ "рдмрд╛рддреВрдиреАрдкрди" рдХреЗ рд╕реНрддрд░ рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдпрджрд┐ рдЖрдк рдЪрд╛рд╣реЗрдВ, рддреЛ рдЖрдк рдХрд╡рд░реЗрдЬ рдкрд░ рдЖрдВрдХрдбрд╝реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рд░реНрдп рдорд╕реМрджреЗ рдореЗрдВ рдЖрдпрд╛рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
import docstringcoverage cover_results = docstringcoverage.get_docstring_coverage(['somefolder/somefile.py'])
рд╕реВрдЪреА рдХреЗ рджреЛ рддрддреНрд╡реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕реВрдЪреА рдХреЗ рд░реВрдк рдореЗрдВ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рдЧрдпрд╛:
[ {'< >': { 'missing': ["< , ","..."], 'module_doc': <True or False>,
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рд╕рднреА рдкреНрд░рд▓реЗрдЦрди
рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкреГрд╖реНрда рдкрд░ рд╣реИред