Solve all flake8 warnings (#163)
Whipper is now fully PEP8 compliant. Revised version which includes all the changes suggested by Freso.
This commit is contained in:
@@ -142,11 +142,12 @@ class CueFile(object):
|
||||
+ minutes * common.FRAMES_PER_SECOND * 60
|
||||
|
||||
logger.debug('found index %d of track %r in %r:%d',
|
||||
indexNumber, currentTrack, currentFile.path, frameOffset)
|
||||
indexNumber, currentTrack, currentFile.path,
|
||||
frameOffset)
|
||||
# FIXME: what do we do about File's FORMAT ?
|
||||
currentTrack.index(indexNumber,
|
||||
path=currentFile.path, relative=frameOffset,
|
||||
counter=counter)
|
||||
path=currentFile.path, relative=frameOffset,
|
||||
counter=counter)
|
||||
continue
|
||||
|
||||
def message(self, number, message):
|
||||
@@ -166,8 +167,8 @@ class CueFile(object):
|
||||
# last track, so no length known
|
||||
return -1
|
||||
|
||||
thisIndex = track.indexes[1] # FIXME: could be more
|
||||
nextIndex = self.table.tracks[i + 1].indexes[1] # FIXME: could be 0
|
||||
thisIndex = track.indexes[1] # FIXME: could be more
|
||||
nextIndex = self.table.tracks[i + 1].indexes[1] # FIXME: could be 0
|
||||
|
||||
c = thisIndex.counter
|
||||
if c is not None and c == nextIndex.counter:
|
||||
|
||||
@@ -52,8 +52,8 @@ class Image(object):
|
||||
self._path = path
|
||||
self.cue = cue.CueFile(path)
|
||||
self.cue.parse()
|
||||
self._offsets = [] # 0 .. trackCount - 1
|
||||
self._lengths = [] # 0 .. trackCount - 1
|
||||
self._offsets = [] # 0 .. trackCount - 1
|
||||
self._lengths = [] # 0 .. trackCount - 1
|
||||
|
||||
self.table = None
|
||||
|
||||
@@ -98,8 +98,8 @@ class Image(object):
|
||||
# FIXME: this probably only works for non-compliant .CUE files
|
||||
# where pregap is put at end of previous file
|
||||
t.index(1, absolute=offset,
|
||||
path=self.cue.table.tracks[i].getIndex(1).path,
|
||||
relative=0)
|
||||
path=self.cue.table.tracks[i].getIndex(1).path,
|
||||
relative=0)
|
||||
|
||||
offset += length
|
||||
|
||||
@@ -128,17 +128,19 @@ class AccurateRipChecksumTask(task.MultiSeparateTask):
|
||||
index = track.indexes[1]
|
||||
length = cue.getTrackLength(track)
|
||||
if length < 0:
|
||||
logger.debug('track %d has unknown length' % (trackIndex + 1, ))
|
||||
logger.debug('track %d has unknown length' %
|
||||
(trackIndex + 1, ))
|
||||
else:
|
||||
logger.debug('track %d is %d samples long' % (
|
||||
trackIndex + 1, length))
|
||||
|
||||
path = image.getRealPath(index.path)
|
||||
|
||||
|
||||
checksumTask = checksum.FastAccurateRipChecksumTask(path,
|
||||
trackNumber=trackIndex + 1, trackCount=len(cue.table.tracks),
|
||||
wave=True, v2=False)
|
||||
checksumTask = checksum.FastAccurateRipChecksumTask(
|
||||
path,
|
||||
trackNumber=trackIndex + 1,
|
||||
trackCount=len(cue.table.tracks),
|
||||
wave=True, v2=False)
|
||||
|
||||
self.addTask(checksumTask)
|
||||
|
||||
@@ -201,8 +203,9 @@ class ImageVerifyTask(task.MultiSeparateTask):
|
||||
break
|
||||
|
||||
if taskk.length is None:
|
||||
raise ValueError("Track length was not found; look for "
|
||||
"earlier errors in debug log (set RIP_DEBUG=4)")
|
||||
raise ValueError("Track length was not found; "
|
||||
"look for earlier errors "
|
||||
"in debug log (set RIP_DEBUG=4)")
|
||||
index = track.indexes[1]
|
||||
assert taskk.length % common.SAMPLES_PER_FRAME == 0
|
||||
end = taskk.length / common.SAMPLES_PER_FRAME
|
||||
@@ -234,8 +237,9 @@ class ImageEncodeTask(task.MultiSeparateTask):
|
||||
root, ext = os.path.splitext(os.path.basename(path))
|
||||
outpath = os.path.join(outdir, root + '.' + 'flac')
|
||||
logger.debug('schedule encode to %r', outpath)
|
||||
taskk = encode.FlacEncodeTask(path, os.path.join(outdir,
|
||||
root + '.' + 'flac'))
|
||||
taskk = encode.FlacEncodeTask(path,
|
||||
os.path.join(outdir,
|
||||
root + '.' + 'flac'))
|
||||
self.addTask(taskk)
|
||||
|
||||
try:
|
||||
|
||||
@@ -169,9 +169,9 @@ class Table(object):
|
||||
@type cdtext: dict of str -> str
|
||||
"""
|
||||
|
||||
tracks = None # list of Track
|
||||
leadout = None # offset where the leadout starts
|
||||
catalog = None # catalog number; FIXME: is this UPC ?
|
||||
tracks = None # list of Track
|
||||
leadout = None # offset where the leadout starts
|
||||
catalog = None # catalog number; FIXME: is this UPC ?
|
||||
cdtext = None
|
||||
mbdiscid = None
|
||||
|
||||
@@ -305,7 +305,7 @@ class Table(object):
|
||||
# duration = durationFrames / common.FRAMES_PER_SECOND
|
||||
# assert t == duration, "%r != %r" % (t, duration)
|
||||
|
||||
debug.append(str(leadoutSeconds + 2)) # 2 is the 150 frame cddb offset
|
||||
debug.append(str(leadoutSeconds + 2)) # 2 is the 150 frame cddb offset
|
||||
result.append(leadoutSeconds)
|
||||
|
||||
value = (n % 0xff) << 24 | t << 8 | len(self.tracks)
|
||||
@@ -315,7 +315,7 @@ class Table(object):
|
||||
logger.debug('cddb values: %r', result)
|
||||
|
||||
logger.debug('cddb disc id debug: %s',
|
||||
" ".join(["%08x" % value, ] + debug))
|
||||
" ".join(["%08x" % value, ] + debug))
|
||||
|
||||
return result
|
||||
|
||||
@@ -472,7 +472,6 @@ class Table(object):
|
||||
except IndexError:
|
||||
pass
|
||||
|
||||
|
||||
logger.debug('MusicBrainz values: %r', result)
|
||||
return result
|
||||
|
||||
@@ -545,8 +544,8 @@ class Table(object):
|
||||
main = ['PERFORMER', 'TITLE']
|
||||
|
||||
for key in CDTEXT_FIELDS:
|
||||
if key not in main and key in self.cdtext:
|
||||
lines.append(" %s %s" % (key, self.cdtext[key]))
|
||||
if key not in main and key in self.cdtext:
|
||||
lines.append(" %s %s" % (key, self.cdtext[key]))
|
||||
|
||||
assert self.hasTOC(), "Table does not represent a full CD TOC"
|
||||
lines.append('REM DISCID %s' % self.getCDDBDiscId().upper())
|
||||
@@ -607,7 +606,7 @@ class Table(object):
|
||||
logger.debug('counter %d, writeFile' % counter)
|
||||
writeFile(index.path)
|
||||
logger.debug('setting counter to index.counter %r' %
|
||||
index.counter)
|
||||
index.counter)
|
||||
counter = index.counter
|
||||
|
||||
# any time we hit the first index, write a TRACK statement
|
||||
@@ -636,23 +635,25 @@ class Table(object):
|
||||
if not index00.path:
|
||||
length = indexOne.absolute - index00.absolute
|
||||
lines.append(" PREGAP %s" %
|
||||
common.framesToMSF(length))
|
||||
common.framesToMSF(length))
|
||||
continue
|
||||
|
||||
# handle any other INDEX 00 after its TRACK
|
||||
lines.append(" INDEX %02d %s" % (0,
|
||||
common.framesToMSF(index00.relative)))
|
||||
lines.append(" INDEX "
|
||||
"%02d %s" % (0, common.framesToMSF(
|
||||
index00.relative)))
|
||||
|
||||
if number > 0:
|
||||
# index 00 is output after TRACK up above
|
||||
lines.append(" INDEX %02d %s" % (number,
|
||||
common.framesToMSF(index.relative)))
|
||||
common.framesToMSF(
|
||||
index.relative)))
|
||||
|
||||
lines.append("")
|
||||
|
||||
return "\n".join(lines)
|
||||
|
||||
### methods that modify the table
|
||||
# methods that modify the table
|
||||
|
||||
def clearFiles(self):
|
||||
"""
|
||||
@@ -689,13 +690,14 @@ class Table(object):
|
||||
@type index: C{int}
|
||||
"""
|
||||
logger.debug('setFile: track %d, index %d, path %r, '
|
||||
'length %r, counter %r', track, index, path, length, counter)
|
||||
'length %r, counter %r', track, index, path, length,
|
||||
counter)
|
||||
|
||||
t = self.tracks[track - 1]
|
||||
i = t.indexes[index]
|
||||
start = i.absolute
|
||||
assert start is not None, "index %r is missing absolute offset" % i
|
||||
end = start + length - 1 # last sector that should come from this file
|
||||
end = start + length - 1 # last sector that should come from this file
|
||||
|
||||
# FIXME: check border conditions here, esp. wrt. toc's off-by-one bug
|
||||
while i.absolute <= end:
|
||||
@@ -703,8 +705,8 @@ class Table(object):
|
||||
i.relative = i.absolute - start
|
||||
i.counter = counter
|
||||
logger.debug('Setting path %r, relative %r on '
|
||||
'track %d, index %d, counter %r',
|
||||
path, i.relative, track, index, counter)
|
||||
'track %d, index %d, counter %r',
|
||||
path, i.relative, track, index, counter)
|
||||
try:
|
||||
track, index = self.getNextTrackIndex(track, index)
|
||||
t = self.tracks[track - 1]
|
||||
@@ -733,10 +735,11 @@ class Table(object):
|
||||
logger.debug('Track %d, index %d has no counter', t, i)
|
||||
break
|
||||
if index.counter != counter:
|
||||
logger.debug('Track %d, index %d has a different counter', t, i)
|
||||
logger.debug(
|
||||
'Track %d, index %d has a different counter', t, i)
|
||||
break
|
||||
logger.debug('Setting absolute offset %d on track %d, index %d',
|
||||
index.relative, t, i)
|
||||
index.relative, t, i)
|
||||
if index.absolute is not None:
|
||||
if index.absolute != index.relative:
|
||||
msg = 'Track %d, index %d had absolute %d,' \
|
||||
@@ -769,15 +772,17 @@ class Table(object):
|
||||
for i in t.indexes.values():
|
||||
if i.absolute is not None:
|
||||
i.absolute += self.leadout + gap
|
||||
logger.debug('Fixing track %02d, index %02d, absolute %d' % (
|
||||
t.number, i.number, i.absolute))
|
||||
logger.debug('Fixing track %02d, index %02d, '
|
||||
'absolute %d' % (
|
||||
t.number, i.number, i.absolute))
|
||||
if i.counter is not None:
|
||||
i.counter += sourceCounter
|
||||
logger.debug('Fixing track %02d, index %02d, counter %d' % (
|
||||
t.number, i.number, i.counter))
|
||||
logger.debug('Fixing track %02d, index %02d, '
|
||||
'counter %d' % (
|
||||
t.number, i.number, i.counter))
|
||||
self.tracks.append(t)
|
||||
|
||||
self.leadout += other.leadout + gap # FIXME
|
||||
self.leadout += other.leadout + gap # FIXME
|
||||
logger.debug('Fixing leadout, now %d', self.leadout)
|
||||
|
||||
def _getSessionGap(self, session):
|
||||
@@ -795,7 +800,7 @@ class Table(object):
|
||||
gap = 6900
|
||||
return gap
|
||||
|
||||
### lookups
|
||||
# lookups
|
||||
|
||||
def getNextTrackIndex(self, track, index):
|
||||
"""
|
||||
@@ -857,8 +862,8 @@ class Table(object):
|
||||
for t in self.tracks:
|
||||
for i in t.indexes.values():
|
||||
if i.relative is None:
|
||||
logger.debug('Track %02d, Index %02d does not have relative',
|
||||
t.number, i.number)
|
||||
logger.debug('Track %02d, Index %02d does not '
|
||||
'have relative', t.number, i.number)
|
||||
return False
|
||||
|
||||
return True
|
||||
|
||||
@@ -109,8 +109,8 @@ class Sources:
|
||||
@type counter: int
|
||||
@param offset: the absolute disc offset where this source starts
|
||||
"""
|
||||
logger.debug('Appending source, counter %d, abs offset %d, source %r' % (
|
||||
counter, offset, source))
|
||||
logger.debug('Appending source, counter %d, abs offset %d, '
|
||||
'source %r' % (counter, offset, source))
|
||||
self._sources.append((counter, offset, source))
|
||||
|
||||
def get(self, offset):
|
||||
@@ -158,33 +158,34 @@ class TocFile(object):
|
||||
relative = absolute - counterStart
|
||||
|
||||
currentTrack.index(i, path=s.path,
|
||||
absolute=absolute,
|
||||
relative=relative,
|
||||
counter=c)
|
||||
absolute=absolute,
|
||||
relative=relative,
|
||||
counter=c)
|
||||
logger.debug(
|
||||
'[track %02d index %02d] trackOffset %r, added %r',
|
||||
currentTrack.number, i, trackOffset,
|
||||
currentTrack.getIndex(i))
|
||||
|
||||
currentTrack.number, i, trackOffset,
|
||||
currentTrack.getIndex(i))
|
||||
|
||||
def parse(self):
|
||||
# these two objects start as None then get set as real objects,
|
||||
# so no need to complain about them here
|
||||
__pychecker__ = 'no-objattrs'
|
||||
currentFile = None
|
||||
currentTrack = None
|
||||
|
||||
state = 'HEADER'
|
||||
counter = 0 # counts sources for audio data; SILENCE/ZERO/FILE
|
||||
# counts sources for audio data; SILENCE/ZERO/FILE
|
||||
counter = 0
|
||||
trackNumber = 0
|
||||
indexNumber = 0
|
||||
absoluteOffset = 0 # running absolute offset of where each track starts
|
||||
relativeOffset = 0 # running relative offset, relative to counter src
|
||||
currentLength = 0 # accrued during TRACK record parsing;
|
||||
# length of current track as parsed so far;
|
||||
# reset on each TRACK statement
|
||||
totalLength = 0 # accrued during TRACK record parsing, total disc
|
||||
pregapLength = 0 # length of the pre-gap, current track in for loop
|
||||
# running absolute offset: where each track starts
|
||||
absoluteOffset = 0
|
||||
# running relative offset, relative to counter src
|
||||
relativeOffset = 0
|
||||
# currentLength is accrued during TRACK record parsing length
|
||||
# of current track as parsed so far reset on each TRACK statement
|
||||
currentLength = 0
|
||||
# accrued during TRACK record parsing, total disc
|
||||
totalLength = 0
|
||||
# length of the pre-gap, current track in for loop
|
||||
pregapLength = 0
|
||||
|
||||
# the first track's INDEX 1 can only be gotten from the .toc
|
||||
# file once the first pregap is calculated; so we add INDEX 1
|
||||
@@ -211,9 +212,9 @@ class TocFile(object):
|
||||
logger.debug('Found disc CD-Text %s: %r', key, value)
|
||||
elif state == 'TRACK':
|
||||
if key != 'ISRC' or not currentTrack \
|
||||
or currentTrack.isrc is not None:
|
||||
or currentTrack.isrc is not None:
|
||||
logger.debug('Found track CD-Text %s: %r',
|
||||
key, value)
|
||||
key, value)
|
||||
currentTrack.cdtext[key] = value
|
||||
|
||||
# look for header elements
|
||||
@@ -246,7 +247,7 @@ class TocFile(object):
|
||||
|
||||
# FIXME: track mode
|
||||
logger.debug('found track %d, mode %s, at absoluteOffset %d',
|
||||
trackNumber, trackMode, absoluteOffset)
|
||||
trackNumber, trackMode, absoluteOffset)
|
||||
|
||||
# reset counters relative to a track
|
||||
currentLength = 0
|
||||
@@ -299,18 +300,18 @@ class TocFile(object):
|
||||
start = m.group('start')
|
||||
length = m.group('length')
|
||||
logger.debug('FILE %s, start %r, length %r',
|
||||
filePath, common.msfToFrames(start),
|
||||
common.msfToFrames(length))
|
||||
filePath, common.msfToFrames(start),
|
||||
common.msfToFrames(length))
|
||||
if not currentFile or filePath != currentFile.path:
|
||||
counter += 1
|
||||
relativeOffset = 0
|
||||
logger.debug('track %d, switched to new FILE, '
|
||||
'increased counter to %d',
|
||||
trackNumber, counter)
|
||||
'increased counter to %d',
|
||||
trackNumber, counter)
|
||||
currentFile = File(filePath, common.msfToFrames(start),
|
||||
common.msfToFrames(length))
|
||||
common.msfToFrames(length))
|
||||
self._sources.append(counter, absoluteOffset + currentLength,
|
||||
currentFile)
|
||||
currentFile)
|
||||
currentLength += common.msfToFrames(length)
|
||||
|
||||
# look for DATAFILE lines
|
||||
@@ -319,20 +320,19 @@ class TocFile(object):
|
||||
filePath = m.group('name')
|
||||
length = m.group('length')
|
||||
logger.debug('FILE %s, length %r',
|
||||
filePath, common.msfToFrames(length))
|
||||
filePath, common.msfToFrames(length))
|
||||
if not currentFile or filePath != currentFile.path:
|
||||
counter += 1
|
||||
relativeOffset = 0
|
||||
logger.debug('track %d, switched to new FILE, '
|
||||
'increased counter to %d',
|
||||
trackNumber, counter)
|
||||
'increased counter to %d',
|
||||
trackNumber, counter)
|
||||
# FIXME: assume that a MODE2_FORM_MIX track always starts at 0
|
||||
currentFile = File(filePath, 0, common.msfToFrames(length))
|
||||
self._sources.append(counter, absoluteOffset + currentLength,
|
||||
currentFile)
|
||||
currentFile)
|
||||
currentLength += common.msfToFrames(length)
|
||||
|
||||
|
||||
# look for START lines
|
||||
m = _START_RE.search(line)
|
||||
if m:
|
||||
@@ -349,10 +349,10 @@ class TocFile(object):
|
||||
relativeOffset = absoluteOffset - counterStart
|
||||
|
||||
currentTrack.index(0, path=s and s.path or None,
|
||||
absolute=absoluteOffset,
|
||||
relative=relativeOffset, counter=c)
|
||||
absolute=absoluteOffset,
|
||||
relative=relativeOffset, counter=c)
|
||||
logger.debug('[track %02d index 00] added %r',
|
||||
currentTrack.number, currentTrack.getIndex(0))
|
||||
currentTrack.number, currentTrack.getIndex(0))
|
||||
# store the pregapLength to add it when we index 1 for this
|
||||
# track on the next iteration
|
||||
pregapLength = length
|
||||
@@ -398,8 +398,8 @@ class TocFile(object):
|
||||
# last track, so no length known
|
||||
return -1
|
||||
|
||||
thisIndex = track.indexes[1] # FIXME: could be more
|
||||
nextIndex = self.table.tracks[i + 1].indexes[1] # FIXME: could be 0
|
||||
thisIndex = track.indexes[1] # FIXME: could be more
|
||||
nextIndex = self.table.tracks[i + 1].indexes[1] # FIXME: could be 0
|
||||
|
||||
c = thisIndex.counter
|
||||
if c is not None and c == nextIndex.counter:
|
||||
|
||||
Reference in New Issue
Block a user