Merge pull request #109 from Freso/fix-morituri-references

Fix references to morituri.
This commit is contained in:
JoeLametta
2017-04-27 18:03:08 +02:00
committed by GitHub
117 changed files with 1247 additions and 396 deletions

View File

@@ -44,7 +44,7 @@ unicode
- Use asserts liberally to ensure this so we catch problems earlier.
- All gst.parse_launch() pipelines should be passed as utf-8; use
encode('utf-8')
- morituri.extern.log.log is not unicode-safe; don't pass it unicode objects;
- whipper.extern.log.log is not unicode-safe; don't pass it unicode objects;
for example, always use %r to log paths
- run with RIP_DEBUG=5 once in a while to catch unicode/logging errors.
- Also use unicode prefix/suffix in tempfile.* methods; to force unicode.

4
doc/.gitignore vendored
View File

@@ -1,4 +1,4 @@
morituri.ics
morituri.rss2
whipper.ics
whipper.rss2
reference
rip.1

View File

@@ -1,30 +1,30 @@
EXTRA_DIST = morituri.rss2 morituri.ics $(man_MANS)
EXTRA_DIST = whipper.rss2 whipper.ics $(man_MANS)
DISTCLEANFILES = $(man_MANS)
all-local: feeds reference
if HAVE_EPYDOC
reference: $(top_srcdir)/morituri/*.py feeds
epydoc -o reference $(top_srcdir)/morituri
reference: $(top_srcdir)/whipper/*.py feeds
epydoc -o reference $(top_srcdir)/whipper
else
reference:
@true
endif
# generate feeds
feeds: morituri.rss2 morituri.ics
feeds: whipper.rss2 whipper.ics
# don't fail fatally if user does not have RDF
morituri.rss2: $(top_srcdir)/morituri.doap
-moap doap -f $(top_srcdir)/morituri.doap rss > morituri.rss2
whipper.rss2: $(top_srcdir)/whipper.doap
-moap doap -f $(top_srcdir)/whipper.doap rss > whipper.rss2
morituri.ics: $(top_srcdir)/morituri.doap
-moap doap -f $(top_srcdir)/morituri.doap ical > morituri.ics
whipper.ics: $(top_srcdir)/whipper.doap
-moap doap -f $(top_srcdir)/whipper.doap ical > whipper.ics
man_MANS = rip.1
rip.1: $(top_srcdir)/morituri/extern/python-command/scripts/help2man $(top_srcdir)/morituri
PYTHONPATH=$(top_srcdir) $(PYTHON) $(top_srcdir)/morituri/extern/python-command/scripts/help2man morituri.rip.main.Rip rip > 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

View File

@@ -1,21 +1,19 @@
# -*- Mode: Python; test-case-name: morituri.test.test_header -*-
# -*- Mode: Python; test-case-name: whipper.test.test_header -*-
# vi:si:et:sw=4:sts=4:ts=4
# Morituri - for those about to RIP
# Copyright (C) 2009 Thomas Vander Stichele
# This file is part of morituri.
# This file is part of whipper.
#
# morituri is free software: you can redistribute it and/or modify
# whipper is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# morituri is distributed in the hope that it will be useful,
# whipper is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with morituri. If not, see <http://www.gnu.org/licenses/>.
# along with whipper. If not, see <http://www.gnu.org/licenses/>.

View File

@@ -182,7 +182,7 @@ blacklist = [
#warning: couldn't find real module for class xml.parsers.expat.ExpatError (module name: xml.parsers.expat)
'xml.parsers.expat',
'unittest',
'morituri.extern.log.log',
'whipper.extern.log.log',
]
# ignore global variables not used if name is one of these values

Binary file not shown.

View File

@@ -1,9 +1,9 @@
from setuptools import setup, find_packages
from morituri import __version__ as morituri_version
from whipper import __version__ as whipper_version
setup(
name="whipper",
version=morituri_version,
version=whipper_version,
description="a secure cd ripper preferring accuracy over speed",
author=['Thomas Vander Stichele', 'Joe Lametta', 'Samantha Baldwin'],
maintainer=['Joe Lametta', 'Samantha Baldwin'],
@@ -12,7 +12,7 @@ setup(
packages=find_packages(),
entry_points={
'console_scripts': [
'whipper = morituri.command.main:main'
'whipper = whipper.command.main:main'
]
}
)

View File

@@ -1,29 +1,27 @@
# -*- Mode: Python -*-
# vi:si:et:sw=4:sts=4:ts=4
# Morituri - for those about to RIP
# Copyright (C) 2009 Thomas Vander Stichele
# This file is part of morituri.
# This file is part of whipper.
#
# morituri is free software: you can redistribute it and/or modify
# whipper is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# morituri is distributed in the hope that it will be useful,
# whipper is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with morituri. If not, see <http://www.gnu.org/licenses/>.
# along with whipper. If not, see <http://www.gnu.org/licenses/>.
import sys
from morituri.command.basecommand import BaseCommand
from morituri.common import accurip
from whipper.command.basecommand import BaseCommand
from whipper.common import accurip
import logging
logger = logging.getLogger(__name__)

View File

@@ -5,7 +5,7 @@ import argparse
import os
import sys
from morituri.common import drive
from whipper.common import drive
import logging
logger = logging.getLogger(__name__)
@@ -67,7 +67,7 @@ class BaseCommand():
if not drives:
msg = 'No CD-DA drives found!'
logger.critical(msg)
# morituri exited with return code 3 here
# whipper exited with return code 3 here
raise IOError(msg)
self.parser.add_argument('-d', '--device',
action="store",

View File

@@ -1,24 +1,22 @@
# -*- Mode: Python -*-
# vi:si:et:sw=4:sts=4:ts=4
# Morituri - for those about to RIP
# Copyright (C) 2009 Thomas Vander Stichele
# This file is part of morituri.
# This file is part of whipper.
#
# morituri is free software: you can redistribute it and/or modify
# whipper is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# morituri is distributed in the hope that it will be useful,
# whipper is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with morituri. If not, see <http://www.gnu.org/licenses/>.
# along with whipper. If not, see <http://www.gnu.org/licenses/>.
import argparse
import os
@@ -30,12 +28,12 @@ import sys
import gobject
gobject.threads_init()
from morituri.command.basecommand import BaseCommand
from morituri.common import (
from whipper.command.basecommand import BaseCommand
from whipper.common import (
accurip, common, config, drive, program, task
)
from morituri.program import cdrdao, cdparanoia, utils
from morituri.result import result
from whipper.program import cdrdao, cdparanoia, utils
from whipper.result import result
import logging
logger = logging.getLogger(__name__)
@@ -225,7 +223,7 @@ class Info(_CD):
class Rip(_CD):
summary = "rip CD"
# see morituri.common.program.Program.getPath for expansion
# see whipper.common.program.Program.getPath for expansion
description = """
Rips a CD.
@@ -257,7 +255,7 @@ Log files will log the path to tracks relative to this directory.
_CD.add_arguments(self.parser)
self.parser.add_argument('-L', '--logger',
action="store", dest="logger", default='morituri',
action="store", dest="logger", default='whipper',
help="logger to use (choose from '" + "', '".join(loggers) + "')")
# FIXME: get from config
self.parser.add_argument('-o', '--offset',
@@ -274,7 +272,7 @@ Log files will log the path to tracks relative to this directory.
help="output directory; will be included in file paths in log")
self.parser.add_argument('-W', '--working-directory',
action="store", dest="working_directory",
help="working directory; morituri will change to this directory "
help="working directory; whipper will change to this directory "
"and files will be created relative to it when not absolute")
self.parser.add_argument('--track-template',
action="store", dest="track_template",

View File

@@ -1,31 +1,29 @@
# -*- Mode: Python -*-
# vi:si:et:sw=4:sts=4:ts=4
# Morituri - for those about to RIP
# Copyright (C) 2009 Thomas Vander Stichele
# This file is part of morituri.
# This file is part of whipper.
#
# morituri is free software: you can redistribute it and/or modify
# whipper is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# morituri is distributed in the hope that it will be useful,
# whipper is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with morituri. If not, see <http://www.gnu.org/licenses/>.
# along with whipper. If not, see <http://www.gnu.org/licenses/>.
import argparse
import sys
from morituri.command.basecommand import BaseCommand
from morituri.common import cache, task
from morituri.result import result
from whipper.command.basecommand import BaseCommand
from whipper.common import cache, task
from whipper.result import result
import logging
logger = logging.getLogger(__name__)
@@ -89,7 +87,7 @@ class RCLog(BaseCommand):
self.parser.add_argument(
'-L', '--logger',
action="store", dest="logger",
default='morituri',
default='whipper',
help="logger to use (choose from '" + "', '".join(loggers) + "')"
)
@@ -136,7 +134,7 @@ class Checksum(BaseCommand):
def do(self):
runner = task.SyncRunner()
# here to avoid import gst eating our options
from morituri.common import checksum
from whipper.common import checksum
for f in self.options.files:
fromPath = unicode(f)
@@ -151,7 +149,7 @@ class Encode(BaseCommand):
def add_arguments(self):
# here to avoid import gst eating our options
from morituri.common import encode
from whipper.common import encode
self.parser.add_argument('input', action='store',
help="audio file to encode")
@@ -159,7 +157,7 @@ class Encode(BaseCommand):
help="output path")
def do(self):
from morituri.common import encode
from whipper.common import encode
try:
fromPath = unicode(self.options.input)
@@ -209,7 +207,7 @@ class Tag(BaseCommand):
runner = task.SyncRunner()
from morituri.common import encode
from whipper.common import encode
logger.debug('Reading tags from %s' % path.encode('utf-8'))
tagtask = encode.TagReadTask(path)
@@ -238,7 +236,7 @@ Example disc id: KnpGsLhvH.lPrNc1PBL21lb9Bg4-"""
sys.stdout.write('Please specify a MusicBrainz disc id.\n')
return 3
from morituri.common import mbngs
from whipper.common import mbngs
metadatas = mbngs.musicbrainz(discId, record=self.options.record)
sys.stdout.write('%d releases\n' % len(metadatas))
@@ -265,7 +263,7 @@ class CDParanoia(BaseCommand):
description = summary
def do(self):
from morituri.program import cdparanoia
from whipper.program import cdparanoia
version = cdparanoia.getCdParanoiaVersion()
sys.stdout.write("cdparanoia version: %s\n" % version)
@@ -275,7 +273,7 @@ class CDRDAO(BaseCommand):
description = summary
def do(self):
from morituri.program import cdrdao
from whipper.program import cdrdao
version = cdrdao.getCDRDAOVersion()
sys.stdout.write("cdrdao version: %s\n" % version)

View File

@@ -1,31 +1,29 @@
# -*- Mode: Python -*-
# vi:si:et:sw=4:sts=4:ts=4
# Morituri - for those about to RIP
# Copyright (C) 2009 Thomas Vander Stichele
# This file is part of morituri.
# This file is part of whipper.
#
# morituri is free software: you can redistribute it and/or modify
# whipper is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# morituri is distributed in the hope that it will be useful,
# whipper is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with morituri. If not, see <http://www.gnu.org/licenses/>.
# along with whipper. If not, see <http://www.gnu.org/licenses/>.
import sys
from morituri.command.basecommand import BaseCommand
from morituri.common import config, drive
from morituri.extern.task import task
from morituri.program import cdparanoia
from whipper.command.basecommand import BaseCommand
from whipper.common import config, drive
from whipper.extern.task import task
from whipper.program import cdparanoia
import logging
logger = logging.getLogger(__name__)

View File

@@ -1,34 +1,32 @@
# -*- Mode: Python -*-
# vi:si:et:sw=4:sts=4:ts=4
# Morituri - for those about to RIP
# Copyright (C) 2009 Thomas Vander Stichele
# This file is part of morituri.
# This file is part of whipper.
#
# morituri is free software: you can redistribute it and/or modify
# whipper is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# morituri is distributed in the hope that it will be useful,
# whipper is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with morituri. If not, see <http://www.gnu.org/licenses/>.
# along with whipper. If not, see <http://www.gnu.org/licenses/>.
import os
import sys
from morituri.command.basecommand import BaseCommand
from morituri.common import accurip, config, program
from morituri.common import encode
from morituri.extern.task import task
from morituri.image import image
from morituri.result import result
from whipper.command.basecommand import BaseCommand
from whipper.common import accurip, config, program
from whipper.common import encode
from whipper.extern.task import task
from whipper.image import image
from whipper.result import result
import logging
logger = logging.getLogger(__name__)

View File

@@ -6,20 +6,20 @@ import sys
import pkg_resources
import musicbrainzngs
import morituri
import whipper
from morituri.command import cd, offset, drive, image, accurip, debug
from morituri.command.basecommand import BaseCommand
from morituri.common import common, directory
from morituri.extern.task import task
from morituri.program.utils import eject_device
from whipper.command import cd, offset, drive, image, accurip, debug
from whipper.command.basecommand import BaseCommand
from whipper.common import common, directory
from whipper.extern.task import task
from whipper.program.utils import eject_device
import logging
logger = logging.getLogger(__name__)
def main():
# set user agent
musicbrainzngs.set_useragent("whipper", morituri.__version__,
musicbrainzngs.set_useragent("whipper", whipper.__version__,
"https://github.com/JoeLametta/whipper")
# register plugins with pkg_resources
distributions, _ = pkg_resources.working_set.find_plugins(
@@ -92,5 +92,5 @@ You can get help on subcommands by using the -h option to the subcommand.
self.parser.print_help()
sys.exit(0)
if self.options.version:
print "whipper %s" % morituri.__version__
print "whipper %s" % whipper.__version__
sys.exit(0)

View File

@@ -1,24 +1,22 @@
# -*- Mode: Python -*-
# vi:si:et:sw=4:sts=4:ts=4
# Morituri - for those about to RIP
# Copyright (C) 2009 Thomas Vander Stichele
# This file is part of morituri.
# This file is part of whipper.
#
# morituri is free software: you can redistribute it and/or modify
# whipper is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# morituri is distributed in the hope that it will be useful,
# whipper is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with morituri. If not, see <http://www.gnu.org/licenses/>.
# along with whipper. If not, see <http://www.gnu.org/licenses/>.
import argparse
import os
@@ -28,13 +26,13 @@ import tempfile
import gobject
gobject.threads_init()
from morituri.command.basecommand import BaseCommand
from morituri.common import accurip, common, config, drive, program
from morituri.common import task as ctask
from morituri.program import cdrdao, cdparanoia, utils
from morituri.common import checksum
from whipper.command.basecommand import BaseCommand
from whipper.common import accurip, common, config, drive, program
from whipper.common import task as ctask
from whipper.program import cdrdao, cdparanoia, utils
from whipper.common import checksum
from morituri.extern.task import task
from whipper.extern.task import task
import logging
logger = logging.getLogger(__name__)
@@ -198,7 +196,7 @@ CD in the AccurateRip database."""
logger.debug('Ripping track %r with offset %d ...', track, offset)
fd, path = tempfile.mkstemp(
suffix=u'.track%02d.offset%d.morituri.wav' % (
suffix=u'.track%02d.offset%d.whipper.wav' % (
track, offset))
os.close(fd)

View File

@@ -1,24 +1,22 @@
# -*- Mode: Python; test-case-name: morituri.test.test_common_accurip -*-
# -*- Mode: Python; test-case-name: whipper.test.test_common_accurip -*-
# vi:si:et:sw=4:sts=4:ts=4
# Morituri - for those about to RIP
# Copyright (C) 2009 Thomas Vander Stichele
# This file is part of morituri.
# This file is part of whipper.
#
# morituri is free software: you can redistribute it and/or modify
# whipper is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# morituri is distributed in the hope that it will be useful,
# whipper is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with morituri. If not, see <http://www.gnu.org/licenses/>.
# along with whipper. If not, see <http://www.gnu.org/licenses/>.
import errno
import os
@@ -26,7 +24,7 @@ import struct
import urlparse
import urllib2
from morituri.common import directory
from whipper.common import directory
import logging
logger = logging.getLogger(__name__)

View File

@@ -1,24 +1,22 @@
# -*- Mode: Python; test-case-name: morituri.test.test_common_cache -*-
# -*- Mode: Python; test-case-name: whipper.test.test_common_cache -*-
# vi:si:et:sw=4:sts=4:ts=4
# Morituri - for those about to RIP
# Copyright (C) 2009 Thomas Vander Stichele
# This file is part of morituri.
# This file is part of whipper.
#
# morituri is free software: you can redistribute it and/or modify
# whipper is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# morituri is distributed in the hope that it will be useful,
# whipper is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with morituri. If not, see <http://www.gnu.org/licenses/>.
# along with whipper. If not, see <http://www.gnu.org/licenses/>.
import os
import os.path
@@ -26,8 +24,8 @@ import glob
import tempfile
import shutil
from morituri.result import result
from morituri.common import directory
from whipper.result import result
from whipper.common import directory
import logging
logger = logging.getLogger(__name__)
@@ -81,7 +79,7 @@ class Persister:
# pickle
self.object = obj
(fd, path) = tempfile.mkstemp(suffix='.morituri.pickle')
(fd, path) = tempfile.mkstemp(suffix='.whipper.pickle')
handle = os.fdopen(fd, 'wb')
import pickle
pickle.dump(obj, handle, 2)

View File

@@ -1,32 +1,30 @@
# -*- Mode: Python; test-case-name: morituri.test.test_common_checksum -*-
# -*- Mode: Python; test-case-name: whipper.test.test_common_checksum -*-
# vi:si:et:sw=4:sts=4:ts=4
# Morituri - for those about to RIP
# Copyright (C) 2009 Thomas Vander Stichele
# This file is part of morituri.
# This file is part of whipper.
#
# morituri is free software: you can redistribute it and/or modify
# whipper is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# morituri is distributed in the hope that it will be useful,
# whipper is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with morituri. If not, see <http://www.gnu.org/licenses/>.
# along with whipper. If not, see <http://www.gnu.org/licenses/>.
import binascii
import wave
from morituri.extern.task import task as etask
from whipper.extern.task import task as etask
from morituri.program.arc import accuraterip_checksum
from whipper.program.arc import accuraterip_checksum
import logging
logger = logging.getLogger(__name__)

View File

@@ -1,24 +1,22 @@
# -*- Mode: Python; test-case-name: morituri.test.test_common_common -*-
# -*- Mode: Python; test-case-name: whipper.test.test_common_common -*-
# vi:si:et:sw=4:sts=4:ts=4
# Morituri - for those about to RIP
# Copyright (C) 2009 Thomas Vander Stichele
# This file is part of morituri.
# This file is part of whipper.
#
# morituri is free software: you can redistribute it and/or modify
# whipper is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# morituri is distributed in the hope that it will be useful,
# whipper is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with morituri. If not, see <http://www.gnu.org/licenses/>.
# along with whipper. If not, see <http://www.gnu.org/licenses/>.
import os
@@ -27,7 +25,7 @@ import commands
import math
import subprocess
from morituri.extern import asyncsub
from whipper.extern import asyncsub
import logging
logger = logging.getLogger(__name__)

View File

@@ -1,24 +1,22 @@
# -*- Mode: Python; test-case-name: morituri.test.test_common_config -*-
# -*- Mode: Python; test-case-name: whipper.test.test_common_config -*-
# vi:si:et:sw=4:sts=4:ts=4
# Morituri - for those about to RIP
# Copyright (C) 2009 Thomas Vander Stichele
# This file is part of morituri.
# This file is part of whipper.
#
# morituri is free software: you can redistribute it and/or modify
# whipper is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# morituri is distributed in the hope that it will be useful,
# whipper is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with morituri. If not, see <http://www.gnu.org/licenses/>.
# along with whipper. If not, see <http://www.gnu.org/licenses/>.
import ConfigParser
import codecs
@@ -27,7 +25,7 @@ import shutil
import tempfile
import urllib
from morituri.common import directory
from whipper.common import directory
import logging
logger = logging.getLogger(__name__)
@@ -51,7 +49,7 @@ class Config:
len(self._parser.sections()))
def write(self):
fd, path = tempfile.mkstemp(suffix=u'.moriturirc')
fd, path = tempfile.mkstemp(suffix=u'.whipperrc')
handle = os.fdopen(fd, 'w')
self._parser.write(handle)
handle.close()

View File

@@ -1,24 +1,22 @@
# -*- Mode: Python; test-case-name: morituri.test.test_common_directory -*-
# -*- Mode: Python; test-case-name: whipper.test.test_common_directory -*-
# vi:si:et:sw=4:sts=4:ts=4
# Morituri - for those about to RIP
# Copyright (C) 2013 Thomas Vander Stichele
# This file is part of morituri.
# This file is part of whipper.
#
# morituri is free software: you can redistribute it and/or modify
# whipper is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# morituri is distributed in the hope that it will be useful,
# whipper is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with morituri. If not, see <http://www.gnu.org/licenses/>.
# along with whipper. If not, see <http://www.gnu.org/licenses/>.
from os import getenv, makedirs
from os.path import join, expanduser, exists

View File

@@ -1,24 +1,22 @@
# -*- Mode: Python; test-case-name: morituri.test.test_common_drive -*-
# -*- Mode: Python; test-case-name: whipper.test.test_common_drive -*-
# vi:si:et:sw=4:sts=4:ts=4
# Morituri - for those about to RIP
# Copyright (C) 2009 Thomas Vander Stichele
# This file is part of morituri.
# This file is part of whipper.
#
# morituri is free software: you can redistribute it and/or modify
# whipper is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# morituri is distributed in the hope that it will be useful,
# whipper is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with morituri. If not, see <http://www.gnu.org/licenses/>.
# along with whipper. If not, see <http://www.gnu.org/licenses/>.
import os

View File

@@ -1,32 +1,30 @@
# -*- Mode: Python; test-case-name: morituri.test.test_common_encode -*-
# -*- Mode: Python; test-case-name: whipper.test.test_common_encode -*-
# vi:si:et:sw=4:sts=4:ts=4
# Morituri - for those about to RIP
# Copyright (C) 2009 Thomas Vander Stichele
# This file is part of morituri.
# This file is part of whipper.
#
# morituri is free software: you can redistribute it and/or modify
# whipper is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# morituri is distributed in the hope that it will be useful,
# whipper is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with morituri. If not, see <http://www.gnu.org/licenses/>.
# along with whipper. If not, see <http://www.gnu.org/licenses/>.
from mutagen.flac import FLAC
from morituri.extern.task import task
from whipper.extern.task import task
from morituri.program import sox
from morituri.program import flac
from whipper.program import sox
from whipper.program import flac
import logging
logger = logging.getLogger(__name__)
@@ -65,7 +63,7 @@ class FlacEncodeTask(task.Task):
# TODO: Wizzup: Do we really want this as 'Task'...?
# I only made it a task for now because that it's easier to integrate in
# program/cdparanoia.py - where morituri currently does the tagging.
# program/cdparanoia.py - where whipper currently does the tagging.
# We should just move the tagging to a more sensible place.
class TaggingTask(task.Task):
description = 'Writing tags to FLAC'

View File

@@ -1,24 +1,22 @@
# -*- Mode: Python; test-case-name: morituri.test.test_common_mbngs -*-
# -*- Mode: Python; test-case-name: whipper.test.test_common_mbngs -*-
# vi:si:et:sw=4:sts=4:ts=4
# Morituri - for those about to RIP
# Copyright (C) 2009, 2010, 2011 Thomas Vander Stichele
# This file is part of morituri.
# This file is part of whipper.
#
# morituri is free software: you can redistribute it and/or modify
# whipper is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# morituri is distributed in the hope that it will be useful,
# whipper is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with morituri. If not, see <http://www.gnu.org/licenses/>.
# along with whipper. If not, see <http://www.gnu.org/licenses/>.
"""
Handles communication with the musicbrainz server using NGS.
@@ -90,7 +88,7 @@ def _record(record, which, name, what):
# optionally record to disc as a JSON serialization
if record:
import json
filename = 'morituri.%s.%s.json' % (which, name)
filename = 'whipper.%s.%s.json' % (which, name)
handle = open(filename, 'w')
handle.write(json.dumps(what))
handle.close()

View File

@@ -1,24 +1,22 @@
# -*- Mode: Python; test-case-name: morituri.test.test_common_path -*-
# -*- Mode: Python; test-case-name: whipper.test.test_common_path -*-
# vi:si:et:sw=4:sts=4:ts=4
# Morituri - for those about to RIP
# Copyright (C) 2009 Thomas Vander Stichele
# This file is part of morituri.
# This file is part of whipper.
#
# morituri is free software: you can redistribute it and/or modify
# whipper is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# morituri is distributed in the hope that it will be useful,
# whipper is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with morituri. If not, see <http://www.gnu.org/licenses/>.
# along with whipper. If not, see <http://www.gnu.org/licenses/>.
import re

View File

@@ -1,27 +1,25 @@
# -*- Mode: Python; test-case-name: morituri.test.test_common_program -*-
# -*- Mode: Python; test-case-name: whipper.test.test_common_program -*-
# vi:si:et:sw=4:sts=4:ts=4
# Morituri - for those about to RIP
# Copyright (C) 2009, 2010, 2011 Thomas Vander Stichele
# This file is part of morituri.
# This file is part of whipper.
#
# morituri is free software: you can redistribute it and/or modify
# whipper is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# morituri is distributed in the hope that it will be useful,
# whipper is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with morituri. If not, see <http://www.gnu.org/licenses/>.
# along with whipper. If not, see <http://www.gnu.org/licenses/>.
"""
Common functionality and class for all programs using morituri.
Common functionality and class for all programs using whipper.
"""
import musicbrainzngs
@@ -29,11 +27,11 @@ import os
import sys
import time
from morituri.common import common, mbngs, cache, path
from morituri.common import checksum
from morituri.program import cdrdao, cdparanoia
from morituri.image import image
from morituri.extern.task import task
from whipper.common import common, mbngs, cache, path
from whipper.common import checksum
from whipper.program import cdrdao, cdparanoia
from whipper.image import image
from whipper.extern.task import task
import logging
logger = logging.getLogger(__name__)
@@ -51,7 +49,7 @@ class Program:
@ivar result: the rip's result
@type result: L{result.RipResult}
@type outdir: unicode
@type config: L{morituri.common.config.Config}
@type config: L{whipper.common.config.Config}
"""
cuePath = None
@@ -286,7 +284,7 @@ class Program:
def getMusicBrainz(self, ittoc, mbdiscid, release=None, country=None, prompt=False):
"""
@type ittoc: L{morituri.image.table.Table}
@type ittoc: L{whipper.image.table.Table}
"""
# look up disc on musicbrainz
self._stdout.write('Disc duration: %s, %d audio tracks\n' % (

View File

@@ -1,24 +1,22 @@
# -*- Mode: Python; test-case-name: morituri.test.test_common_renamer -*-
# -*- Mode: Python; test-case-name: whipper.test.test_common_renamer -*-
# vi:si:et:sw=4:sts=4:ts=4
# Morituri - for those about to RIP
# Copyright (C) 2009 Thomas Vander Stichele
# This file is part of morituri.
# This file is part of whipper.
#
# morituri is free software: you can redistribute it and/or modify
# whipper is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# morituri is distributed in the hope that it will be useful,
# whipper is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with morituri. If not, see <http://www.gnu.org/licenses/>.
# along with whipper. If not, see <http://www.gnu.org/licenses/>.
import os
import tempfile
@@ -201,7 +199,7 @@ class RenameInFile(Operation):
def do(self):
with open(self._path) as handle:
(fd, name) = tempfile.mkstemp(suffix='.morituri')
(fd, name) = tempfile.mkstemp(suffix='.whipper')
for s in handle:
os.write(fd, s.replace(self._source, self._destination))

View File

@@ -5,8 +5,8 @@ import os
import signal
import subprocess
from morituri.extern import asyncsub
from morituri.extern.task import task
from whipper.extern import asyncsub
from whipper.extern.task import task
import logging
logger = logging.getLogger(__name__)

View File

@@ -1,24 +1,22 @@
# -*- Mode: Python -*-
# vi:si:et:sw=4:sts=4:ts=4
# Morituri - for those about to RIP
# Copyright (C) 2009 Thomas Vander Stichele
# This file is part of morituri.
# This file is part of whipper.
#
# morituri is free software: you can redistribute it and/or modify
# whipper is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# morituri is distributed in the hope that it will be useful,
# whipper is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with morituri. If not, see <http://www.gnu.org/licenses/>.
# along with whipper. If not, see <http://www.gnu.org/licenses/>.
import sys

View File

@@ -1,24 +1,22 @@
# -*- Mode: Python; test-case-name: morituri.test.test_image_cue -*-
# -*- Mode: Python; test-case-name: whipper.test.test_image_cue -*-
# vi:si:et:sw=4:sts=4:ts=4
# Morituri - for those about to RIP
# Copyright (C) 2009 Thomas Vander Stichele
# This file is part of morituri.
# This file is part of whipper.
#
# morituri is free software: you can redistribute it and/or modify
# whipper is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# morituri is distributed in the hope that it will be useful,
# whipper is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with morituri. If not, see <http://www.gnu.org/licenses/>.
# along with whipper. If not, see <http://www.gnu.org/licenses/>.
"""
Reading .cue files
@@ -29,8 +27,8 @@ See http://digitalx.org/cuesheetsyntax.php
import re
import codecs
from morituri.common import common
from morituri.image import table
from whipper.common import common
from whipper.image import table
import logging
logger = logging.getLogger(__name__)

View File

@@ -1,24 +1,22 @@
# -*- Mode: Python; test-case-name: morituri.test.test_image_image -*-
# -*- Mode: Python; test-case-name: whipper.test.test_image_image -*-
# vi:si:et:sw=4:sts=4:ts=4
# Morituri - for those about to RIP
# Copyright (C) 2009 Thomas Vander Stichele
# This file is part of morituri.
# This file is part of whipper.
#
# morituri is free software: you can redistribute it and/or modify
# whipper is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# morituri is distributed in the hope that it will be useful,
# whipper is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with morituri. If not, see <http://www.gnu.org/licenses/>.
# along with whipper. If not, see <http://www.gnu.org/licenses/>.
"""
Wrap on-disk CD images based on the .cue file.
@@ -26,12 +24,12 @@ Wrap on-disk CD images based on the .cue file.
import os
from morituri.common import encode
from morituri.common import common
from morituri.common import checksum
from morituri.image import cue, table
from morituri.extern.task import task
from morituri.program.soxi import AudioLengthTask
from whipper.common import encode
from whipper.common import common
from whipper.common import checksum
from whipper.image import cue, table
from whipper.extern.task import task
from whipper.program.soxi import AudioLengthTask
import logging
logger = logging.getLogger(__name__)

View File

@@ -1,24 +1,22 @@
# -*- Mode: Python; test-case-name: morituri.test.test_image_table -*-
# -*- Mode: Python; test-case-name: whipper.test.test_image_table -*-
# vi:si:et:sw=4:sts=4:ts=4
# Morituri - for those about to RIP
# Copyright (C) 2009 Thomas Vander Stichele
# This file is part of morituri.
# This file is part of whipper.
#
# morituri is free software: you can redistribute it and/or modify
# whipper is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# morituri is distributed in the hope that it will be useful,
# whipper is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with morituri. If not, see <http://www.gnu.org/licenses/>.
# along with whipper. If not, see <http://www.gnu.org/licenses/>.
"""
Wrap Table of Contents.
@@ -28,9 +26,9 @@ import copy
import urllib
import urlparse
import morituri
import whipper
from morituri.common import common
from whipper.common import common
import logging
logger = logging.getLogger(__name__)
@@ -527,7 +525,7 @@ class Table(object):
discId1[-1], discId1[-2], discId1[-3],
self.getAudioTracks(), discId1, discId2, self.getCDDBDiscId())
def cue(self, cuePath='', program='morituri'):
def cue(self, cuePath='', program='whipper'):
"""
@param cuePath: path to the cue file to be written. If empty,
will treat paths as if in current directory.
@@ -556,7 +554,7 @@ class Table(object):
assert self.hasTOC(), "Table does not represent a full CD TOC"
lines.append('REM DISCID %s' % self.getCDDBDiscId().upper())
lines.append('REM COMMENT "%s %s"' % (program, morituri.__version__))
lines.append('REM COMMENT "%s %s"' % (program, whipper.__version__))
if self.catalog:
lines.append("CATALOG %s" % self.catalog)

View File

@@ -1,24 +1,22 @@
# -*- Mode: Python; test-case-name: morituri.test.test_image_toc -*-
# -*- Mode: Python; test-case-name: whipper.test.test_image_toc -*-
# vi:si:et:sw=4:sts=4:ts=4
# Morituri - for those about to RIP
# Copyright (C) 2009 Thomas Vander Stichele
# This file is part of morituri.
# This file is part of whipper.
#
# morituri is free software: you can redistribute it and/or modify
# whipper is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# morituri is distributed in the hope that it will be useful,
# whipper is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with morituri. If not, see <http://www.gnu.org/licenses/>.
# along with whipper. If not, see <http://www.gnu.org/licenses/>.
"""
Reading .toc files
@@ -29,8 +27,8 @@ The .toc file format is described in the man page of cdrdao
import re
import codecs
from morituri.common import common
from morituri.image import table
from whipper.common import common
from whipper.image import table
import logging
logger = logging.getLogger(__name__)

View File

@@ -1,24 +1,22 @@
# -*- Mode: Python; test-case-name: morituri.test.test_program_cdparanoia -*-
# -*- Mode: Python; test-case-name: whipper.test.test_program_cdparanoia -*-
# vi:si:et:sw=4:sts=4:ts=4
# Morituri - for those about to RIP
# Copyright (C) 2009 Thomas Vander Stichele
# This file is part of morituri.
# This file is part of whipper.
#
# morituri is free software: you can redistribute it and/or modify
# whipper is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# morituri is distributed in the hope that it will be useful,
# whipper is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with morituri. If not, see <http://www.gnu.org/licenses/>.
# along with whipper. If not, see <http://www.gnu.org/licenses/>.
import errno
import os
@@ -29,10 +27,10 @@ import subprocess
import tempfile
import time
from morituri.common import common
from morituri.common import task as ctask
from morituri.extern import asyncsub
from morituri.extern.task import task
from whipper.common import common
from whipper.common import task as ctask
from whipper.extern import asyncsub
from whipper.extern.task import task
import logging
logger = logging.getLogger(__name__)
@@ -454,12 +452,12 @@ class ReadVerifyTrackTask(task.MultiSeparateTask):
if taglist:
logger.debug('read and verify with taglist %r', taglist)
# FIXME: choose a dir on the same disk/dir as the final path
fd, tmppath = tempfile.mkstemp(suffix='.morituri.wav')
fd, tmppath = tempfile.mkstemp(suffix='.whipper.wav')
tmppath = unicode(tmppath)
os.close(fd)
self._tmpwavpath = tmppath
from morituri.common import checksum
from whipper.common import checksum
self.tasks = []
self.tasks.append(
@@ -484,7 +482,7 @@ class ReadVerifyTrackTask(task.MultiSeparateTask):
self._tmppath = tmpoutpath
self.path = path
from morituri.common import encode
from whipper.common import encode
self.tasks.append(encode.FlacEncodeTask(tmppath, tmpoutpath))
@@ -581,7 +579,7 @@ class AnalyzeTask(ctask.PopenTask):
def __init__(self, device=None):
# cdparanoia -A *always* writes cdparanoia.log
self.cwd = tempfile.mkdtemp(suffix='.morituri.cache')
self.cwd = tempfile.mkdtemp(suffix='.whipper.cache')
self.command = ['cdparanoia', '-A']
if device:
self.command += ['-d', device]

View File

@@ -3,8 +3,8 @@ import re
import tempfile
from subprocess import Popen, PIPE
from morituri.common.common import EjectError
from morituri.image.toc import TocFile
from whipper.common.common import EjectError
from whipper.image.toc import TocFile
import logging
logger = logging.getLogger(__name__)

View File

@@ -6,7 +6,7 @@ logger = logging.getLogger(__name__)
def encode(infile, outfile):
"""
Encodes infile to outfile, with flac.
Uses '-f' because morituri already creates the file.
Uses '-f' because whipper already creates the file.
"""
try:
# TODO: Replace with Popen so that we can catch stderr and write it to

View File

@@ -1,7 +1,7 @@
import os
from morituri.common import common
from morituri.common import task as ctask
from whipper.common import common
from whipper.common import task as ctask
import logging
logger = logging.getLogger(__name__)

View File

@@ -1,13 +1,13 @@
import time
import hashlib
import morituri
import whipper
from morituri.common import common
from morituri.result import result
from whipper.common import common
from whipper.result import result
class MorituriLogger(result.Logger):
class WhipperLogger(result.Logger):
_accuratelyRipped = 0
_inARDatabase = 0
@@ -26,7 +26,7 @@ class MorituriLogger(result.Logger):
# Ripper version
lines.append("Log created by: whipper %s (internal logger)" %
morituri.__version__)
whipper.__version__)
# Rip date
date = time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime(epoch)).strip()

View File

@@ -1,24 +1,22 @@
# -*- Mode: Python; test-case-name: morituri.test.test_result_result -*-
# -*- Mode: Python; test-case-name: whipper.test.test_result_result -*-
# vi:si:et:sw=4:sts=4:ts=4
# Morituri - for those about to RIP
# Copyright (C) 2009 Thomas Vander Stichele
# This file is part of morituri.
# This file is part of whipper.
#
# morituri is free software: you can redistribute it and/or modify
# whipper is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# morituri is distributed in the hope that it will be useful,
# whipper is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with morituri. If not, see <http://www.gnu.org/licenses/>.
# along with whipper. If not, see <http://www.gnu.org/licenses/>.
import pkg_resources
import time
@@ -83,7 +81,7 @@ class RipResult:
@ivar offset: sample read offset
@ivar table: the full index table
@type table: L{morituri.image.table.Table}
@type table: L{whipper.image.table.Table}
@ivar vendor: vendor of the CD drive
@ivar model: model of the CD drive
@@ -149,22 +147,22 @@ class Logger(object):
class EntryPoint(object):
name = 'morituri'
name = 'whipper'
def load(self):
from morituri.result import logger
return logger.MorituriLogger
from whipper.result import logger
return logger.WhipperLogger
def getLoggers():
"""
Get all logger plugins with entry point 'morituri.logger'.
Get all logger plugins with entry point 'whipper.logger'.
@rtype: dict of C{str} -> C{Logger}
"""
d = {}
pluggables = list(pkg_resources.iter_entry_points("morituri.logger"))
pluggables = list(pkg_resources.iter_entry_points("whipper.logger"))
for entrypoint in [EntryPoint(), ] + pluggables:
plugin_class = entrypoint.load()
d[entrypoint.name] = plugin_class

View File

@@ -1,5 +1,5 @@
REM DISCID AD0BE00D
REM COMMENT "morituri 0.5.1"
REM COMMENT "whipper 0.5.1"
FILE "data.wav" WAVE
TRACK 01 AUDIO
PREGAP 03:22:70

View File

@@ -1,5 +1,5 @@
REM DISCID BE08990D
REM COMMENT "morituri 0.5.1"
REM COMMENT "whipper 0.5.1"
CATALOG 0652637280326
PERFORMER "THE BREEDERS"
TITLE "MOUNTAIN BATTLES"

View File

@@ -0,0 +1,903 @@
(iwhipper.result.result
RipResult
p1
(dp2
S'vendor'
p3
S'PLEXTOR '
p4
sS'artist'
p5
S"Destiny's Child"
p6
sS'title'
p7
S"The Writing's on the Wall"
p8
sS'tracks'
p9
(lp10
(iwhipper.result.result
TrackResult
p11
(dp12
S'testcrc'
p13
I938873735
sS'quality'
p14
F1
sS'number'
p15
I1
sS'filename'
p16
Vwhipper/Destiny's Child - The Writing's on the Wall/01. Destiny's Child - Intro (The Writing's on the Wall).flac
p17
sS'peak'
p18
F0.988555908203125
sS'pregap'
p19
I0
sS'copycrc'
p20
I938873735
sba(iwhipper.result.result
TrackResult
p21
(dp22
g13
I764981533
sg14
F1
sg15
I2
sg16
Vwhipper/Destiny's Child - The Writing's on the Wall/02. Destiny's Child - So Good.flac
p23
sg18
F0.988555908203125
sg19
I0
sg20
I764981533
sba(iwhipper.result.result
TrackResult
p24
(dp25
g13
I4263524715
sg14
F1
sg15
I3
sg16
Vwhipper/Destiny's Child - The Writing's on the Wall/03. Destiny's Child - Bills, Bills, Bills.flac
p26
sg18
F0.988555908203125
sg19
I0
sg20
I4263524715
sba(iwhipper.result.result
TrackResult
p27
(dp28
g13
I30436888
sg14
F1
sg15
I4
sg16
Vwhipper/Destiny's Child - The Writing's on the Wall/04. Destiny's Child - Confessions (feat. Missy Elliott).flac
p29
sg18
F0.9322509765625
sg19
I0
sg20
I30436888
sba(iwhipper.result.result
TrackResult
p30
(dp31
g13
I1780180644
sg14
F1
sg15
I5
sg16
Vwhipper/Destiny's Child - The Writing's on the Wall/05. Destiny's Child - Bug a Boo.flac
p32
sg18
F0.988555908203125
sg19
I0
sg20
I1780180644
sba(iwhipper.result.result
TrackResult
p33
(dp34
g13
I2209417071
sg14
F1
sg15
I6
sg16
Vwhipper/Destiny's Child - The Writing's on the Wall/06. Destiny's Child - Temptation.flac
p35
sg18
F0.988555908203125
sg19
I0
sg20
I2209417071
sba(iwhipper.result.result
TrackResult
p36
(dp37
g13
I3797794701
sg14
F1
sg15
I7
sg16
Vwhipper/Destiny's Child - The Writing's on the Wall/07. Destiny's Child - Now That She's Gone.flac
p38
sg18
F0.98748779296875
sg19
I0
sg20
I3797794701
sba(iwhipper.result.result
TrackResult
p39
(dp40
g13
I3950896430
sg14
F1
sg15
I8
sg16
Vwhipper/Destiny's Child - The Writing's on the Wall/08. Destiny's Child - Where'd You Go.flac
p41
sg18
F0.987518310546875
sg19
I0
sg20
I3950896430
sba(iwhipper.result.result
TrackResult
p42
(dp43
g13
I1794899732
sg14
F1
sg15
I9
sg16
Vwhipper/Destiny's Child - The Writing's on the Wall/09. Destiny's Child - Hey Ladies.flac
p44
sg18
F0.98748779296875
sg19
I0
sg20
I1794899732
sba(iwhipper.result.result
TrackResult
p45
(dp46
g13
I1955082442
sg14
F1
sg15
I10
sg16
Vwhipper/Destiny's Child - The Writing's on the Wall/10. Destiny's Child - If You Leave (feat. Next).flac
p47
sg18
F0.987518310546875
sg19
I0
sg20
I1955082442
sba(iwhipper.result.result
TrackResult
p48
(dp49
g13
I1068452097
sg14
F1
sg15
I11
sg16
Vwhipper/Destiny's Child - The Writing's on the Wall/11. Destiny's Child - Jumpin', Jumpin'.flac
p50
sg18
F0.987518310546875
sg19
I0
sg20
I1068452097
sba(iwhipper.result.result
TrackResult
p51
(dp52
g13
I745616805
sg14
F1
sg15
I12
sg16
Vwhipper/Destiny's Child - The Writing's on the Wall/12. Destiny's Child - Say My Name.flac
p53
sg18
F0.98748779296875
sg19
I0
sg20
I745616805
sba(iwhipper.result.result
TrackResult
p54
(dp55
g13
I4044254516
sg14
F1
sg15
I13
sg16
Vwhipper/Destiny's Child - The Writing's on the Wall/13. Destiny's Child - She Can't Love You.flac
p56
sg18
F0.98748779296875
sg19
I0
sg20
I4044254516
sba(iwhipper.result.result
TrackResult
p57
(dp58
g13
I1397142025
sg14
F1
sg15
I14
sg16
Vwhipper/Destiny's Child - The Writing's on the Wall/14. Destiny's Child - Stay.flac
p59
sg18
F0.98748779296875
sg19
I0
sg20
I1397142025
sba(iwhipper.result.result
TrackResult
p60
(dp61
g13
I379991554
sg14
F1
sg15
I15
sg16
Vwhipper/Destiny's Child - The Writing's on the Wall/15. Destiny's Child - Sweet Sixteen.flac
p62
sg18
F0.98748779296875
sg19
I0
sg20
I379991554
sba(iwhipper.result.result
TrackResult
p63
(dp64
g13
I554404073
sg14
F1
sg15
I16
sg16
Vwhipper/Destiny's Child - The Writing's on the Wall/16. Destiny's Child - Outro (Amazing Grace... Dedicated to Andretta Tillman).flac
p65
sg18
F0.987396240234375
sg19
I0
sg20
I554404073
sba(iwhipper.result.result
TrackResult
p66
(dp67
g13
I1166447811
sg14
F1
sg15
I17
sg16
Vwhipper/Destiny's Child - The Writing's on the Wall/17. Destiny's Child - Get on the Bus.flac
p68
sg18
F0.988494873046875
sg19
I0
sg20
I1166447811
sbasS'offset'
p69
I48
sS'table'
p70
ccopy_reg
_reconstructor
p71
(cwhipper.image.table
Table
p72
c__builtin__
object
p73
NtRp74
(dp75
S'catalog'
p76
V5099749439429
p77
sg9
(lp78
(iwhipper.image.table
Track
p79
(dp80
S'isrc'
p81
VUSSM19901053
p82
sS'audio'
p83
I01
sg15
I1
sS'cdtext'
p84
(dp85
sS'indexes'
p86
(dp87
I1
(iwhipper.image.table
Index
p88
(dp89
S'relative'
p90
I0
sS'path'
p91
g17
sS'counter'
p92
I1
sg15
I1
sS'absolute'
p93
I0
sbssba(iwhipper.image.table
Track
p94
(dp95
g81
VUSSM19901043
p96
sg83
I01
sg15
I2
sg84
(dp97
sg86
(dp98
I1
(iwhipper.image.table
Index
p99
(dp100
g90
I0
sg91
g23
sg92
I2
sg15
I1
sg93
I9435
sbssba(iwhipper.image.table
Track
p101
(dp102
g81
VUSSM19900561
p103
sg83
I01
sg15
I3
sg84
(dp104
sg86
(dp105
I1
(iwhipper.image.table
Index
p106
(dp107
g90
I0
sg91
g26
sg92
I3
sg15
I1
sg93
I23980
sbssba(iwhipper.image.table
Track
p108
(dp109
g81
VUSSM19901050
p110
sg83
I01
sg15
I4
sg84
(dp111
sg86
(dp112
I1
(iwhipper.image.table
Index
p113
(dp114
g90
I0
sg91
g29
sg92
I4
sg15
I1
sg93
I43182
sbssba(iwhipper.image.table
Track
p115
(dp116
g81
VUSSM19901045
p117
sg83
I01
sg15
I5
sg84
(dp118
sg86
(dp119
I1
(iwhipper.image.table
Index
p120
(dp121
g90
I0
sg91
g32
sg92
I5
sg15
I1
sg93
I65482
sbssba(iwhipper.image.table
Track
p122
(dp123
g81
VUSSM19901046
p124
sg83
I01
sg15
I6
sg84
(dp125
sg86
(dp126
I1
(iwhipper.image.table
Index
p127
(dp128
g90
I0
sg91
g35
sg92
I6
sg15
I1
sg93
I81415
sbssba(iwhipper.image.table
Track
p129
(dp130
g81
VUSSM19901049
p131
sg83
I01
sg15
I7
sg84
(dp132
sg86
(dp133
I1
(iwhipper.image.table
Index
p134
(dp135
g90
I0
sg91
g38
sg92
I7
sg15
I1
sg93
I99835
sbssba(iwhipper.image.table
Track
p136
(dp137
g81
VUSSM19901048
p138
sg83
I01
sg15
I8
sg84
(dp139
sg86
(dp140
I1
(iwhipper.image.table
Index
p141
(dp142
g90
I0
sg91
g41
sg92
I8
sg15
I1
sg93
I124995
sbssba(iwhipper.image.table
Track
p143
(dp144
g81
VUSSM19901044
p145
sg83
I01
sg15
I9
sg84
(dp146
sg86
(dp147
I1
(iwhipper.image.table
Index
p148
(dp149
g90
I0
sg91
g44
sg92
I9
sg15
I1
sg93
I144140
sbssba(iwhipper.image.table
Track
p150
(dp151
g81
VUSSM19901055
p152
sg83
I01
sg15
I10
sg84
(dp153
sg86
(dp154
I1
(iwhipper.image.table
Index
p155
(dp156
g90
I0
sg91
g47
sg92
I10
sg15
I1
sg93
I163335
sbssba(iwhipper.image.table
Track
p157
(dp158
g81
VUSSM19901054
p159
sg83
I01
sg15
I11
sg84
(dp160
sg86
(dp161
I1
(iwhipper.image.table
Index
p162
(dp163
g90
I0
sg91
g50
sg92
I11
sg15
I1
sg93
I183972
sbssba(iwhipper.image.table
Track
p164
(dp165
g81
VUSSM19901056
p166
sg83
I01
sg15
I12
sg84
(dp167
sg86
(dp168
I1
(iwhipper.image.table
Index
p169
(dp170
g90
I0
sg91
g53
sg92
I12
sg15
I1
sg93
I201237
sbssba(iwhipper.image.table
Track
p171
(dp172
g81
VUSSM19901056
p173
sg83
I01
sg15
I13
sg84
(dp174
sg86
(dp175
I1
(iwhipper.image.table
Index
p176
(dp177
g90
I0
sg91
g56
sg92
I13
sg15
I1
sg93
I221587
sbssba(iwhipper.image.table
Track
p178
(dp179
g81
VUSSM19901051
p180
sg83
I01
sg15
I14
sg84
(dp181
sg86
(dp182
I1
(iwhipper.image.table
Index
p183
(dp184
g90
I0
sg91
g59
sg92
I14
sg15
I1
sg93
I239952
sbssba(iwhipper.image.table
Track
p185
(dp186
g81
VUSSM19901047
p187
sg83
I01
sg15
I15
sg84
(dp188
sg86
(dp189
I1
(iwhipper.image.table
Index
p190
(dp191
g90
I0
sg91
g62
sg92
I15
sg15
I1
sg93
I261795
sbssba(iwhipper.image.table
Track
p192
(dp193
g81
VUSSM19901052
p194
sg83
I01
sg15
I16
sg84
(dp195
sg86
(dp196
I1
(iwhipper.image.table
Index
p197
(dp198
g90
I0
sg91
g65
sg92
I16
sg15
I1
sg93
I280750
sbssba(iwhipper.image.table
Track
p199
(dp200
g83
I01
sg15
I17
sg84
(dp201
sg86
(dp202
I1
(iwhipper.image.table
Index
p203
(dp204
g90
I0
sg91
g68
sg92
I17
sg15
I1
sg93
I292627
sbssbasS'logName'
p205
S'Table 0x023B9D90'
p206
sg84
(dp207
sS'instanceVersion'
p208
I2
sS'leadout'
p209
I313955
sbsS'model'
p210
S'DVDR PX-810SA '
p211
sb.

View File

@@ -5,7 +5,7 @@ import re
import os
import sys
import morituri
import whipper
# twisted's unittests have skip support, standard unittest don't
from twisted.trial import unittest
@@ -70,8 +70,8 @@ class TestCase(unittest.TestCase):
ret = open(os.path.join(os.path.dirname(__file__), name)).read(
).decode('utf-8')
ret = re.sub(
'REM COMMENT "Morituri.*',
'REM COMMENT "Morituri %s"' % (morituri.__version__),
'REM COMMENT "whipper.*',
'REM COMMENT "whipper %s"' % (whipper.__version__),
ret, re.MULTILINE)
return ret
@@ -80,7 +80,7 @@ class UnicodeTestMixin:
# A helper mixin to skip tests if we're not in a UTF-8 locale
try:
os.stat(u'morituri.test.B\xeate Noire.empty')
os.stat(u'whipper.test.B\xeate Noire.empty')
except UnicodeEncodeError:
skip = 'No UTF-8 locale'
except OSError:

View File

@@ -1,5 +1,5 @@
REM DISCID B90C650D
REM COMMENT "morituri 0.5.1"
REM COMMENT "whipper 0.5.1"
CATALOG 0602517642256
FILE "data.wav" WAVE
TRACK 01 AUDIO

View File

@@ -1,5 +1,5 @@
(lp0
(imorituri.result.result
(iwhipper.result.result
TrackResult
p1
(dp2
@@ -22,7 +22,7 @@ sS'filename'
p8
V/home/thomas/Bloc Party - Silent Alarm/00. Bloc Party - Hidden Track One Audio.flac
p9
sba(imorituri.result.result
sba(iwhipper.result.result
TrackResult
p10
(dp11
@@ -57,7 +57,7 @@ p18
I15220
sg5
L1476997036L
sba(imorituri.result.result
sba(iwhipper.result.result
TrackResult
p19
(dp20
@@ -86,7 +86,7 @@ sg18
I0
sg5
L2118180996L
sba(imorituri.result.result
sba(iwhipper.result.result
TrackResult
p22
(dp23
@@ -115,7 +115,7 @@ sg18
I0
sg5
L2397618238L
sba(imorituri.result.result
sba(iwhipper.result.result
TrackResult
p25
(dp26
@@ -144,7 +144,7 @@ sg18
I0
sg5
L1340624205L
sba(imorituri.result.result
sba(iwhipper.result.result
TrackResult
p28
(dp29
@@ -173,7 +173,7 @@ sg18
I72
sg5
L183201985L
sba(imorituri.result.result
sba(iwhipper.result.result
TrackResult
p31
(dp32
@@ -202,7 +202,7 @@ sg18
I41
sg5
L221401921L
sba(imorituri.result.result
sba(iwhipper.result.result
TrackResult
p34
(dp35
@@ -231,7 +231,7 @@ sg18
I17
sg5
L3133726276L
sba(imorituri.result.result
sba(iwhipper.result.result
TrackResult
p37
(dp38
@@ -260,7 +260,7 @@ sg18
I4
sg5
L2318646110L
sba(imorituri.result.result
sba(iwhipper.result.result
TrackResult
p40
(dp41
@@ -289,7 +289,7 @@ sg18
I11
sg5
L3145161267L
sba(imorituri.result.result
sba(iwhipper.result.result
TrackResult
p43
(dp44
@@ -318,7 +318,7 @@ sg18
I0
sg5
L3022257630L
sba(imorituri.result.result
sba(iwhipper.result.result
TrackResult
p46
(dp47
@@ -347,7 +347,7 @@ sg18
I43
sg5
L2011827324L
sba(imorituri.result.result
sba(iwhipper.result.result
TrackResult
p49
(dp50
@@ -376,7 +376,7 @@ sg18
I116
sg5
L933582879L
sba(imorituri.result.result
sba(iwhipper.result.result
TrackResult
p52
(dp53

View File

@@ -1,11 +1,11 @@
# -*- Mode: Python; test-case-name: morituri.test.test_common_accurip -*-
# -*- Mode: Python; test-case-name: whipper.test.test_common_accurip -*-
# vi:si:et:sw=4:sts=4:ts=4
import os
from morituri.common import accurip
from whipper.common import accurip
from morituri.test import common as tcommon
from whipper.test import common as tcommon
class AccurateRipResponseTestCase(tcommon.TestCase):

View File

@@ -1,11 +1,11 @@
# -*- Mode: Python; test-case-name: morituri.test.test_common_cache -*-
# -*- Mode: Python; test-case-name: whipper.test.test_common_cache -*-
# vi:si:et:sw=4:sts=4:ts=4
import os
from morituri.common import cache
from whipper.common import cache
from morituri.test import common as tcommon
from whipper.test import common as tcommon
class ResultCacheTestCase(tcommon.TestCase):

View File

@@ -1,18 +1,18 @@
# -*- Mode: Python; test-case-name: morituri.test.test_common_common -*-
# -*- Mode: Python; test-case-name: whipper.test.test_common_common -*-
# vi:si:et:sw=4:sts=4:ts=4
import os
import tempfile
from morituri.common import common
from whipper.common import common
from morituri.test import common as tcommon
from whipper.test import common as tcommon
class ShrinkTestCase(tcommon.TestCase):
def testSufjan(self):
path = (u'morituri/Sufjan Stevens - Illinois/02. Sufjan Stevens - '
path = (u'whipper/Sufjan Stevens - Illinois/02. Sufjan Stevens - '
'The Black Hawk War, or, How to Demolish an Entire '
'Civilization and Still Feel Good About Yourself in the '
'Morning, or, We Apologize for the Inconvenience but '

View File

@@ -1,18 +1,18 @@
# -*- Mode: Python; test-case-name: morituri.test.test_common_config -*-
# -*- Mode: Python; test-case-name: whipper.test.test_common_config -*-
# vi:si:et:sw=4:sts=4:ts=4
import os
import tempfile
from morituri.common import config
from whipper.common import config
from morituri.test import common as tcommon
from whipper.test import common as tcommon
class ConfigTestCase(tcommon.TestCase):
def setUp(self):
fd, self._path = tempfile.mkstemp(suffix=u'.morituri.test.config')
fd, self._path = tempfile.mkstemp(suffix=u'.whipper.test.config')
os.close(fd)
self._config = config.Config(self._path)

View File

@@ -1,9 +1,9 @@
# -*- Mode: Python; test-case-name: morituri.test.test_common_directory -*-
# -*- Mode: Python; test-case-name: whipper.test.test_common_directory -*-
# vi:si:et:sw=4:sts=4:ts=4
from morituri.common import directory
from whipper.common import directory
from morituri.test import common
from whipper.test import common
class DirectoryTestCase(common.TestCase):

View File

@@ -1,8 +1,8 @@
# -*- Mode: Python; test-case-name: morituri.test.test_common_drive -*-
# -*- Mode: Python; test-case-name: whipper.test.test_common_drive -*-
# vi:si:et:sw=4:sts=4:ts=4
from morituri.test import common
from morituri.common import drive
from whipper.test import common
from whipper.common import drive
class ListifyTestCase(common.TestCase):

View File

@@ -1,4 +1,4 @@
# -*- Mode: Python; test-case-name: morituri.test.test_common_mbngs -*-
# -*- Mode: Python; test-case-name: whipper.test.test_common_mbngs -*-
# vi:si:et:sw=4:sts=4:ts=4
import os
@@ -6,7 +6,7 @@ import json
import unittest
from morituri.common import mbngs
from whipper.common import mbngs
class MetadataTestCase(unittest.TestCase):
@@ -14,7 +14,7 @@ class MetadataTestCase(unittest.TestCase):
# Generated with rip -R cd info
def testJeffEverybodySingle(self):
path = os.path.join(os.path.dirname(__file__),
'morituri.release.3451f29c-9bb8-4cc5-bfcc-bd50104b94f8.json')
'whipper.release.3451f29c-9bb8-4cc5-bfcc-bd50104b94f8.json')
handle = open(path, "rb")
response = json.loads(handle.read())
handle.close()
@@ -27,7 +27,7 @@ class MetadataTestCase(unittest.TestCase):
def test2MeterSessies10(self):
# various artists, multiple artists per track
path = os.path.join(os.path.dirname(__file__),
'morituri.release.a76714e0-32b1-4ed4-b28e-f86d99642193.json')
'whipper.release.a76714e0-32b1-4ed4-b28e-f86d99642193.json')
handle = open(path, "rb")
response = json.loads(handle.read())
handle.close()
@@ -55,7 +55,7 @@ class MetadataTestCase(unittest.TestCase):
def testBalladOfTheBrokenSeas(self):
# various artists disc
path = os.path.join(os.path.dirname(__file__),
'morituri.release.e32ae79a-336e-4d33-945c-8c5e8206dbd3.json')
'whipper.release.e32ae79a-336e-4d33-945c-8c5e8206dbd3.json')
handle = open(path, "rb")
response = json.loads(handle.read())
handle.close()
@@ -88,7 +88,7 @@ class MetadataTestCase(unittest.TestCase):
# single artist disc, but with multiple artists tracks
# see https://github.com/thomasvs/morituri/issues/19
path = os.path.join(os.path.dirname(__file__),
'morituri.release.61c6fd9b-18f8-4a45-963a-ba3c5d990cae.json')
'whipper.release.61c6fd9b-18f8-4a45-963a-ba3c5d990cae.json')
handle = open(path, "rb")
response = json.loads(handle.read())
handle.close()

View File

@@ -1,9 +1,9 @@
# -*- Mode: Python; test-case-name: morituri.test.test_common_path -*-
# -*- Mode: Python; test-case-name: whipper.test.test_common_path -*-
# vi:si:et:sw=4:sts=4:ts=4
from morituri.common import path
from whipper.common import path
from morituri.test import common
from whipper.test import common
class FilterTestCase(common.TestCase):

Some files were not shown because too many files have changed in this diff Show More