Push whipper v0.6.0 release
This commit is contained in:
61
CHANGELOG.md
61
CHANGELOG.md
@@ -2,7 +2,65 @@
|
||||
|
||||
## [Unreleased](https://github.com/JoeLametta/whipper/tree/HEAD)
|
||||
|
||||
[Full Changelog](https://github.com/JoeLametta/whipper/compare/v0.5.1...HEAD)
|
||||
[Full Changelog](https://github.com/JoeLametta/whipper/compare/v0.6.0...HEAD)
|
||||
|
||||
## [v0.6.0](https://github.com/JoeLametta/whipper/tree/v0.6.0) (2018-02-02)
|
||||
|
||||
**Implemented enhancements:**
|
||||
|
||||
- Error: NotFoundException message displayed while ripping an unknown disc [\#198](https://github.com/JoeLametta/whipper/issues/198)
|
||||
- rename milestone 101010 to backlog [\#190](https://github.com/JoeLametta/whipper/issues/190)
|
||||
- Use 'Artist as credited' in filename instead of 'Artist in MusicBrainz' \(e.g. to solve \[unknown\]\) [\#155](https://github.com/JoeLametta/whipper/issues/155)
|
||||
- Declare supported Python version [\#152](https://github.com/JoeLametta/whipper/issues/152)
|
||||
- Update doc/release or remove it [\#149](https://github.com/JoeLametta/whipper/issues/149)
|
||||
- Test HTOA peak value against 0 \(integer equality\) [\#143](https://github.com/JoeLametta/whipper/issues/143)
|
||||
- Identify media type in log file \(ie CD vs CD-R\) [\#137](https://github.com/JoeLametta/whipper/issues/137)
|
||||
- Rename the Python module [\#100](https://github.com/JoeLametta/whipper/issues/100)
|
||||
- libcdio-paranoia instead of cdparanoia [\#87](https://github.com/JoeLametta/whipper/issues/87)
|
||||
- Support both AccurateRip V1 and AccurateRip V2 at the same time [\#18](https://github.com/JoeLametta/whipper/issues/18)
|
||||
- Test HTOA peak value against 0 \(integer comparison\) [\#224](https://github.com/JoeLametta/whipper/pull/224) ([JoeLametta](https://github.com/JoeLametta))
|
||||
|
||||
**Fixed bugs:**
|
||||
|
||||
- Catch DNS error [\#206](https://github.com/JoeLametta/whipper/issues/206)
|
||||
- whipper doesn't name files .flac, which leads to it not being able to find ripped files [\#194](https://github.com/JoeLametta/whipper/issues/194)
|
||||
- Issues with finding offset [\#182](https://github.com/JoeLametta/whipper/issues/182)
|
||||
- failing unittests in systemd-nspawn container [\#157](https://github.com/JoeLametta/whipper/issues/157)
|
||||
- Regression: Unable to resume a failed rip [\#136](https://github.com/JoeLametta/whipper/issues/136)
|
||||
- "Catalog Number" incorrectly appended to "artist" instead of the Album name. [\#127](https://github.com/JoeLametta/whipper/issues/127)
|
||||
- Track "can't be ripped" but EAC can :\) [\#116](https://github.com/JoeLametta/whipper/issues/116)
|
||||
- ERROR: stopping task which is already stopped [\#59](https://github.com/JoeLametta/whipper/issues/59)
|
||||
- can't find accuraterip-checksum binary in morituri-uninstalled mode [\#47](https://github.com/JoeLametta/whipper/issues/47)
|
||||
|
||||
**Closed issues:**
|
||||
|
||||
- using your own MusicBrainz server [\#172](https://github.com/JoeLametta/whipper/issues/172)
|
||||
- cdda2wav from cdrtools instead of cdparanoia [\#38](https://github.com/JoeLametta/whipper/issues/38)
|
||||
|
||||
**Merged pull requests:**
|
||||
|
||||
- Fix appearance of template description text. [\#223](https://github.com/JoeLametta/whipper/pull/223) ([calumchisholm](https://github.com/calumchisholm))
|
||||
- Run whipper without installation [\#222](https://github.com/JoeLametta/whipper/pull/222) ([vmx](https://github.com/vmx))
|
||||
- Remove doc/release [\#218](https://github.com/JoeLametta/whipper/pull/218) ([MerlijnWajer](https://github.com/MerlijnWajer))
|
||||
- Fix resuming previous rips [\#217](https://github.com/JoeLametta/whipper/pull/217) ([MerlijnWajer](https://github.com/MerlijnWajer))
|
||||
- Switch to libcdio-cdparanoia \(from cdparanoia\) [\#213](https://github.com/JoeLametta/whipper/pull/213) ([MerlijnWajer](https://github.com/MerlijnWajer))
|
||||
- Convert docstrings to reStructuredText [\#211](https://github.com/JoeLametta/whipper/pull/211) ([JoeLametta](https://github.com/JoeLametta))
|
||||
- Enable connecting to a custom MusicBrainz server [\#210](https://github.com/JoeLametta/whipper/pull/210) ([naiveaiguy](https://github.com/naiveaiguy))
|
||||
- Fix recently introduced Python 3 incompatibility [\#199](https://github.com/JoeLametta/whipper/pull/199) ([LingMan](https://github.com/LingMan))
|
||||
- restore .flac extension [\#195](https://github.com/JoeLametta/whipper/pull/195) ([RecursiveForest](https://github.com/RecursiveForest))
|
||||
- Misc fixes [\#188](https://github.com/JoeLametta/whipper/pull/188) ([ubitux](https://github.com/ubitux))
|
||||
- AccurateRip V2 support [\#187](https://github.com/JoeLametta/whipper/pull/187) ([RecursiveForest](https://github.com/RecursiveForest))
|
||||
- Solve all flake8 warnings [\#163](https://github.com/JoeLametta/whipper/pull/163) ([JoeLametta](https://github.com/JoeLametta))
|
||||
- Minor touchups [\#161](https://github.com/JoeLametta/whipper/pull/161) ([Freso](https://github.com/Freso))
|
||||
- Stop allowing flake8 to fail in Travis CI [\#160](https://github.com/JoeLametta/whipper/pull/160) ([Freso](https://github.com/Freso))
|
||||
- Fix division by zero [\#159](https://github.com/JoeLametta/whipper/pull/159) ([sqozz](https://github.com/sqozz))
|
||||
- Fix artist name [\#156](https://github.com/JoeLametta/whipper/pull/156) ([gorgobacka](https://github.com/gorgobacka))
|
||||
- Detect and handle CD-R discs [\#154](https://github.com/JoeLametta/whipper/pull/154) ([gorgobacka](https://github.com/gorgobacka))
|
||||
- Disambiguate on release [\#153](https://github.com/JoeLametta/whipper/pull/153) ([Freso](https://github.com/Freso))
|
||||
- Add flake8 testing to CI [\#151](https://github.com/JoeLametta/whipper/pull/151) ([Freso](https://github.com/Freso))
|
||||
- Clean up files in misc/ [\#150](https://github.com/JoeLametta/whipper/pull/150) ([Freso](https://github.com/Freso))
|
||||
- Update .gitignore [\#148](https://github.com/JoeLametta/whipper/pull/148) ([Freso](https://github.com/Freso))
|
||||
- Fix references to morituri. [\#109](https://github.com/JoeLametta/whipper/pull/109) ([Freso](https://github.com/Freso))
|
||||
|
||||
## [v0.5.1](https://github.com/JoeLametta/whipper/tree/v0.5.1) (2017-04-24)
|
||||
|
||||
@@ -168,3 +226,4 @@
|
||||
|
||||
|
||||
\* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)* and hand edited by [JoeLametta](https://github.com/JoeLametta).
|
||||
|
||||
|
||||
101
COVERAGE
101
COVERAGE
@@ -1,53 +1,54 @@
|
||||
Coverage.py 4.3.4 text report against whipper v0.5.1
|
||||
Coverage.py 4.4.2 text report against whipper v0.6.0
|
||||
|
||||
$ coverage run --source=morituri --omit='morituri/test/*' -m unittest discover
|
||||
$ coverage run --branch --omit='whipper/test/*' --source=whipper -m unittest discover
|
||||
$ coverage report -m
|
||||
|
||||
Name Stmts Miss Cover Missing
|
||||
----------------------------------------------------------------
|
||||
morituri/__init__.py 10 2 80% 9, 11
|
||||
morituri/command/__init__.py 0 0 100%
|
||||
morituri/command/accurip.py 46 46 0% 23-100
|
||||
morituri/command/basecommand.py 58 42 28% 53-98, 105-114, 117, 120, 123, 126-129
|
||||
morituri/command/cd.py 273 232 15% 85-94, 100-209, 212, 224, 246-287, 293-316, 320-578
|
||||
morituri/command/debug.py 168 168 0% 23-297
|
||||
morituri/command/drive.py 62 62 0% 23-121
|
||||
morituri/command/image.py 74 74 0% 23-152
|
||||
morituri/command/main.py 55 55 0% 4-96
|
||||
morituri/command/offset.py 121 121 0% 23-241
|
||||
morituri/common/__init__.py 0 0 100%
|
||||
morituri/common/accurip.py 88 43 51% 40-42, 46, 49-65, 69-80, 83-94, 97-102
|
||||
morituri/common/cache.py 104 49 53% 67-91, 97, 100, 108-111, 114-115, 131, 143-148, 171-178, 202-207, 212-229
|
||||
morituri/common/checksum.py 33 18 45% 42, 45-46, 49-53, 60-65, 68-69, 72-76
|
||||
morituri/common/common.py 134 15 89% 51-52, 119-120, 142-143, 165, 259-265, 301-305
|
||||
morituri/common/config.py 85 9 89% 72, 97-98, 117-118, 124, 135, 137, 139
|
||||
morituri/common/directory.py 21 8 62% 30, 39, 43-50
|
||||
morituri/common/drive.py 31 20 35% 36-41, 45-51, 55-61, 65-73
|
||||
morituri/common/encode.py 44 23 48% 38-39, 42-43, 46-47, 53-56, 59-60, 63-64, 74-75, 78-79, 82-89
|
||||
morituri/common/mbngs.py 157 52 67% 39-40, 46, 91-97, 159-160, 165-166, 211, 214, 217, 238-240, 249, 269-321
|
||||
morituri/common/path.py 24 0 100%
|
||||
morituri/common/program.py 391 262 33% 90-92, 101-117, 125-157, 166-171, 174, 218, 230-231, 233-240, 247-253, 271-285, 292-415, 426-476, 484-492, 496-510, 521-560, 563-565, 575-584, 594-595, 664, 682-692, 695-703
|
||||
morituri/common/renamer.py 102 2 98% 138, 161
|
||||
morituri/common/task.py 77 19 75% 45-50, 85-86, 89-92, 100, 114-115, 122, 128, 134, 140, 147
|
||||
morituri/extern/__init__.py 0 0 100%
|
||||
morituri/extern/asyncsub.py 130 71 45% 15-17, 32, 37-38, 47-84, 89-102, 115, 122, 133, 144, 150, 155-159, 162-174
|
||||
morituri/extern/task/__init__.py 0 0 100%
|
||||
morituri/extern/task/task.py 272 114 58% 49, 53, 80, 83, 86, 153-154, 171-173, 181-197, 215-217, 238-239, 279-280, 283-289, 303-304, 312-314, 323-330, 336-352, 356, 359, 366-383, 394-395, 398-401, 405, 408, 422, 425-427, 442, 454, 498-503, 513-518, 529-537, 540-549, 552-553, 561, 565-567
|
||||
morituri/image/__init__.py 0 0 100%
|
||||
morituri/image/cue.py 91 9 90% 101, 118-119, 135-137, 161, 189, 207
|
||||
morituri/image/image.py 138 110 20% 52-60, 68-70, 77-110, 122-145, 148-149, 163-195, 198-214, 225-255
|
||||
morituri/image/table.py 403 22 95% 240, 355-356, 555, 635, 718-719, 740-741, 749-752, 756-757, 802, 848-849, 851-852, 861-862, 867-869
|
||||
morituri/image/toc.py 204 15 93% 136, 263-264, 280-283, 345-347, 369-371, 391, 415
|
||||
morituri/program/__init__.py 0 0 100%
|
||||
morituri/program/arc.py 35 28 20% 11-52
|
||||
morituri/program/cdparanoia.py 312 183 41% 50-52, 61-62, 126-128, 167-170, 243-257, 260-310, 313-351, 354-358, 361-395, 450-501, 506-552, 584-587, 590, 597, 603, 608-613
|
||||
morituri/program/cdrdao.py 44 23 48% 24-46, 55-57, 61-63, 70, 76
|
||||
morituri/program/flac.py 9 5 44% 11-18
|
||||
morituri/program/sox.py 15 4 73% 17-18, 22-23
|
||||
morituri/program/soxi.py 28 2 93% 35, 48
|
||||
morituri/program/utils.py 16 10 38% 11-12, 19-20, 30-35
|
||||
morituri/result/__init__.py 0 0 100%
|
||||
morituri/result/logger.py 137 137 0% 1-224
|
||||
morituri/result/result.py 57 10 82% 127, 145, 155-156, 165-172
|
||||
----------------------------------------------------------------
|
||||
TOTAL 4049 2065 49%
|
||||
Name Stmts Miss Branch BrPart Cover Missing
|
||||
-----------------------------------------------------------------------------
|
||||
whipper/__init__.py 10 2 4 2 71% 9, 11, 8->9, 10->11
|
||||
whipper/__main__.py 7 7 2 0 0% 4-14
|
||||
whipper/command/__init__.py 0 0 0 0 100%
|
||||
whipper/command/accurip.py 44 44 18 0 0% 21-96
|
||||
whipper/command/basecommand.py 58 42 22 0 20% 54-99, 106-115, 118, 121, 124, 127-130
|
||||
whipper/command/cd.py 221 181 56 0 14% 75-87, 92-193, 196, 208, 231-285, 292-317, 320-497
|
||||
whipper/command/debug.py 167 167 24 0 0% 21-293
|
||||
whipper/command/drive.py 62 62 12 0 0% 21-122
|
||||
whipper/command/image.py 77 77 14 0 0% 21-151
|
||||
whipper/command/main.py 66 66 20 0 0% 4-113
|
||||
whipper/command/offset.py 113 113 32 0 0% 21-229
|
||||
whipper/common/__init__.py 0 0 0 0 100%
|
||||
whipper/common/accurip.py 133 5 56 5 95% 128, 139, 148-150, 121->128, 132->139, 165->168, 276->282, 285->291
|
||||
whipper/common/cache.py 105 50 34 6 44% 70-94, 100, 103, 111-116, 119-120, 134, 148-153, 181-188, 210-215, 220-237, 99->100, 102->103, 133->134, 146->157, 147->148, 180->181
|
||||
whipper/common/checksum.py 26 14 2 0 43% 41-42, 45-46, 49-64
|
||||
whipper/common/common.py 133 15 32 6 86% 49-50, 112-113, 136-137, 162, 259-265, 302-306, 111->112, 124->127, 161->162, 171->178, 255->259, 300->308
|
||||
whipper/common/config.py 92 8 18 4 89% 114-115, 138-139, 145, 156, 158, 160, 144->145, 155->156, 157->158, 159->160
|
||||
whipper/common/directory.py 21 8 10 2 55% 29, 39, 44-51, 28->29, 38->39
|
||||
whipper/common/drive.py 31 20 6 0 35% 35-40, 44-50, 54-60, 64-71
|
||||
whipper/common/encode.py 44 23 2 0 46% 37-38, 41-42, 45-46, 53-56, 59-60, 63-64, 76-77, 80-81, 84-91
|
||||
whipper/common/mbngs.py 157 52 58 7 66% 35-36, 42, 110-116, 182-183, 188-189, 233, 236, 239, 262-265, 274, 297-349, 181->182, 187->188, 232->233, 235->236, 238->239, 261->262, 271->274
|
||||
whipper/common/path.py 24 0 8 3 91% 44->47, 54->59, 64->69
|
||||
whipper/common/program.py 353 272 112 5 20% 94-96, 112-127, 145-177, 190-195, 198, 202-206, 262, 273-274, 276-280, 298-312, 330-456, 466-516, 523-531, 534-550, 574-614, 617-619, 636-653, 656-674, 677-687, 690-698, 86->89, 259->262, 272->273, 275->276, 282->286
|
||||
whipper/common/renamer.py 102 2 16 1 97% 128, 152, 60->68
|
||||
whipper/common/task.py 77 19 14 2 75% 45-50, 85-86, 89-92, 100, 114-115, 124, 132, 136, 140, 144, 83->85, 97->100
|
||||
whipper/extern/__init__.py 0 0 0 0 100%
|
||||
whipper/extern/asyncsub.py 130 71 66 12 40% 15-17, 32, 37-38, 47-84, 89-102, 115, 122, 134, 145, 151, 156-160, 164-176, 14->15, 35->37, 45->47, 110->113, 114->115, 121->122, 133->134, 139->141, 141->152, 144->145, 148->151, 163->164
|
||||
whipper/extern/task/__init__.py 0 0 0 0 100%
|
||||
whipper/extern/task/task.py 279 120 54 11 53% 55, 59, 84, 87, 90, 161-163, 184-186, 197-213, 233-236, 258-259, 276, 286, 304, 310-311, 314-320, 334-335, 343-345, 356-363, 367-383, 387, 390, 400-417, 429-430, 433-436, 440, 443, 458, 461-463, 480, 497, 540-545, 554-559, 570-578, 581-589, 592-593, 601, 606-608, 54->55, 58->59, 67->69, 160->161, 177->exit, 232->233, 248->250, 253->exit, 530->532, 567->570, 605->606
|
||||
whipper/image/__init__.py 0 0 0 0 100%
|
||||
whipper/image/cue.py 91 9 20 3 89% 105, 122-123, 138-140, 167, 195, 214, 104->105, 121->122, 137->138
|
||||
whipper/image/image.py 116 94 18 0 16% 51-59, 67-69, 79-112, 136-168, 171-187, 204-235
|
||||
whipper/image/table.py 399 22 114 16 93% 258, 371-372, 527, 606, 700-701, 721-722, 731-734, 738-739, 788, 835-836, 838-839, 882-883, 888-890, 201->204, 526->527, 560->564, 583->586, 605->606, 613->620, 720->721, 729->735, 730->731, 761->766, 766->760, 787->788, 834->835, 837->838, 881->882, 887->888
|
||||
whipper/image/toc.py 203 15 60 10 90% 146, 284-285, 301-304, 362-364, 386-388, 410, 437, 142->146, 235->243, 283->284, 300->301, 310->315, 346->353, 361->362, 385->386, 395->399, 432->437
|
||||
whipper/program/__init__.py 0 0 0 0 100%
|
||||
whipper/program/arc.py 38 15 12 4 58% 26-28, 32, 37-43, 52-58, 22->26, 31->32, 36->37, 45->52
|
||||
whipper/program/cdparanoia.py 315 185 86 3 39% 45-47, 54-55, 131-133, 170-173, 209-210, 256-270, 273-325, 328-366, 369-373, 376-412, 472-524, 529-574, 607-610, 613, 620, 626, 631-636, 130->131, 619->620, 623->626
|
||||
whipper/program/cdrdao.py 51 29 10 2 39% 31-53, 64-70, 82-84, 88-90, 102, 113, 81->82, 87->88
|
||||
whipper/program/flac.py 9 5 0 0 44% 18-25
|
||||
whipper/program/sox.py 17 4 4 2 71% 19-20, 24-25, 18->19, 23->24
|
||||
whipper/program/soxi.py 28 2 2 1 90% 46, 59, 58->59
|
||||
whipper/program/utils.py 16 10 2 0 33% 13-14, 23-24, 37-42
|
||||
whipper/result/__init__.py 0 0 0 0 100%
|
||||
whipper/result/logger.py 142 142 48 0 0% 1-256
|
||||
whipper/result/result.py 56 13 6 0 69% 116-120, 135, 145-146, 151-158
|
||||
-----------------------------------------------------------------------------
|
||||
TOTAL 4013 1985 1074 107 48%
|
||||
|
||||
20
README.md
20
README.md
@@ -2,7 +2,7 @@
|
||||
|
||||
[](https://github.com/JoeLametta/whipper/blob/master/LICENSE) [](https://travis-ci.org/JoeLametta/whipper) [](https://github.com/JoeLametta/whipper/releases/latest) [](https://webchat.freenode.net/?channels=%23whipper) [](https://github.com/JoeLametta/whipper/stargazers) [](https://github.com/JoeLametta/whipper/issues) [](https://github.com/JoeLametta/whipper/graphs/contributors)
|
||||
|
||||
Whipper is a Python 2.7 CD-DA ripper, fork of the morituri project (_CDDA ripper for *nix systems aiming for accuracy over speed_). It improves morituri which development seems to have halted merging old ignored pull requests, improving it with bugfixes and new features.
|
||||
Whipper is a Python 2.7 CD-DA ripper, fork of the morituri project (_CDDA ripper for *nix systems aiming for accuracy over speed_). It improves [morituri](https://github.com/thomasvs/morituri) which development seems to have halted merging old ignored pull requests, improving it with bugfixes and new features.
|
||||
|
||||
Whipper is developed and tested _only_ on Linux distributions but _may_ work fine on other *nix OSes too.
|
||||
|
||||
@@ -39,6 +39,7 @@ https://web.archive.org/web/20160528213242/https://thomas.apestaart.org/thomas/t
|
||||
## Features
|
||||
|
||||
- Detects correct read offset (in samples)
|
||||
- Detects whether ripped media is a CD-R
|
||||
- Has ability to defeat cache of drives
|
||||
- Performs Test & Copy rips
|
||||
- Verifies rip accuracy using the [AccurateRip database](http://www.accuraterip.com/)
|
||||
@@ -73,9 +74,8 @@ Whipper relies on the following packages in order to run correctly and provide a
|
||||
- [python-mutagen](https://pypi.python.org/pypi/mutagen), for tagging support
|
||||
- [python-setuptools](https://pypi.python.org/pypi/setuptools), for installation, plugins support
|
||||
- [python-cddb](http://cddb-py.sourceforge.net/), for showing but not using metadata if disc not available in the MusicBrainz DB
|
||||
- [pycdio](https://pypi.python.org/pypi/pycdio/) (to avoid bugs please use `pycdio` **0.20** & `libcdio` >= **0.90** or, with previous `libcdio` versions, `pycdio` **0.17**), for drive identification
|
||||
- Required for drive offset and caching behavior to be stored in the configuration file
|
||||
- [requests](https://pypi.python.org/pypi/requests) for retrieving AccurateRip database entries
|
||||
- [python-requests](https://pypi.python.org/pypi/requests), for retrieving AccurateRip database entries
|
||||
- [pycdio](https://pypi.python.org/pypi/pycdio/) (to avoid bugs please use `pycdio` **0.20** & `libcdio` >= **0.90** or, with previous `libcdio` versions, `pycdio` **0.17**), for drive identification (required for drive offset and caching behavior to be stored in the configuration file)
|
||||
- [libsndfile](http://www.mega-nerd.com/libsndfile/), for reading wav files
|
||||
- [flac](https://xiph.org/flac/), for reading flac files
|
||||
- [sox](http://sox.sourceforge.net/), for track peak detection
|
||||
@@ -85,7 +85,7 @@ Whipper relies on the following packages in order to run correctly and provide a
|
||||
Change to a directory where you want to put whipper source code (for example, `$HOME/dev/ext` or `$HOME/prefix/src`)
|
||||
|
||||
```bash
|
||||
git clone -b master --single-branch https://github.com/JoeLametta/whipper.git
|
||||
git clone https://github.com/JoeLametta/whipper.git
|
||||
cd whipper
|
||||
```
|
||||
|
||||
@@ -175,7 +175,7 @@ The possible sections are:
|
||||
- `read_offset`: the read offset of the drive
|
||||
|
||||
- Rip command section: `[rip.COMMAND.SUBCOMMAND]`. Can be used to change the command options default values.
|
||||
**Please note that this feature is currently broken (being this way since [PR #122](https://github.com/JoeLametta/whipper/pull/92) / whipper v0.4.1).**
|
||||
**Please note that this feature is currently broken (being this way since [PR #122](https://github.com/JoeLametta/whipper/pull/92) / whipper [v0.4.1](https://github.com/JoeLametta/whipper/releases/tag/v0.4.1)).**
|
||||
|
||||
Example section to configure `whipper cd rip` defaults:
|
||||
|
||||
@@ -192,7 +192,11 @@ Note: to get a literal `%` character it must be doubled.
|
||||
|
||||
## Backward incompatible changes
|
||||
|
||||
- Profiles (for encoding) aren't supported anymore since ([PR #121](https://github.com/JoeLametta/whipper/pull/121) / whipper v0.5.0): now whipper encodes to FLAC
|
||||
- Rely on `cd-paranoia` (`libcdio-cdparanoia`) instead of `cdparanoia` (Xiph): changed dependency ([PR #213](https://github.com/JoeLametta/whipper/pull/213) / whipper [v0.6.0](https://github.com/JoeLametta/whipper/releases/tag/v0.6.0))
|
||||
- Introduced AccurateRip v2 support: added new `requests` python dependency ([PR #187](https://github.com/JoeLametta/whipper/pull/187) / whipper [v0.6.0](https://github.com/JoeLametta/whipper/releases/tag/v0.6.0))
|
||||
- Added CD-R media type disc detection: CD-R rips are now prevented by default ([PR #154](https://github.com/JoeLametta/whipper/pull/154) / whipper [v0.6.0](https://github.com/JoeLametta/whipper/releases/tag/v0.6.0))
|
||||
- Changed all `morituri` references to `whipper`: renamed python module and logger too ([PR #109](https://github.com/JoeLametta/whipper/pull/109) / whipper [v0.6.0](https://github.com/JoeLametta/whipper/releases/tag/v0.6.0))
|
||||
- Profiles (for encoding) aren't supported anymore since ([PR #121](https://github.com/JoeLametta/whipper/pull/121) / whipper [v0.5.0](https://github.com/JoeLametta/whipper/releases/tag/v0.5.0)): now whipper encodes to FLAC
|
||||
- The image retag feature has been knowingly broken since ([PR #130](https://github.com/JoeLametta/whipper/pull/130))
|
||||
- Structural changes broke compatibility with existing logger plugins ([PR #94](https://github.com/JoeLametta/whipper/pull/94))
|
||||
- Dropped external git submodules ([PR #31](https://github.com/JoeLametta/whipper/pull/31), [PR #92](https://github.com/JoeLametta/whipper/pull/92))
|
||||
@@ -257,7 +261,7 @@ Licensed under the [GNU GPLv3 license](http://www.gnu.org/licenses/gpl-3.0).
|
||||
|
||||
```Text
|
||||
Copyright (C) 2009 Thomas Vander Stichele
|
||||
Copyright (C) 2016, 2017 JoeLametta
|
||||
Copyright (C) 2016, 2017, 2018 JoeLametta
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
||||
4
doc/.gitignore
vendored
4
doc/.gitignore
vendored
@@ -1,4 +0,0 @@
|
||||
whipper.ics
|
||||
whipper.rss2
|
||||
reference
|
||||
rip.1
|
||||
@@ -1,30 +0,0 @@
|
||||
EXTRA_DIST = whipper.rss2 whipper.ics $(man_MANS)
|
||||
DISTCLEANFILES = $(man_MANS)
|
||||
|
||||
all-local: feeds reference
|
||||
|
||||
if HAVE_EPYDOC
|
||||
reference: $(top_srcdir)/whipper/*.py feeds
|
||||
epydoc -o reference $(top_srcdir)/whipper
|
||||
else
|
||||
reference:
|
||||
@true
|
||||
endif
|
||||
|
||||
# generate feeds
|
||||
feeds: whipper.rss2 whipper.ics
|
||||
|
||||
# don't fail fatally if user does not have RDF
|
||||
whipper.rss2: $(top_srcdir)/whipper.doap
|
||||
-moap doap -f $(top_srcdir)/whipper.doap rss > whipper.rss2
|
||||
|
||||
whipper.ics: $(top_srcdir)/whipper.doap
|
||||
-moap doap -f $(top_srcdir)/whipper.doap ical > whipper.ics
|
||||
|
||||
man_MANS = rip.1
|
||||
|
||||
rip.1: $(top_srcdir)/whipper/extern/python-command/scripts/help2man $(top_srcdir)/whipper
|
||||
PYTHONPATH=$(top_srcdir) $(PYTHON) $(top_srcdir)/whipper/extern/python-command/scripts/help2man whipper.rip.main.Rip rip > rip.1
|
||||
|
||||
clean-local:
|
||||
@rm -rf reference
|
||||
2
etc/bash_completion.d/.gitignore
vendored
2
etc/bash_completion.d/.gitignore
vendored
@@ -1,2 +0,0 @@
|
||||
rip
|
||||
bash-compgen
|
||||
1
misc/radon_reports/radon_cc.json
Normal file
1
misc/radon_reports/radon_cc.json
Normal file
File diff suppressed because one or more lines are too long
475
misc/radon_reports/radon_cc.txt
Normal file
475
misc/radon_reports/radon_cc.txt
Normal file
@@ -0,0 +1,475 @@
|
||||
$ radon cc -a -s -i test whipper/
|
||||
|
||||
whipper/result/result.py
|
||||
M 110:4 RipResult.getTrackResult - A (3)
|
||||
F 149:0 getLoggers - A (2)
|
||||
C 68:0 RipResult - A (2)
|
||||
C 25:0 TrackResult - A (1)
|
||||
M 51:4 TrackResult.__init__ - A (1)
|
||||
M 107:4 RipResult.__init__ - A (1)
|
||||
C 123:0 Logger - A (1)
|
||||
M 126:4 Logger.log - A (1)
|
||||
C 141:0 EntryPoint - A (1)
|
||||
M 144:4 EntryPoint.load - A (1)
|
||||
whipper/result/logger.py
|
||||
M 29:4 WhipperLogger.logRip - C (16)
|
||||
M 172:4 WhipperLogger.trackLog - C (13)
|
||||
C 10:0 WhipperLogger - B (10)
|
||||
M 16:4 WhipperLogger.log - A (1)
|
||||
whipper/program/utils.py
|
||||
F 27:0 unmount_device - A (2)
|
||||
F 7:0 eject_device - A (1)
|
||||
F 17:0 load_device - A (1)
|
||||
whipper/program/soxi.py
|
||||
M 35:4 AudioLengthTask.__init__ - A (2)
|
||||
M 57:4 AudioLengthTask.done - A (2)
|
||||
C 12:0 AudioLengthTask - A (1)
|
||||
M 45:4 AudioLengthTask.commandMissing - A (1)
|
||||
M 48:4 AudioLengthTask.readbytesout - A (1)
|
||||
M 51:4 AudioLengthTask.readbyteserr - A (1)
|
||||
M 54:4 AudioLengthTask.failed - A (1)
|
||||
whipper/program/sox.py
|
||||
F 10:0 peak_level - A (3)
|
||||
whipper/program/flac.py
|
||||
F 7:0 encode - A (2)
|
||||
whipper/program/cdrdao.py
|
||||
F 15:0 read_toc - A (4)
|
||||
F 73:0 version - A (3)
|
||||
F 56:0 DetectCdr - A (2)
|
||||
F 94:0 ReadTOCTask - A (1)
|
||||
F 105:0 ReadTableTask - A (1)
|
||||
F 116:0 getCDRDAOVersion - A (1)
|
||||
whipper/program/cdparanoia.py
|
||||
M 129:4 ProgressParser._parse_read - C (13)
|
||||
M 327:4 ReadTrackTask._read - B (9)
|
||||
M 272:4 ReadTrackTask.start - B (8)
|
||||
M 526:4 ReadVerifyTrackTask.stop - B (7)
|
||||
M 375:4 ReadTrackTask._done - B (6)
|
||||
C 415:0 ReadVerifyTrackTask - B (6)
|
||||
M 109:4 ProgressParser.parse - A (5)
|
||||
C 215:0 ReadTrackTask - A (5)
|
||||
C 76:0 ProgressParser - A (4)
|
||||
M 470:4 ReadVerifyTrackTask.__init__ - A (4)
|
||||
M 618:4 AnalyzeTask.done - A (3)
|
||||
M 628:4 AnalyzeTask.failed - A (3)
|
||||
M 193:4 ProgressParser.getTrackQuality - A (2)
|
||||
M 254:4 ReadTrackTask.__init__ - A (2)
|
||||
M 368:4 ReadTrackTask._poll - A (2)
|
||||
C 594:0 AnalyzeTask - A (2)
|
||||
M 605:4 AnalyzeTask.__init__ - A (2)
|
||||
F 581:0 getCdParanoiaVersion - A (1)
|
||||
C 39:0 FileSizeError - A (1)
|
||||
M 44:4 FileSizeError.__init__ - A (1)
|
||||
C 50:0 ReturnCodeError - A (1)
|
||||
M 53:4 ReturnCodeError.__init__ - A (1)
|
||||
C 58:0 ChecksumException - A (1)
|
||||
M 100:4 ProgressParser.__init__ - A (1)
|
||||
M 188:4 ProgressParser._parse_wrote - A (1)
|
||||
M 612:4 AnalyzeTask.commandMissing - A (1)
|
||||
M 615:4 AnalyzeTask.readbyteserr - A (1)
|
||||
whipper/program/arc.py
|
||||
F 15:0 accuraterip_checksum - B (8)
|
||||
F 10:0 _execute - A (1)
|
||||
whipper/image/toc.py
|
||||
M 191:4 TocFile.parse - E (31)
|
||||
C 149:0 TocFile - B (6)
|
||||
M 412:4 TocFile.getTrackLength - A (4)
|
||||
M 124:4 Sources.get - A (3)
|
||||
M 136:4 Sources.getCounterStart - A (3)
|
||||
C 94:0 Sources - A (2)
|
||||
M 164:4 TocFile.__init__ - A (2)
|
||||
C 448:0 File - A (2)
|
||||
M 459:4 File.__init__ - A (2)
|
||||
M 104:4 Sources.__init__ - A (1)
|
||||
M 107:4 Sources.append - A (1)
|
||||
M 173:4 TocFile._index - A (1)
|
||||
M 402:4 TocFile.message - A (1)
|
||||
M 439:4 TocFile.getRealPath - A (1)
|
||||
M 466:4 File.__repr__ - A (1)
|
||||
whipper/image/table.py
|
||||
M 500:4 Table.cue - D (24)
|
||||
M 703:4 Table.absolutize - B (9)
|
||||
M 354:4 Table.getMusicBrainzDiscId - B (7)
|
||||
M 453:4 Table._getMusicBrainzValues - B (6)
|
||||
M 741:4 Table.merge - A (5)
|
||||
M 823:4 Table.hasTOC - A (5)
|
||||
M 879:4 Table.canCue - A (5)
|
||||
M 659:4 Table.setFile - A (4)
|
||||
M 843:4 Table.accuraterip_ids - A (4)
|
||||
M 89:4 Track.index - A (3)
|
||||
M 160:4 Index.__init__ - A (3)
|
||||
C 177:0 Table - A (3)
|
||||
M 226:4 Table.getTrackEnd - A (3)
|
||||
M 260:4 Table.getAudioTracks - A (3)
|
||||
M 268:4 Table.hasDataTracks - A (3)
|
||||
M 636:4 Table.clearFiles - A (3)
|
||||
M 793:4 Table.getNextTrackIndex - A (3)
|
||||
M 126:4 Track.getPregap - A (2)
|
||||
C 138:0 Index - A (2)
|
||||
M 200:4 Table.__init__ - A (2)
|
||||
M 276:4 Table._cddbSum - A (2)
|
||||
M 284:4 Table.getCDDBValues - A (2)
|
||||
M 413:4 Table.getMusicBrainzSubmitURL - A (2)
|
||||
M 428:4 Table.getFrameLength - A (2)
|
||||
M 776:4 Table._getSessionGap - A (2)
|
||||
C 53:0 Track - A (1)
|
||||
M 80:4 Track.__repr__ - A (1)
|
||||
M 83:4 Track.__init__ - A (1)
|
||||
M 110:4 Track.getIndex - A (1)
|
||||
M 113:4 Track.getFirstIndex - A (1)
|
||||
M 122:4 Track.getLastIndex - A (1)
|
||||
M 172:4 Index.__repr__ - A (1)
|
||||
M 211:4 Table.unpickled - A (1)
|
||||
M 215:4 Table.getTrackStart - A (1)
|
||||
M 250:4 Table.getTrackLength - A (1)
|
||||
M 345:4 Table.getCDDBDiscId - A (1)
|
||||
M 449:4 Table.duration - A (1)
|
||||
M 872:4 Table.accuraterip_path - A (1)
|
||||
whipper/image/image.py
|
||||
C 115:0 ImageVerifyTask - B (6)
|
||||
M 135:4 ImageVerifyTask.__init__ - B (6)
|
||||
M 170:4 ImageVerifyTask.stop - A (5)
|
||||
M 71:4 Image.setup - A (4)
|
||||
C 33:0 Image - A (3)
|
||||
C 190:0 ImageEncodeTask - A (3)
|
||||
M 203:4 ImageEncodeTask.__init__ - A (3)
|
||||
M 50:4 Image.__init__ - A (2)
|
||||
M 61:4 Image.getRealPath - A (2)
|
||||
whipper/image/cue.py
|
||||
M 88:4 CueFile.parse - B (9)
|
||||
M 169:4 CueFile.getTrackLength - A (4)
|
||||
C 60:0 CueFile - A (3)
|
||||
M 79:4 CueFile.__init__ - A (2)
|
||||
C 198:0 File - A (2)
|
||||
M 207:4 File.__init__ - A (2)
|
||||
M 159:4 CueFile.message - A (1)
|
||||
M 189:4 CueFile.getRealPath - A (1)
|
||||
M 213:4 File.__repr__ - A (1)
|
||||
whipper/extern/asyncsub.py
|
||||
F 132:0 recv_some - B (8)
|
||||
M 63:8 Popen._recv - B (8)
|
||||
M 104:8 Popen._recv - B (7)
|
||||
M 47:8 Popen.send - A (5)
|
||||
M 88:8 Popen.send - A (5)
|
||||
F 155:0 send_all - A (3)
|
||||
C 23:0 Popen - A (3)
|
||||
M 34:4 Popen.get_conn_maxsize - A (3)
|
||||
M 25:4 Popen.recv - A (1)
|
||||
M 28:4 Popen.recv_err - A (1)
|
||||
M 31:4 Popen.send_recv - A (1)
|
||||
M 41:4 Popen._close - A (1)
|
||||
whipper/extern/task/task.py
|
||||
F 39:0 _getExceptionMessage - B (6)
|
||||
M 169:4 Task.setProgress - A (4)
|
||||
M 252:4 Task._notifyListeners - A (4)
|
||||
M 507:4 SyncRunner.run - A (4)
|
||||
M 566:4 SyncRunner.progressed - A (4)
|
||||
M 580:4 SyncRunner._output - A (4)
|
||||
M 392:4 BaseMultiTask.stopped - A (3)
|
||||
C 93:0 Task - A (2)
|
||||
M 146:4 Task.stop - A (2)
|
||||
M 183:4 Task.setDescription - A (2)
|
||||
M 189:4 Task.setExceptionAndTraceback - A (2)
|
||||
M 231:4 Task.schedule - A (2)
|
||||
M 239:4 Task.addListener - A (2)
|
||||
C 308:0 DummyTask - A (2)
|
||||
M 313:4 DummyTask._wind - A (2)
|
||||
M 337:4 BaseMultiTask.addTask - A (2)
|
||||
M 347:4 BaseMultiTask.start - A (2)
|
||||
M 365:4 BaseMultiTask.next - A (2)
|
||||
C 500:0 SyncRunner - A (2)
|
||||
M 534:4 SyncRunner._startWrap - A (2)
|
||||
M 591:4 SyncRunner.described - A (2)
|
||||
C 26:0 TaskException - A (1)
|
||||
M 31:4 TaskException.__init__ - A (1)
|
||||
C 73:0 LogStub - A (1)
|
||||
M 77:4 LogStub.log - A (1)
|
||||
M 80:4 LogStub.debug - A (1)
|
||||
M 83:4 LogStub.info - A (1)
|
||||
M 86:4 LogStub.warning - A (1)
|
||||
M 89:4 LogStub.error - A (1)
|
||||
M 125:4 Task.start - A (1)
|
||||
M 217:4 Task.setException - A (1)
|
||||
C 263:0 ITaskListener - A (1)
|
||||
M 268:4 ITaskListener.progressed - A (1)
|
||||
M 278:4 ITaskListener.described - A (1)
|
||||
M 288:4 ITaskListener.started - A (1)
|
||||
M 296:4 ITaskListener.stopped - A (1)
|
||||
M 309:4 DummyTask.start - A (1)
|
||||
C 323:0 BaseMultiTask - A (1)
|
||||
M 333:4 BaseMultiTask.__init__ - A (1)
|
||||
M 386:4 BaseMultiTask.started - A (1)
|
||||
M 389:4 BaseMultiTask.progressed - A (1)
|
||||
C 420:0 MultiSeparateTask - A (1)
|
||||
M 428:4 MultiSeparateTask.start - A (1)
|
||||
M 432:4 MultiSeparateTask.next - A (1)
|
||||
M 439:4 MultiSeparateTask.progressed - A (1)
|
||||
M 442:4 MultiSeparateTask.described - A (1)
|
||||
C 447:0 MultiCombinedTask - A (1)
|
||||
M 457:4 MultiCombinedTask.progressed - A (1)
|
||||
M 460:4 MultiCombinedTask.stopped - A (1)
|
||||
C 466:0 TaskRunner - A (1)
|
||||
M 474:4 TaskRunner.run - A (1)
|
||||
M 483:4 TaskRunner.schedule - A (1)
|
||||
M 503:4 SyncRunner.__init__ - A (1)
|
||||
M 547:4 SyncRunner.schedule - A (1)
|
||||
M 595:4 SyncRunner.stopped - A (1)
|
||||
M 600:4 SyncRunner._report - A (1)
|
||||
whipper/common/task.py
|
||||
M 57:4 PopenTask._read - B (8)
|
||||
M 94:4 PopenTask._done - A (4)
|
||||
M 35:4 PopenTask.start - A (3)
|
||||
C 27:0 PopenTask - A (2)
|
||||
C 15:0 SyncRunner - A (1)
|
||||
C 19:0 LoggableTask - A (1)
|
||||
C 23:0 LoggableMultiSeparateTask - A (1)
|
||||
M 113:4 PopenTask.abort - A (1)
|
||||
M 118:4 PopenTask.readbytesout - A (1)
|
||||
M 126:4 PopenTask.readbyteserr - A (1)
|
||||
M 134:4 PopenTask.done - A (1)
|
||||
M 138:4 PopenTask.failed - A (1)
|
||||
M 142:4 PopenTask.commandMissing - A (1)
|
||||
whipper/common/renamer.py
|
||||
M 44:4 Operator.load - B (7)
|
||||
M 70:4 Operator.save - B (6)
|
||||
C 27:0 Operator - A (3)
|
||||
M 162:4 RenameFile.verify - A (3)
|
||||
M 193:4 RenameInFile.do - A (3)
|
||||
M 211:4 RenameInFile.__eq__ - A (3)
|
||||
M 92:4 Operator.next - A (2)
|
||||
M 177:4 RenameFile.__eq__ - A (2)
|
||||
C 182:0 RenameInFile - A (2)
|
||||
M 189:4 RenameInFile.verify - A (2)
|
||||
M 29:4 Operator.__init__ - A (1)
|
||||
M 36:4 Operator.addOperation - A (1)
|
||||
M 89:4 Operator.start - A (1)
|
||||
C 104:0 FileRenamer - A (1)
|
||||
M 106:4 FileRenamer.addRename - A (1)
|
||||
C 116:0 Operation - A (1)
|
||||
M 118:4 Operation.verify - A (1)
|
||||
M 126:4 Operation.do - A (1)
|
||||
M 130:4 Operation.redo - A (1)
|
||||
M 137:4 Operation.serialize - A (1)
|
||||
M 146:4 Operation.deserialize - A (1)
|
||||
C 156:0 RenameFile - A (1)
|
||||
M 158:4 RenameFile.__init__ - A (1)
|
||||
M 166:4 RenameFile.do - A (1)
|
||||
M 169:4 RenameFile.serialize - A (1)
|
||||
M 172:4 RenameFile.deserialize - A (1)
|
||||
M 184:4 RenameInFile.__init__ - A (1)
|
||||
M 203:4 RenameInFile.serialize - A (1)
|
||||
M 206:4 RenameInFile.deserialize - A (1)
|
||||
whipper/common/program.py
|
||||
M 314:4 Program.getMusicBrainz - D (27)
|
||||
M 208:4 Program.getPath - B (10)
|
||||
M 458:4 Program.getTagList - B (9)
|
||||
M 621:4 Program.verifyImage - B (6)
|
||||
C 41:0 Program - A (5)
|
||||
M 98:4 Program.getFastToc - A (5)
|
||||
M 129:4 Program.getTable - A (5)
|
||||
M 552:4 Program.ripTrack - A (5)
|
||||
M 655:4 Program.write_m3u - A (5)
|
||||
M 289:4 Program.getCDDB - A (4)
|
||||
M 72:4 Program.__init__ - A (3)
|
||||
M 200:4 Program.addDisambiguation - A (3)
|
||||
M 533:4 Program.verifyTrack - A (3)
|
||||
M 93:4 Program.setWorkingDirectory - A (2)
|
||||
M 179:4 Program.getRipResult - A (2)
|
||||
M 518:4 Program.getHTOA - A (2)
|
||||
M 676:4 Program.writeCue - A (2)
|
||||
M 197:4 Program.saveRipResult - A (1)
|
||||
M 616:4 Program.retagImage - A (1)
|
||||
M 689:4 Program.writeLog - A (1)
|
||||
whipper/common/path.py
|
||||
M 43:4 PathFilter.filter - A (5)
|
||||
C 24:0 PathFilter - A (3)
|
||||
M 37:4 PathFilter.__init__ - A (1)
|
||||
whipper/common/mbngs.py
|
||||
F 164:0 _getMetadata - C (20)
|
||||
F 283:0 musicbrainz - B (8)
|
||||
M 138:4 _Credit.joiner - A (4)
|
||||
F 108:0 _record - A (2)
|
||||
C 135:0 _Credit - A (2)
|
||||
C 32:0 MusicBrainzException - A (1)
|
||||
M 34:4 MusicBrainzException.__init__ - A (1)
|
||||
C 39:0 NotFoundException - A (1)
|
||||
M 41:4 NotFoundException.__str__ - A (1)
|
||||
C 45:0 TrackMetadata - A (1)
|
||||
C 54:0 DiscMetadata - A (1)
|
||||
M 104:4 DiscMetadata.__init__ - A (1)
|
||||
M 152:4 _Credit.getSortName - A (1)
|
||||
M 155:4 _Credit.getName - A (1)
|
||||
M 159:4 _Credit.getIds - A (1)
|
||||
whipper/common/encode.py
|
||||
M 83:4 TaggingTask._tag - A (2)
|
||||
C 33:0 SoxPeakTask - A (1)
|
||||
M 36:4 SoxPeakTask.__init__ - A (1)
|
||||
M 40:4 SoxPeakTask.start - A (1)
|
||||
M 44:4 SoxPeakTask._sox_peak - A (1)
|
||||
C 49:0 FlacEncodeTask - A (1)
|
||||
M 52:4 FlacEncodeTask.__init__ - A (1)
|
||||
M 58:4 FlacEncodeTask.start - A (1)
|
||||
M 62:4 FlacEncodeTask._flac_encode - A (1)
|
||||
C 67:0 TaggingTask - A (1)
|
||||
M 75:4 TaggingTask.__init__ - A (1)
|
||||
M 79:4 TaggingTask.start - A (1)
|
||||
whipper/common/drive.py
|
||||
F 34:0 getAllDevicePaths - A (3)
|
||||
F 53:0 _getAllDevicePathsStatic - A (3)
|
||||
F 27:0 _listify - A (2)
|
||||
F 63:0 getDeviceInfo - A (2)
|
||||
F 43:0 _getAllDevicePathsPyCdio - A (1)
|
||||
whipper/common/directory.py
|
||||
F 33:0 cache_path - A (4)
|
||||
F 43:0 data_path - A (4)
|
||||
F 25:0 config_path - A (3)
|
||||
whipper/common/config.py
|
||||
M 142:4 Config._findDriveSection - B (7)
|
||||
M 78:4 Config.get_musicbrainz_server - A (4)
|
||||
M 44:4 Config.open - A (3)
|
||||
M 167:4 Config._findOrCreateDriveSection - A (3)
|
||||
C 35:0 Config - A (2)
|
||||
M 37:4 Config.__init__ - A (2)
|
||||
M 62:4 Config._getter - A (2)
|
||||
M 102:4 Config.getReadOffset - A (2)
|
||||
M 133:4 Config.getDefeatsCache - A (2)
|
||||
M 53:4 Config.write - A (1)
|
||||
M 70:4 Config.get - A (1)
|
||||
M 73:4 Config.getboolean - A (1)
|
||||
M 87:4 Config.setReadOffset - A (1)
|
||||
M 118:4 Config.setDefeatsCache - A (1)
|
||||
whipper/common/common.py
|
||||
F 185:0 getRealPath - B (9)
|
||||
F 150:0 shrinkPath - A (4)
|
||||
M 290:4 VersionGetter.get - A (4)
|
||||
F 94:0 formatTime - A (3)
|
||||
C 268:0 VersionGetter - A (3)
|
||||
F 53:0 msfToFrames - A (2)
|
||||
F 240:0 getRelativePath - A (2)
|
||||
F 71:0 framesToMSF - A (1)
|
||||
F 81:0 framesToHMSF - A (1)
|
||||
C 39:0 EjectError - A (1)
|
||||
M 48:4 EjectError.__init__ - A (1)
|
||||
C 132:0 MissingDependencyException - A (1)
|
||||
M 135:4 MissingDependencyException.__init__ - A (1)
|
||||
C 140:0 EmptyError - A (1)
|
||||
C 144:0 MissingFrames - A (1)
|
||||
M 284:4 VersionGetter.__init__ - A (1)
|
||||
whipper/common/checksum.py
|
||||
M 48:4 CRC32Task._crc32 - A (2)
|
||||
C 36:0 CRC32Task - A (1)
|
||||
M 40:4 CRC32Task.__init__ - A (1)
|
||||
M 44:4 CRC32Task.start - A (1)
|
||||
whipper/common/cache.py
|
||||
M 58:4 Persister.persist - B (6)
|
||||
M 217:4 TableCache.get - A (5)
|
||||
M 96:4 Persister._unpickle - A (4)
|
||||
M 139:4 PersistedCache.get - A (4)
|
||||
C 201:0 TableCache - A (4)
|
||||
C 34:0 Persister - A (3)
|
||||
C 123:0 PersistedCache - A (3)
|
||||
M 128:4 PersistedCache.__init__ - A (3)
|
||||
M 166:4 ResultCache.getRipResult - A (3)
|
||||
C 160:0 ResultCache - A (2)
|
||||
M 162:4 ResultCache.__init__ - A (2)
|
||||
M 195:4 ResultCache.getIds - A (2)
|
||||
M 209:4 TableCache.__init__ - A (2)
|
||||
M 52:4 Persister.__init__ - A (1)
|
||||
M 118:4 Persister.delete - A (1)
|
||||
M 136:4 PersistedCache._getPath - A (1)
|
||||
whipper/common/accurip.py
|
||||
F 263:0 print_report - C (11)
|
||||
F 207:0 _match_responses - B (8)
|
||||
F 239:0 verify_result - A (5)
|
||||
F 99:0 calculate_checksums - A (4)
|
||||
F 171:0 get_db_entry - A (4)
|
||||
F 197:0 _assign_checksums_and_confidences - A (4)
|
||||
F 143:0 _download_entry - A (3)
|
||||
F 159:0 _save_entry - A (3)
|
||||
F 89:0 _split_responses - A (2)
|
||||
C 43:0 _AccurateRipResponse - A (2)
|
||||
M 63:4 _AccurateRipResponse.__init__ - A (2)
|
||||
C 39:0 EntryNotFound - A (1)
|
||||
M 79:4 _AccurateRipResponse.__eq__ - A (1)
|
||||
whipper/command/offset.py
|
||||
M 78:4 Find.do - C (14)
|
||||
C 52:0 Find - A (4)
|
||||
M 66:4 Find.handle_arguments - A (3)
|
||||
M 207:4 Find._foundOffset - A (2)
|
||||
M 59:4 Find.add_arguments - A (1)
|
||||
M 179:4 Find._arcs - A (1)
|
||||
C 224:0 Offset - A (1)
|
||||
whipper/command/main.py
|
||||
F 21:0 main - C (13)
|
||||
M 107:4 Whipper.handle_arguments - A (3)
|
||||
C 74:0 Whipper - A (2)
|
||||
M 90:4 Whipper.add_arguments - A (1)
|
||||
whipper/command/image.py
|
||||
M 60:4 Retag.do - A (5)
|
||||
M 117:4 Verify.do - A (5)
|
||||
C 35:0 Retag - A (3)
|
||||
C 107:0 Verify - A (3)
|
||||
M 41:4 Retag.add_arguments - A (1)
|
||||
M 113:4 Verify.add_arguments - A (1)
|
||||
C 144:0 Image - A (1)
|
||||
whipper/command/drive.py
|
||||
C 66:0 List - B (7)
|
||||
M 70:4 List.do - B (7)
|
||||
C 32:0 Analyze - A (4)
|
||||
M 37:4 Analyze.do - A (4)
|
||||
C 119:0 Drive - A (1)
|
||||
whipper/command/debug.py
|
||||
M 230:4 MusicBrainzNGS.do - B (6)
|
||||
C 56:0 RCList - A (5)
|
||||
M 60:4 RCList.do - A (5)
|
||||
C 218:0 MusicBrainzNGS - A (4)
|
||||
C 32:0 RCCue - A (3)
|
||||
M 36:4 RCCue.do - A (3)
|
||||
M 95:4 RCLog.do - A (3)
|
||||
M 157:4 Encode.do - A (3)
|
||||
M 199:4 Tag.do - A (3)
|
||||
C 80:0 RCLog - A (2)
|
||||
C 127:0 Checksum - A (2)
|
||||
M 135:4 Checksum.do - A (2)
|
||||
C 147:0 Encode - A (2)
|
||||
C 191:0 Tag - A (2)
|
||||
M 85:4 RCLog.add_arguments - A (1)
|
||||
C 116:0 ResultCache - A (1)
|
||||
M 131:4 Checksum.add_arguments - A (1)
|
||||
M 151:4 Encode.add_arguments - A (1)
|
||||
M 195:4 Tag.add_arguments - A (1)
|
||||
M 226:4 MusicBrainzNGS.add_arguments - A (1)
|
||||
C 259:0 CDParanoia - A (1)
|
||||
M 263:4 CDParanoia.do - A (1)
|
||||
C 269:0 CDRDAO - A (1)
|
||||
M 273:4 CDRDAO.do - A (1)
|
||||
C 279:0 Version - A (1)
|
||||
C 289:0 Debug - A (1)
|
||||
whipper/command/cd.py
|
||||
M 91:4 _CD.do - C (17)
|
||||
M 319:4 Rip.doCommand - B (7)
|
||||
C 69:0 _CD - B (6)
|
||||
C 211:0 Rip - A (5)
|
||||
M 291:4 Rip.handle_arguments - A (5)
|
||||
M 230:4 Rip.add_arguments - A (3)
|
||||
M 72:4 _CD.add_arguments - A (1)
|
||||
M 195:4 _CD.doCommand - A (1)
|
||||
C 199:0 Info - A (1)
|
||||
M 207:4 Info.add_arguments - A (1)
|
||||
C 500:0 CD - A (1)
|
||||
whipper/command/basecommand.py
|
||||
M 53:4 BaseCommand.__init__ - B (9)
|
||||
C 28:0 BaseCommand - A (3)
|
||||
M 105:4 BaseCommand.init_parser - A (3)
|
||||
M 126:4 BaseCommand.epilog - A (2)
|
||||
M 117:4 BaseCommand.add_arguments - A (1)
|
||||
M 120:4 BaseCommand.handle_arguments - A (1)
|
||||
M 123:4 BaseCommand.do - A (1)
|
||||
whipper/command/accurip.py
|
||||
M 40:4 Show.do - C (12)
|
||||
C 30:0 Show - B (7)
|
||||
M 36:4 Show.add_arguments - A (1)
|
||||
C 90:0 AccuRip - A (1)
|
||||
|
||||
434 blocks (classes, functions, methods) analyzed.
|
||||
Average complexity: A (2.85023041475)
|
||||
1
misc/radon_reports/radon_mi.json
Normal file
1
misc/radon_reports/radon_mi.json
Normal file
@@ -0,0 +1 @@
|
||||
{"whipper/__init__.py": {"mi": 69.32314736945543, "rank": "A"}, "whipper/image/table.py": {"mi": 36.38710913480764, "rank": "A"}, "whipper/common/task.py": {"mi": 65.83073540635783, "rank": "A"}, "whipper/common/common.py": {"mi": 58.19024283957668, "rank": "A"}, "whipper/common/checksum.py": {"mi": 89.21822698513452, "rank": "A"}, "whipper/common/directory.py": {"mi": 86.89975970546708, "rank": "A"}, "whipper/common/renamer.py": {"mi": 64.99770902754665, "rank": "A"}, "whipper/image/toc.py": {"mi": 52.16238829950187, "rank": "A"}, "whipper/result/__init__.py": {"mi": 100.0, "rank": "A"}, "whipper/common/drive.py": {"mi": 90.75976953355465, "rank": "A"}, "whipper/program/flac.py": {"mi": 100.0, "rank": "A"}, "whipper/common/cache.py": {"mi": 64.19417569953121, "rank": "A"}, "whipper/command/__init__.py": {"mi": 100.0, "rank": "A"}, "whipper/common/__init__.py": {"mi": 100.0, "rank": "A"}, "whipper/program/arc.py": {"mi": 51.611919730245745, "rank": "A"}, "whipper/common/mbngs.py": {"mi": 57.9686246751526, "rank": "A"}, "whipper/command/image.py": {"mi": 67.1387480629294, "rank": "A"}, "whipper/command/basecommand.py": {"mi": 73.90201579323883, "rank": "A"}, "whipper/command/accurip.py": {"mi": 74.03684350145554, "rank": "A"}, "whipper/common/path.py": {"mi": 100.0, "rank": "A"}, "whipper/common/config.py": {"mi": 65.29740853557456, "rank": "A"}, "whipper/common/encode.py": {"mi": 88.09595555792843, "rank": "A"}, "whipper/extern/asyncsub.py": {"mi": 39.9028972425382, "rank": "A"}, "whipper/program/__init__.py": {"mi": 100.0, "rank": "A"}, "whipper/__main__.py": {"mi": 100.0, "rank": "A"}, "whipper/extern/__init__.py": {"mi": 100.0, "rank": "A"}, "whipper/command/main.py": {"mi": 60.224912112868566, "rank": "A"}, "whipper/program/sox.py": {"mi": 94.4811529524249, "rank": "A"}, "whipper/common/program.py": {"mi": 38.4799071186587, "rank": "A"}, "whipper/command/drive.py": {"mi": 71.03790224962133, "rank": "A"}, "whipper/result/result.py": {"mi": 81.25685459109454, "rank": "A"}, "whipper/extern/task/__init__.py": {"mi": 100.0, "rank": "A"}, "whipper/image/image.py": {"mi": 62.72534120058029, "rank": "A"}, "whipper/program/utils.py": {"mi": 88.18865793232631, "rank": "A"}, "whipper/extern/task/task.py": {"mi": 50.46636705893654, "rank": "A"}, "whipper/program/cdrdao.py": {"mi": 75.82817118502996, "rank": "A"}, "whipper/command/offset.py": {"mi": 54.988268477793056, "rank": "A"}, "whipper/image/__init__.py": {"mi": 100.0, "rank": "A"}, "whipper/program/cdparanoia.py": {"mi": 43.60606445875359, "rank": "A"}, "whipper/command/debug.py": {"mi": 48.61706439000409, "rank": "A"}, "whipper/program/soxi.py": {"mi": 87.24528637704343, "rank": "A"}, "whipper/result/logger.py": {"mi": 53.55047902441077, "rank": "A"}, "whipper/image/cue.py": {"mi": 66.61480487529172, "rank": "A"}, "whipper/common/accurip.py": {"mi": 55.59141967567796, "rank": "A"}, "whipper/command/cd.py": {"mi": 41.31178463454205, "rank": "A"}}
|
||||
47
misc/radon_reports/radon_mi.txt
Normal file
47
misc/radon_reports/radon_mi.txt
Normal file
@@ -0,0 +1,47 @@
|
||||
$ radon mi -s -i test whipper/
|
||||
|
||||
whipper/__main__.py - A (100.00)
|
||||
whipper/__init__.py - A (69.32)
|
||||
whipper/result/result.py - A (81.26)
|
||||
whipper/result/logger.py - A (53.55)
|
||||
whipper/result/__init__.py - A (100.00)
|
||||
whipper/program/utils.py - A (88.19)
|
||||
whipper/program/soxi.py - A (87.25)
|
||||
whipper/program/sox.py - A (94.48)
|
||||
whipper/program/flac.py - A (100.00)
|
||||
whipper/program/cdrdao.py - A (75.83)
|
||||
whipper/program/cdparanoia.py - A (43.61)
|
||||
whipper/program/arc.py - A (51.61)
|
||||
whipper/program/__init__.py - A (100.00)
|
||||
whipper/image/toc.py - A (52.16)
|
||||
whipper/image/table.py - A (36.39)
|
||||
whipper/image/image.py - A (62.73)
|
||||
whipper/image/cue.py - A (66.61)
|
||||
whipper/image/__init__.py - A (100.00)
|
||||
whipper/extern/asyncsub.py - A (39.90)
|
||||
whipper/extern/__init__.py - A (100.00)
|
||||
whipper/extern/task/task.py - A (50.47)
|
||||
whipper/extern/task/__init__.py - A (100.00)
|
||||
whipper/common/task.py - A (65.83)
|
||||
whipper/common/renamer.py - A (65.00)
|
||||
whipper/common/program.py - A (38.48)
|
||||
whipper/common/path.py - A (100.00)
|
||||
whipper/common/mbngs.py - A (57.97)
|
||||
whipper/common/encode.py - A (88.10)
|
||||
whipper/common/drive.py - A (90.76)
|
||||
whipper/common/directory.py - A (86.90)
|
||||
whipper/common/config.py - A (65.30)
|
||||
whipper/common/common.py - A (58.19)
|
||||
whipper/common/checksum.py - A (89.22)
|
||||
whipper/common/cache.py - A (64.19)
|
||||
whipper/common/accurip.py - A (55.59)
|
||||
whipper/common/__init__.py - A (100.00)
|
||||
whipper/command/offset.py - A (54.99)
|
||||
whipper/command/main.py - A (60.22)
|
||||
whipper/command/image.py - A (67.14)
|
||||
whipper/command/drive.py - A (71.04)
|
||||
whipper/command/debug.py - A (48.62)
|
||||
whipper/command/cd.py - A (41.31)
|
||||
whipper/command/basecommand.py - A (73.90)
|
||||
whipper/command/accurip.py - A (74.04)
|
||||
whipper/command/__init__.py - A (100.00)
|
||||
1
misc/radon_reports/radon_raw.json
Normal file
1
misc/radon_reports/radon_raw.json
Normal file
File diff suppressed because one or more lines are too long
554
misc/radon_reports/radon_raw.txt
Normal file
554
misc/radon_reports/radon_raw.txt
Normal file
@@ -0,0 +1,554 @@
|
||||
$ radon raw -s -i test whipper/
|
||||
|
||||
whipper/__main__.py
|
||||
LOC: 14
|
||||
LLOC: 7
|
||||
SLOC: 7
|
||||
Comments: 3
|
||||
Single comments: 3
|
||||
Multi: 0
|
||||
Blank: 4
|
||||
- Comment Stats
|
||||
(C % L): 21%
|
||||
(C % S): 43%
|
||||
(C + M % L): 21%
|
||||
whipper/__init__.py
|
||||
LOC: 14
|
||||
LLOC: 11
|
||||
SLOC: 12
|
||||
Comments: 0
|
||||
Single comments: 0
|
||||
Multi: 0
|
||||
Blank: 2
|
||||
- Comment Stats
|
||||
(C % L): 0%
|
||||
(C % S): 0%
|
||||
(C + M % L): 0%
|
||||
whipper/result/result.py
|
||||
LOC: 158
|
||||
LLOC: 57
|
||||
SLOC: 69
|
||||
Comments: 20
|
||||
Single comments: 21
|
||||
Multi: 35
|
||||
Blank: 33
|
||||
- Comment Stats
|
||||
(C % L): 13%
|
||||
(C % S): 29%
|
||||
(C + M % L): 35%
|
||||
whipper/result/logger.py
|
||||
LOC: 256
|
||||
LLOC: 150
|
||||
SLOC: 169
|
||||
Comments: 29
|
||||
Single comments: 29
|
||||
Multi: 23
|
||||
Blank: 35
|
||||
- Comment Stats
|
||||
(C % L): 11%
|
||||
(C % S): 17%
|
||||
(C + M % L): 20%
|
||||
whipper/result/__init__.py
|
||||
LOC: 0
|
||||
LLOC: 0
|
||||
SLOC: 0
|
||||
Comments: 0
|
||||
Single comments: 0
|
||||
Multi: 0
|
||||
Blank: 0
|
||||
- Comment Stats
|
||||
(C % L): 0%
|
||||
(C % S): 0%
|
||||
(C + M % L): 0%
|
||||
whipper/program/utils.py
|
||||
LOC: 42
|
||||
LLOC: 16
|
||||
SLOC: 16
|
||||
Comments: 0
|
||||
Single comments: 0
|
||||
Multi: 14
|
||||
Blank: 12
|
||||
- Comment Stats
|
||||
(C % L): 0%
|
||||
(C % S): 0%
|
||||
(C + M % L): 33%
|
||||
whipper/program/soxi.py
|
||||
LOC: 60
|
||||
LLOC: 28
|
||||
SLOC: 28
|
||||
Comments: 0
|
||||
Single comments: 0
|
||||
Multi: 16
|
||||
Blank: 16
|
||||
- Comment Stats
|
||||
(C % L): 0%
|
||||
(C % S): 0%
|
||||
(C + M % L): 27%
|
||||
whipper/program/sox.py
|
||||
LOC: 31
|
||||
LLOC: 17
|
||||
SLOC: 17
|
||||
Comments: 3
|
||||
Single comments: 3
|
||||
Multi: 6
|
||||
Blank: 5
|
||||
- Comment Stats
|
||||
(C % L): 10%
|
||||
(C % S): 18%
|
||||
(C + M % L): 29%
|
||||
whipper/program/flac.py
|
||||
LOC: 25
|
||||
LLOC: 9
|
||||
SLOC: 10
|
||||
Comments: 2
|
||||
Single comments: 2
|
||||
Multi: 8
|
||||
Blank: 5
|
||||
- Comment Stats
|
||||
(C % L): 8%
|
||||
(C % S): 20%
|
||||
(C + M % L): 40%
|
||||
whipper/program/cdrdao.py
|
||||
LOC: 122
|
||||
LLOC: 52
|
||||
SLOC: 57
|
||||
Comments: 8
|
||||
Single comments: 8
|
||||
Multi: 34
|
||||
Blank: 23
|
||||
- Comment Stats
|
||||
(C % L): 7%
|
||||
(C % S): 14%
|
||||
(C + M % L): 34%
|
||||
whipper/program/cdparanoia.py
|
||||
LOC: 636
|
||||
LLOC: 324
|
||||
SLOC: 364
|
||||
Comments: 78
|
||||
Single comments: 66
|
||||
Multi: 89
|
||||
Blank: 117
|
||||
- Comment Stats
|
||||
(C % L): 12%
|
||||
(C % S): 21%
|
||||
(C + M % L): 26%
|
||||
whipper/program/arc.py
|
||||
LOC: 58
|
||||
LLOC: 39
|
||||
SLOC: 45
|
||||
Comments: 0
|
||||
Single comments: 0
|
||||
Multi: 0
|
||||
Blank: 13
|
||||
- Comment Stats
|
||||
(C % L): 0%
|
||||
(C % S): 0%
|
||||
(C + M % L): 0%
|
||||
whipper/program/__init__.py
|
||||
LOC: 0
|
||||
LLOC: 0
|
||||
SLOC: 0
|
||||
Comments: 0
|
||||
Single comments: 0
|
||||
Multi: 0
|
||||
Blank: 0
|
||||
- Comment Stats
|
||||
(C % L): 0%
|
||||
(C % S): 0%
|
||||
(C + M % L): 0%
|
||||
whipper/image/toc.py
|
||||
LOC: 467
|
||||
LLOC: 202
|
||||
SLOC: 253
|
||||
Comments: 70
|
||||
Single comments: 68
|
||||
Multi: 62
|
||||
Blank: 84
|
||||
- Comment Stats
|
||||
(C % L): 15%
|
||||
(C % S): 28%
|
||||
(C + M % L): 28%
|
||||
whipper/image/table.py
|
||||
LOC: 892
|
||||
LLOC: 400
|
||||
SLOC: 449
|
||||
Comments: 96
|
||||
Single comments: 93
|
||||
Multi: 175
|
||||
Blank: 175
|
||||
- Comment Stats
|
||||
(C % L): 11%
|
||||
(C % S): 21%
|
||||
(C + M % L): 30%
|
||||
whipper/image/image.py
|
||||
LOC: 235
|
||||
LLOC: 118
|
||||
SLOC: 125
|
||||
Comments: 24
|
||||
Single comments: 22
|
||||
Multi: 41
|
||||
Blank: 47
|
||||
- Comment Stats
|
||||
(C % L): 10%
|
||||
(C % S): 19%
|
||||
(C + M % L): 28%
|
||||
whipper/image/cue.py
|
||||
LOC: 214
|
||||
LLOC: 91
|
||||
SLOC: 111
|
||||
Comments: 29
|
||||
Single comments: 27
|
||||
Multi: 33
|
||||
Blank: 43
|
||||
- Comment Stats
|
||||
(C % L): 14%
|
||||
(C % S): 26%
|
||||
(C + M % L): 29%
|
||||
whipper/image/__init__.py
|
||||
LOC: 0
|
||||
LLOC: 0
|
||||
SLOC: 0
|
||||
Comments: 0
|
||||
Single comments: 0
|
||||
Multi: 0
|
||||
Blank: 0
|
||||
- Comment Stats
|
||||
(C % L): 0%
|
||||
(C % S): 0%
|
||||
(C + M % L): 0%
|
||||
whipper/extern/asyncsub.py
|
||||
LOC: 176
|
||||
LLOC: 136
|
||||
SLOC: 136
|
||||
Comments: 4
|
||||
Single comments: 3
|
||||
Multi: 0
|
||||
Blank: 37
|
||||
- Comment Stats
|
||||
(C % L): 2%
|
||||
(C % S): 3%
|
||||
(C + M % L): 2%
|
||||
whipper/extern/__init__.py
|
||||
LOC: 0
|
||||
LLOC: 0
|
||||
SLOC: 0
|
||||
Comments: 0
|
||||
Single comments: 0
|
||||
Multi: 0
|
||||
Blank: 0
|
||||
- Comment Stats
|
||||
(C % L): 0%
|
||||
(C % S): 0%
|
||||
(C + M % L): 0%
|
||||
whipper/extern/task/task.py
|
||||
LOC: 608
|
||||
LLOC: 282
|
||||
SLOC: 296
|
||||
Comments: 52
|
||||
Single comments: 54
|
||||
Multi: 122
|
||||
Blank: 136
|
||||
- Comment Stats
|
||||
(C % L): 9%
|
||||
(C % S): 18%
|
||||
(C + M % L): 29%
|
||||
whipper/extern/task/__init__.py
|
||||
LOC: 0
|
||||
LLOC: 0
|
||||
SLOC: 0
|
||||
Comments: 0
|
||||
Single comments: 0
|
||||
Multi: 0
|
||||
Blank: 0
|
||||
- Comment Stats
|
||||
(C % L): 0%
|
||||
(C % S): 0%
|
||||
(C + M % L): 0%
|
||||
whipper/common/task.py
|
||||
LOC: 144
|
||||
LLOC: 79
|
||||
SLOC: 86
|
||||
Comments: 8
|
||||
Single comments: 12
|
||||
Multi: 8
|
||||
Blank: 38
|
||||
- Comment Stats
|
||||
(C % L): 6%
|
||||
(C % S): 9%
|
||||
(C + M % L): 11%
|
||||
whipper/common/renamer.py
|
||||
LOC: 214
|
||||
LLOC: 103
|
||||
SLOC: 107
|
||||
Comments: 21
|
||||
Single comments: 25
|
||||
Multi: 29
|
||||
Blank: 53
|
||||
- Comment Stats
|
||||
(C % L): 10%
|
||||
(C % S): 20%
|
||||
(C + M % L): 23%
|
||||
whipper/common/program.py
|
||||
LOC: 698
|
||||
LLOC: 363
|
||||
SLOC: 416
|
||||
Comments: 36
|
||||
Single comments: 34
|
||||
Multi: 139
|
||||
Blank: 109
|
||||
- Comment Stats
|
||||
(C % L): 5%
|
||||
(C % S): 9%
|
||||
(C + M % L): 25%
|
||||
whipper/common/path.py
|
||||
LOC: 69
|
||||
LLOC: 24
|
||||
SLOC: 26
|
||||
Comments: 20
|
||||
Single comments: 20
|
||||
Multi: 10
|
||||
Blank: 13
|
||||
- Comment Stats
|
||||
(C % L): 29%
|
||||
(C % S): 77%
|
||||
(C + M % L): 43%
|
||||
whipper/common/mbngs.py
|
||||
LOC: 349
|
||||
LLOC: 166
|
||||
SLOC: 178
|
||||
Comments: 47
|
||||
Single comments: 47
|
||||
Multi: 54
|
||||
Blank: 70
|
||||
- Comment Stats
|
||||
(C % L): 13%
|
||||
(C % S): 26%
|
||||
(C + M % L): 29%
|
||||
whipper/common/encode.py
|
||||
LOC: 91
|
||||
LLOC: 44
|
||||
SLOC: 44
|
||||
Comments: 21
|
||||
Single comments: 21
|
||||
Multi: 0
|
||||
Blank: 26
|
||||
- Comment Stats
|
||||
(C % L): 23%
|
||||
(C % S): 48%
|
||||
(C + M % L): 23%
|
||||
whipper/common/drive.py
|
||||
LOC: 71
|
||||
LLOC: 31
|
||||
SLOC: 31
|
||||
Comments: 21
|
||||
Single comments: 21
|
||||
Multi: 0
|
||||
Blank: 19
|
||||
- Comment Stats
|
||||
(C % L): 30%
|
||||
(C % S): 68%
|
||||
(C + M % L): 30%
|
||||
whipper/common/directory.py
|
||||
LOC: 51
|
||||
LLOC: 21
|
||||
SLOC: 25
|
||||
Comments: 17
|
||||
Single comments: 17
|
||||
Multi: 0
|
||||
Blank: 9
|
||||
- Comment Stats
|
||||
(C % L): 33%
|
||||
(C % S): 68%
|
||||
(C + M % L): 33%
|
||||
whipper/common/config.py
|
||||
LOC: 180
|
||||
LLOC: 92
|
||||
SLOC: 99
|
||||
Comments: 21
|
||||
Single comments: 21
|
||||
Multi: 19
|
||||
Blank: 41
|
||||
- Comment Stats
|
||||
(C % L): 12%
|
||||
(C % S): 21%
|
||||
(C + M % L): 22%
|
||||
whipper/common/common.py
|
||||
LOC: 308
|
||||
LLOC: 136
|
||||
SLOC: 147
|
||||
Comments: 33
|
||||
Single comments: 33
|
||||
Multi: 57
|
||||
Blank: 71
|
||||
- Comment Stats
|
||||
(C % L): 11%
|
||||
(C % S): 22%
|
||||
(C + M % L): 29%
|
||||
whipper/common/checksum.py
|
||||
LOC: 64
|
||||
LLOC: 28
|
||||
SLOC: 28
|
||||
Comments: 21
|
||||
Single comments: 21
|
||||
Multi: 0
|
||||
Blank: 15
|
||||
- Comment Stats
|
||||
(C % L): 33%
|
||||
(C % S): 75%
|
||||
(C + M % L): 33%
|
||||
whipper/common/cache.py
|
||||
LOC: 237
|
||||
LLOC: 108
|
||||
SLOC: 113
|
||||
Comments: 32
|
||||
Single comments: 32
|
||||
Multi: 38
|
||||
Blank: 54
|
||||
- Comment Stats
|
||||
(C % L): 14%
|
||||
(C % S): 28%
|
||||
(C + M % L): 30%
|
||||
whipper/common/accurip.py
|
||||
LOC: 303
|
||||
LLOC: 146
|
||||
SLOC: 178
|
||||
Comments: 24
|
||||
Single comments: 24
|
||||
Multi: 50
|
||||
Blank: 51
|
||||
- Comment Stats
|
||||
(C % L): 8%
|
||||
(C % S): 13%
|
||||
(C + M % L): 24%
|
||||
whipper/common/__init__.py
|
||||
LOC: 0
|
||||
LLOC: 0
|
||||
SLOC: 0
|
||||
Comments: 0
|
||||
Single comments: 0
|
||||
Multi: 0
|
||||
Blank: 0
|
||||
- Comment Stats
|
||||
(C % L): 0%
|
||||
(C % S): 0%
|
||||
(C + M % L): 0%
|
||||
whipper/command/offset.py
|
||||
LOC: 231
|
||||
LLOC: 116
|
||||
SLOC: 161
|
||||
Comments: 28
|
||||
Single comments: 28
|
||||
Multi: 0
|
||||
Blank: 42
|
||||
- Comment Stats
|
||||
(C % L): 12%
|
||||
(C % S): 17%
|
||||
(C + M % L): 12%
|
||||
whipper/command/main.py
|
||||
LOC: 113
|
||||
LLOC: 68
|
||||
SLOC: 92
|
||||
Comments: 7
|
||||
Single comments: 6
|
||||
Multi: 0
|
||||
Blank: 15
|
||||
- Comment Stats
|
||||
(C % L): 6%
|
||||
(C % S): 8%
|
||||
(C + M % L): 6%
|
||||
whipper/command/image.py
|
||||
LOC: 154
|
||||
LLOC: 79
|
||||
SLOC: 109
|
||||
Comments: 20
|
||||
Single comments: 19
|
||||
Multi: 0
|
||||
Blank: 26
|
||||
- Comment Stats
|
||||
(C % L): 13%
|
||||
(C % S): 18%
|
||||
(C + M % L): 13%
|
||||
whipper/command/drive.py
|
||||
LOC: 125
|
||||
LLOC: 64
|
||||
SLOC: 83
|
||||
Comments: 20
|
||||
Single comments: 18
|
||||
Multi: 0
|
||||
Blank: 24
|
||||
- Comment Stats
|
||||
(C % L): 16%
|
||||
(C % S): 24%
|
||||
(C + M % L): 16%
|
||||
whipper/command/debug.py
|
||||
LOC: 300
|
||||
LLOC: 170
|
||||
SLOC: 202
|
||||
Comments: 23
|
||||
Single comments: 22
|
||||
Multi: 0
|
||||
Blank: 76
|
||||
- Comment Stats
|
||||
(C % L): 8%
|
||||
(C % S): 11%
|
||||
(C + M % L): 8%
|
||||
whipper/command/cd.py
|
||||
LOC: 508
|
||||
LLOC: 229
|
||||
SLOC: 390
|
||||
Comments: 42
|
||||
Single comments: 42
|
||||
Multi: 0
|
||||
Blank: 76
|
||||
- Comment Stats
|
||||
(C % L): 8%
|
||||
(C % S): 11%
|
||||
(C + M % L): 8%
|
||||
whipper/command/basecommand.py
|
||||
LOC: 130
|
||||
LLOC: 60
|
||||
SLOC: 73
|
||||
Comments: 18
|
||||
Single comments: 16
|
||||
Multi: 14
|
||||
Blank: 27
|
||||
- Comment Stats
|
||||
(C % L): 14%
|
||||
(C % S): 25%
|
||||
(C + M % L): 25%
|
||||
whipper/command/accurip.py
|
||||
LOC: 98
|
||||
LLOC: 46
|
||||
SLOC: 58
|
||||
Comments: 19
|
||||
Single comments: 19
|
||||
Multi: 0
|
||||
Blank: 21
|
||||
- Comment Stats
|
||||
(C % L): 19%
|
||||
(C % S): 33%
|
||||
(C + M % L): 19%
|
||||
whipper/command/__init__.py
|
||||
LOC: 0
|
||||
LLOC: 0
|
||||
SLOC: 0
|
||||
Comments: 0
|
||||
Single comments: 0
|
||||
Multi: 0
|
||||
Blank: 0
|
||||
- Comment Stats
|
||||
(C % L): 0%
|
||||
(C % S): 0%
|
||||
(C + M % L): 0%
|
||||
** Total **
|
||||
LOC: 8446
|
||||
LLOC: 4112
|
||||
SLOC: 4810
|
||||
Comments: 917
|
||||
Single comments: 897
|
||||
Multi: 1076
|
||||
Blank: 1663
|
||||
- Comment Stats
|
||||
(C % L): 11%
|
||||
(C % S): 19%
|
||||
(C + M % L): 24%
|
||||
@@ -2,7 +2,7 @@ import logging
|
||||
import os
|
||||
import sys
|
||||
|
||||
__version__ = '0.5.1'
|
||||
__version__ = '0.6.0'
|
||||
|
||||
level = logging.WARNING
|
||||
if 'WHIPPER_DEBUG' in os.environ:
|
||||
|
||||
Reference in New Issue
Block a user