* 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:
Thomas Vander Stichele
2010-04-13 21:53:43 +00:00
parent 310a3789c0
commit 7515cf9e73
4 changed files with 54 additions and 1 deletions

View File

@@ -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:

View File

@@ -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'

View File

@@ -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

View File

@@ -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)