* morituri/common/checksum.py:
Style fixes. * morituri/common/common.py: Add functions to convert a gst.TagList to a dict and compare them. * morituri/common/task.py: Add setAndRaiseException which gives us an appropriate exceptionMessage as if we raised where we called this new function.
This commit is contained in:
10
ChangeLog
10
ChangeLog
@@ -1,3 +1,13 @@
|
||||
2010-04-13 Thomas Vander Stichele <thomas at apestaart dot org>
|
||||
|
||||
* morituri/common/checksum.py:
|
||||
Style fixes.
|
||||
* morituri/common/common.py:
|
||||
Add functions to convert a gst.TagList to a dict and compare them.
|
||||
* morituri/common/task.py:
|
||||
Add setAndRaiseException which gives us an appropriate
|
||||
exceptionMessage as if we raised where we called this new function.
|
||||
|
||||
2010-04-13 Thomas Vander Stichele <thomas at apestaart dot org>
|
||||
|
||||
* morituri/common/encode.py:
|
||||
|
||||
@@ -32,11 +32,13 @@ from morituri.common import common, task
|
||||
|
||||
class ChecksumTask(task.Task):
|
||||
"""
|
||||
I am a task that calculates a checksum.
|
||||
I am a task that calculates a checksum of the decoded audio data.
|
||||
|
||||
@ivar checksum: the resulting checksum
|
||||
"""
|
||||
|
||||
logCategory = 'ChecksumTask'
|
||||
|
||||
# this object needs a main loop to stop
|
||||
description = 'Calculating checksum'
|
||||
|
||||
|
||||
@@ -182,3 +182,26 @@ class PersistedCache(object):
|
||||
persister.delete()
|
||||
|
||||
return persister
|
||||
|
||||
def tagListToDict(tl):
|
||||
"""
|
||||
Removes audio-codec and video-codec since we never set them ourselves.
|
||||
"""
|
||||
import gst
|
||||
|
||||
d = {}
|
||||
for key in tl.keys():
|
||||
if key == gst.TAG_DATE:
|
||||
date = tl[key]
|
||||
d[key] = "%4d-%2d-%2d" % (date.year, date.month, date.day)
|
||||
elif key in [gst.TAG_AUDIO_CODEC, gst.TAG_VIDEO_CODEC]:
|
||||
pass
|
||||
else:
|
||||
d[key] = tl[key]
|
||||
return d
|
||||
|
||||
def tagListEquals(tl1, tl2):
|
||||
d1 = tagListToDict(tl1)
|
||||
d2 = tagListToDict(tl2)
|
||||
|
||||
return d1 == d2
|
||||
|
||||
@@ -108,6 +108,24 @@ class Task(object, log.Loggable):
|
||||
self._notifyListeners('described', description)
|
||||
self.description = description
|
||||
|
||||
def setAndRaiseException(self, exception):
|
||||
import traceback
|
||||
|
||||
stack = traceback.extract_stack()[:-1]
|
||||
(filename, line, func, text) = stack[-1]
|
||||
exc = exception.__class__.__name__
|
||||
msg = ""
|
||||
# a shortcut to extract a useful message out of most exceptions
|
||||
# for now
|
||||
if str(exception):
|
||||
msg = ": %s" % str(exception)
|
||||
line = "exception %(exc)s at %(filename)s:%(line)s: %(func)s()%(msg)s" \
|
||||
% locals()
|
||||
|
||||
self.exception = exception
|
||||
self.exceptionMessage = line
|
||||
self.debug('set exception, %r' % self.exceptionMessage)
|
||||
|
||||
def setException(self, exception):
|
||||
self.exception = exception
|
||||
self.exceptionMessage = log.getExceptionMessage(exception)
|
||||
|
||||
Reference in New Issue
Block a user