[SCM] morituri/master: Merge tag 'upstream/0.2.3'

js at users.alioth.debian.org js at users.alioth.debian.org
Sun Oct 19 20:10:18 UTC 2014


Imported Upstream version 0.2.3
releasing 0.2.3
update release notes; include missing file for test
error out nicely when debug resultcache cue has no arg
remove command tree from README, the man page is uptodate
remove as-python.m4 from dist
Merge pull request #68 from jtaprogge/retag
Merge pull request #74 from JDLH/fix-eclipse-ignores
Merge pull request #77 from Freso/add-discid-tag
reorganize todo
fix up another wrong config call
Merge pull request #78 from mgorny/master
fix one more test
read cue and substitute current version to make tests pass
Merge pull request #81 from RecursiveForest/cuefile
Show morituri version in cue and update TODO.
Use standard AM_PATH_PYTHON rather than broken AS_PATH_PYTHON.
Save MusicBrainz DiscID to tags.
rework REVISION hackery
also rebuild REVISION when code to get it changes
treat REVISION as BUILT_SOURCES
use describe --all to always get a description
Support dev on Eclipse and Pydev by .gitignoring two project files.
Also show the MusicBrainz lookup ID when retagging.
Merge pull request #1 from thomasvs/master
Encode directory name when writing to stdout.
Default to 0000 for y when no metadata.
Fix rip image verify.
add a symlink to make autotools happy
README got renamed to README.md; fix build
Use newer lamemp3enc element
make profiles loggable
Make rip debug encode use the extension from profile by default
Merge pull request #43 from megies/readme_markdown
remove Rename operation currently unused and done on branch
add content to an older test
fix another pychecker warning that was actually pointing out a bug
fix pychecker warning
allow all profiles, including lossy
add note
start with a one frame interval until we know more
add
add debug resultcache cue command
Merge branch 'bug-offsets-3'
fix so first FILE goes before TRACK 01 and possible PREGAP
use more diffstrings; use it from reference to generated
add type doc
since the cached results have wrong (negative) relative for index > 01, make sure we don't use the cache by upping the version
now that we have a literal conversion of the toc, update
add note
fix expectations on surfer rosa test
strokes test case is now correct
use a common _index method for all cases
move some assignments around to be more logical
also add source for DATAFILE
make sources an object property
add more tests, after calculating expected values for this disc
add/fix debug
update debug
stop absolutizing
WIP: try to set relative offset correctly based on sources
now take relative from currentFile
update tests
create index with the correct path by using sources
use diffStrings
handle index 00 of track 1 specially
add a Source object, but don't use it yet
add doc
add all EAC cue files for surfer rosa
Set start and length properly on File
reset relative offset on SILENCE/ZERO
compare output .cue with EAC one we add
add more asserts on the current code for strokes
hack to get proper revision before generating configure/*py
make sure distcheck works too
add make rules to trigger git submodule init/sync/update
handle the case where we couldn't even import deps.
README: slight markup modifications to show formatted on github start page
work without network
use a built REVISION file as a backup revision source
Merge pull request #39 from tuomo/python2
suggestions from hydrogen audio
Run $PYTHON, not python
add flattr link
update release guide
back to development
Releasing 0.2.2
Add testcase to show that previous commit fixes #19.
remove one if path
Set proper track ids.  Fixes #34
distinguish between disc and track credit
add more FIXME
add getIds and use it to set correct ids
make sure sortname contains all artists
Extract a Credit list subclass to get name/sortname/id
add doc
add another test to fix
fix syntax error
add a test case to fix
add doc; make sure we record with rip debug musicbrainzngs
rename to discArtist to disambiguate
rename metadata to discMD to be clearer
Make rip cd info not eject.  Fixes #35.
update
handle not having cdparanoia on rip offset find
get revision from git; make it work everywhere
put space before colon
use a logging task runner
Fix rip offset find.  Fixes #33.
tell us about each try
handle exceptions on verifying empty or half-done tracks
make sure we have a traceback
remove done items
back to development
release 0.2.1
add bash-compgen.  Fixes #11.
Handle missing required argument to option.  Fixes #18.
wait before reading, to make sure we get it all
catch missing save_cache_path in xdg.BaseDirectory; closes #31
add test for directory module
make warning clearer.  Fixes #7
More quote fixing
more filtering
document config file format
use PathFilter object to filter paths
Allow getting normal and boolean from config
fix a failing test
Add path filter
pass config to program
we already get the version some other way
Merge pull request #21 from supermanvelo/master
80 character limit
get version for cdrdao too.
cleanup and comment
cleanup and comment
Really handle unknown on rip cd info.  Really fixes #30.
fix output
Handle unknown option on rip cd info.  Fixes #30.
Add new command: rip debug maxsample
Accept more than one file for checksum.
Document and fix comments.
Merge pull request #26 from dioltas/fix_pycdio_unicode_bug
Convert values returned from pycdio to str (workaround for upstream bug)
improve debug
make track/index debug uniform
update logging; bump classVersion of Table
rename our musicbrainzngs.py to mbngs.py
Merge pull request #22 from dioltas/fix_offset_count
Compare AccurateRip to num tracks -1, as last track not being checked
add another test case to work on INDEX 02
return cdrdao version used
handle encoding properly when outputting diff
Use all but last track to find offset.
break into two lines to separate logger problems from morituri
fix doc
add debugging, comments and documentation
Merge pull request #14 from alkino/with_statement
work around GStreamer bug in flacdec for really short files
change debug message
debug and cleanup
The logic was the wrong way around.
Merge pull request #13 from alkino/master
Use with statement to open files
Use os.path.join instead of hardcoded paths
Handle off-by-1 errors in cdparanoia progress parsing
set useragent on musicbrainz
after updating python-musicbrainz-ngs, symlink the package dir.
deduplicate rip directories with catalog number or barcode
store catalog number and barcode in discmetadata
update to newer musicbrainz-ngs suggested by sanoj
remove unused path
key on musicbrainz disc id by default
add a TableCache.
Update getCache to take name.  Add getReadCaches
extract code into program.getFastToc
add test case with turn on the bright lights toc
add debug
debug more
log persister
add summary
add some whitespace betwee nreleases
add how many tracks the disc is
fix whitespace
only mark as a failure if we see an expected string
make sure we mark defeatsCache as false if cdparanoia fails.
expand the right PYTHON into rip and bash-compgen
removing old musicbrainz code
check logger up front.
add note on running uninstalled
feature: add 'rip cd info'
Merge pull request #6 from Freso/add-uppercase-extension-template-variable
Add "%X" template variable for uppercase filename extension.
Don't fail on pycdio missing. Fixes trac 128.
Handle broken pycdio 0.18
handle import errors in bin/rip.in; add setuptools to deps
Document python-cddb need and how to install on Ubuntu.
Update to not import moap.util.  Fixes #2.
update submodules after clone.  Fixes #1.
update release notes
debian patch to not hardcode python
update python-deps
handle CDDB import errors
return when we don't have a ret assigned
use python-deps to handle missing dependencies.
add python-deps to handle dependencies
fix spec file
update after release
back to developing
release 0.2.0
output drive cache defeating in rip drive list
moved to github
add analyzing the drive
switch to github's url
Add CDDB and MusicBrainz disc id/URL.  Fixes #112.
retry reading toc 3 times, often fails after loading
debug and doc
Handle backslashes in name for looking up real path.
audioparsers still doesn't support seek properly for flac
better debugging and failing
add notes on flacparse bug
better debugging when sampleLength is claimed unknown
rename frame to sample to avoid confusion with cd frames
move around
return if we have an exception
debug better
raise an exception for this error
add todo
fix test after moving templates
latest command
move common template options and description
add a Directory object to get common dirs from
show us the type
fix distcheck
fix tests after adding release type to templates
FEATURE: add --working-directory option
default to include the release type (%r) in file paths
remove unused import
add to TODO
add flacparse
ignore only toplevel configure
ignore more
moap ignore
add submodules
	* morituri/common/config.py: 	* morituri/rip/cd.py: 	* morituri/rip/drive.py: 	  Handle missing config better. 	  Fixes #111.
update error message
whitespace and commenting
	* morituri/common/config.py: 	* morituri/rip/cd.py: 	* morituri/test/test_common_config.py: 	  strip model/release too.
fix test
	* morituri/common/program.py: 	* morituri/rip/cd.py: 	  feature: add %x for extension to track/disc template.
	* morituri/common/program.py: 	  feature: add %r/%R for release type to track/disc template. 	* morituri/rip/image.py: 	  feature: add rip image rename to rename files based on metadata.
	* morituri/common/program.py: 	* morituri/rip/image.py: 	  feature: add %r/%R for release type to track/disc template.
	* morituri/common/musicbrainzngs.py: 	* morituri/rip/debug.py: 	  Also store releaseType for disc metadata.
write mb disc id
add ivar
add FIXME
	* morituri/common/program.py: 	  add release id to output. 	* morituri/rip/image.py: 	  add --release-id to rip image retag.  Fixes #96.
	* morituri/common/common.py: 	  Strip bitrate tags too for comparison of dicts. 	  Add a way to show us the different keys between dicts. 	* morituri/common/encode.py: 	  Debug different keys.
	* morituri/common/encode.py: 	  Collect all tags by replacing from newer tag messages. 	  Gets more than bitrate from flacs now.
	* morituri/rip/debug.py: 	  Add rip debug tag to debug reading tags.
log all tasks
	* morituri/rip/image.py: 	  Use getRealPath when retagging an image, fixes bug where it 	  doesn't find the files relative to the cuepath.
	* morituri/common/program.py: 	* morituri/rip/cd.py: 	* morituri/rip/image.py: 	  Add stdout to program.  Use it for getting musicbrainz info.
rename variable
	* morituri/program/cdparanoia.py: 	* morituri/test/test_program_cdparanoia.py: 	  Add a task that can analyze the drive for whether it defeats 	  the audio cache. 	* morituri/result/result.py: 	* morituri/rip/cd.py: 	  Make it possible to store whether a drive defeats audio cache 	  in the result. 	* morituri/rip/drive.py: 	  Add rip drive analyze command to analyze caching of a drive, 	  and store it in the config.
	* morituri/common/task.py: 	  Failed and done can stay unimplemented. 	  If we read stdout or stderr, reschedule immediately to process 	  all output before considering the possibility the program stopped.
	* morituri/common/config.py: 	  Add methods to get/set defeating of audio cache. 	  Make sure that we set read offset even if section is already there.
	* morituri/common/task.py: 	* morituri/program/cdrdao.py: 	  Factor out a PopenTask base class.
paranoia deserves a capital P
add output from my Plextor
add test output from cdparanoia -A
	* morituri/common/program.py: 	  Store rip result after verifying AccurateRip so those results 	  are stored too.
add profile info to rip
	* morituri/rip/cd.py: 	* morituri/result/result.py: 	  Store versions and encoding profile info in the rip result.
move import
	* morituri/test/test_common_gstreamer.py (added): 	* morituri/common/gstreamer.py: 	* morituri/test/Makefile.am: 	  add functions to get versions of gstreamer, gst-python, 	  and element factory plugins.
	* morituri/rip/debug.py: 	  add rip debug resultcache log command to generate a log 	  based on a cached result.
remove unused import
bump classVersion
	* morituri/common/common.py: 	  Remove migrated classes.
	* morituri/common/cache.py: 	  Disable the version-based persistence deleting. 	  Allow not creating a fresh ripresult when getting one.
	* morituri/common/cache.py: 	* morituri/rip/debug.py: 	* morituri/test/test_common_cache.py: 	  Add rip debug resultcache list to list cached results.
pep8 fixes
	* morituri/common/cache.py (added): 	* morituri/test/cache (added): 	* morituri/test/cache/result (added): 	* morituri/test/cache/result/fe105a11.pickle (added): 	* morituri/test/test_common_cache.py (added): 	* morituri/common/Makefile.am: 	* morituri/common/program.py: 	* morituri/test/Makefile.am: 	  Extract ResultCache object into separate file.
pychecker fixes
	* morituri/rip/drive.py: 	  rip drive list now shows configured read offset if applicable.
	* morituri/rip/cd.py: 	  Use configured read offset for drive if possible. 	  Fixes #76.
	* morituri/rip/main.py: 	  Add the config object to the root command. 	* morituri/rip/offset.py: 	  Save the drive's read offset when we find it.
	* morituri.spec.in: 	* morituri/common/config.py: 	  Use XDG if we can import xdg. 	  Fix writing the config.
	* morituri/common/drive.py: 	* morituri/rip/drive.py: 	  Extract getDeviceInfo function.
add missing tests
	* morituri/common/config.py (added): 	* morituri/test/test_common_config.py (added): 	* morituri/common/Makefile.am: 	* morituri/test/Makefile.am: 	  First stab at adding a configuration file to store 	  drive read offsets.
add TODO
pep8 fixes
	* morituri/common/program.py: 	* morituri/rip/cd.py: 	  Reset rip duration when we continue a rip but have to rerip 	  a track.
	* morituri/common/program.py: 	* morituri/program/cdparanoia.py: 	* morituri/result/result.py: 	  Track ripping speed for test and encode per-track.
	patch by: mustbenice 	* morituri/program/cdparanoia.py: 	* morituri/result/result.py: 	* morituri/rip/cd.py: 	* morituri/test/test_program_cdparanoia.py: 	  Get cdparanoia version. 	  Store both cdparanoia and cdrdao versions on rip result.
	* morituri/program/cdparanoia.py: 	  Make sure we calculate fractional speed.
	patch by: mustbenice 	* morituri/common/program.py: 	* morituri/program/cdparanoia.py: 	* morituri/result/logger.py: 	* morituri/result/result.py: 	  Calculate speed of reading track. 	  Output Test and Copy speed per track in log.
	* morituri.spec.in: 	  Add plugins directory.
	* morituri/result/logger.py: 	* morituri/result/result.py: 	* morituri/rip/cd.py: 	* morituri/rip/main.py: 	  Expose loggers as pluggable. 	  Add --logger option to rip cd rip to specify logger.
	* configure.ac: 	* morituri/configure/installed.py.in: 	* morituri/configure/uninstalled.py.in: 	  Create configure.configure.pluginsdir
	* configure.ac: 	  back to development.
mark release
	* NEWS: 	* README: 	* RELEASE: 	* configure.ac: 	* morituri.doap: 	  Releasing 0.1.3, "cranes"
	* morituri/common/encode.py: 	  Also remove buggy audio parsers when encoding. 	  Fixes #73.
	* morituri/common/encode.py: 	  Use vbr-quality instead of quality for vbr.  Fixes #94.
here's to me being stupid
update urls
fix dist
	* morituri/image/cue.py: 	* morituri/image/table.py: 	* morituri/image/toc.py: 	  Fix pychecker warnings.
	* morituri/common/program.py: 	  Add %y to template for year.  Fixes #98.
	* morituri/common/common.py: 	* morituri/common/program.py: 	* morituri/image/table.py: 	* morituri/rip/cd.py: 	* morituri/test/test_common_common.py: 	* morituri/test/test_image_toc.py: 	  Handle cases where disc_template and track_template are not in 	  the same directory.
	* morituri/test/test_common_encode.py: 	  Work around https://bugzilla.gnome.org/show_bug.cgi?id=688625
	* morituri/test/common.py: 	  Make tests log.
add tests
	* morituri/common/common.py: 	* morituri/image/cue.py: 	* morituri/image/toc.py: 	  factor out getRealPath
	* morituri/image/toc.py: 	* morituri/test/test_image_toc.py: 	  Add test for getRealPath.  Fix bug found by it for absolute paths.
	* morituri/image/table.py: 	* morituri/test/test_image_table.py: 	* morituri/test/test_image_toc.py: 	  Increase coverage.
	* Makefile.am: 	* doc/Makefile.am: 	  Adapt to changing over to git module for python-command
put symlink to github checkout
remove command externals
	* morituri/extern/task/gstreamer.py: 	  Fix wrong commit made to fix #89.
give a logname
	* gstreamer.py: 	  Only set an exception once in bus_error_cb. 	  Was triggered by morituri's checksum test, but only 	  if multiple tests were run - got the same bus error 	  twice.
simplify logic; log bus error cb
use a logging task runner
fix docstring
make a LogStub class
fix header
pep8 fixes
	* morituri/rip/offset.py: 	  Don't let an exception on testing an offset slip pass. 	  Fixes #99.
convert prints to writes
self.stdout instead of print
pep8 fixes
pep8 fixes
	* morituri/program/cdparanoia.py: 	* morituri/rip/cd.py: 	  Add a number of tries to rip a track.
pep8 fixes
pep8 fixes
pep8 fixes
pep8 fixes
pep8 fixes
pep8 fixes
pep8 fixes
pep8 fixes
pep8 fixes
pep8 fixes
pep8 fixes
pep8 fixes
pep8 fixes
pep8 fixes
pep8 fixes
pep8 fixes
pep8 fixes
pep8 fixes
pep8 fixes
pep8 fixes
pep8 fixes
pep8 fixes
pep8 fixes
pep8 fixes
pep8 fixes
pep8 fixes
pep8 cleanup
pep8 cleanup
	* misc/pep8.py (added): 	* Makefile.am: 	  Add pep8 target.
whitespace
log checksums
remove unused import
remove whitespace
	* morituri/extern/task/gstreamer.py: 	* morituri/test/test_common_checksum.py: 	  Protect backslashes in names.  Fixes #89.
	* morituri/common/drive.py: 	  If cdio.get_devices_with_cap finds a single drive, it returns a 	  str instead of a list.  Work around that bug.  Fixes #102. 	* morituri/test/test_common_drive.py (added): 	* morituri/test/Makefile.am: 	  Add test for it.  Caught a bug in my first implementation, too!
	* morituri/common/Makefile.am: 	* morituri/common/checksum.py: 	* morituri/common/encode.py: 	  Add a GstPipelineTask that lets us log. 	  Handle checksumming of small tracks better.
	* morituri/common/checksum.py: 	* morituri/common/encode.py: 	  Add a GstPipelineTask that lets us log. 	  Handle checksumming of small tracks better.
remove unused line
revert accidental commit
add new file
	* task.py: 	  Add a debug statement.
	* morituri/rip/main.py: 	  Handle EmptyError.
	* morituri/rip/debug.py: 	  Add encode debug.
	* morituri/common/program.py: 	  Use a temp var to make code more readable.
	* morituri/result/logger.py: 	  Fix logging of AR data
	* morituri/common/program.py: 	  Tell us which track is not in the db.
	* morituri/common/musicbrainzngs.py: 	  Handle multiple artists correctly.
	patch by: Christophe Fergeau <cfergeau at redhat.com) 	* morituri/common/program.py: 	  When morituri finds multiple matches for a given release, it only 	  keeps the releases whose length are the closest to the CD being 	  ripped. 	  However, this currently interacts badly with the --release-id 	  parameter because this duration filtering is done before trying to 	  do the release-id matching. The release that the user has specified 	  may have been removed from the potential matches by the time the 	  release 	  id match is tried. 	  This commit removes the duration filtering when the user explicitly 	  specified a release id. I've observed this bug with the first disc 	  of The Wall (Experience Edition) by the Pink Floyd. 	  Fixes #91.
	patch by: Christophe Fergeau <cfergeau at redhat.com) 	* morituri/common/program.py: 	  When --release-id is used, we are not making guesses based on the 	  CD lengths, so the message saying that we picked the closest match 	  in duration, which can still trigger, is inappropriate.
add debug
	* TODO: 	* morituri/common/program.py: 	* morituri/rip/cd.py: 	  Add rip cd rip --release-id as an option to select the exact 	  release this disc is a part of. 	  Fixes Radiohead - Pablo Honey and U2 - Achtung Baby
	* morituri/rip/debug.py: 	  Properly write utf-8 encoded strings to stdout.
add TODO
	* morituri/common/program.py: 	  Actually return the result from verifyTrack. 	  Debug the cache loading some more.  Make a note for a TODO.
	* morituri/common/musicbrainzngs.py: 	  Get the artist credit for a track/album; Fixes Gorky - Gorky.
	* morituri/common/checksum.py: 	* morituri/common/program.py: 	  Fix/add logging.
add a TODO
	* morituri.spec.in: 	  Spec fix. 	* morituri/image/image.py: 	  Log fix.
	* morituri/rip/debug.py: 	  Remove musicbrainz command.
	* configure.ac: 	  Doing a pre-release.
typo
	* morituri/test/test_common_program.py: 	  Remove use of musicbrainz module.
	* morituri/test/Makefile.am: 	  Don't package old musicbrainz test.
	* morituri/extern/Makefile.am: 	  Hopefully fix both make and make distcheck.
	* morituri/test/Makefile.am: 	* morituri/test/morituri.release.3451f29c-9bb8-4cc5-bfcc-bd50104b94f8.json (added): 	* morituri/test/test_common_musicbrainzngs.py (added): 	  Add test for previous bug of a release not having a date.
	* morituri/rip/main.py: 	* morituri/common/musicbrainzngs.py: 	* morituri/common/program.py: 	* morituri/rip/cd.py: 	  Add -R option to rip to record API results for debugging.
doc fixes
	* morituri/common/musicbrainzngs.py: 	  Fix case of metadata not having length. 	  Fix case of release not having a date.
	* morituri/common/Makefile.am: 	* morituri/common/musicbrainzngs.py: 	* morituri/common/program.py: 	* morituri/extern/Makefile.am: 	  Use musicbrainz NGS for ripping. 	  Can now rip Weezer, the Blue Album, both discs.
	* morituri/rip/debug.py: 	* morituri/common/musicbrainzngs.py (added): 	  Rewrite using python-musicbrainz-ngs. 	  Add rip debug musicbrainzngs command for testing, 	  seems to work on Weezer - Blue Album - disc 2
	* morituri/extern/Makefile.am: 	* morituri/extern/musicbrainzngs/musicbrainz.py (svn:special): 	* morituri/extern/musicbrainzngs/mbxml.py (svn:special): 	* morituri/extern/musicbrainzngs (added): 	* morituri/extern/musicbrainzngs/mbxml.py (added): 	* morituri/extern/musicbrainzngs/__init__.py (added): 	* morituri/extern/musicbrainzngs/musicbrainz.py (added): 	  Pull in my fork of python-musicbrainz-ngs
	* morituri/common/musicbrainz.py: 	* morituri/rip/debug.py: 	  Doc/output fixes.
	* morituri/rip/debug.py: 	  Adapt to splitup.
	* morituri/rip/debug.py: 	  Add rip debug musicbrainz command to look up information on 	  disc id's.
	* morituri/common/Makefile.am: 	* morituri/common/musicbrainz.py: 	* morituri/common/program.py: 	* morituri/test/test_common_program.py: 	* morituri/test/Makefile.am: 	* morituri/test/test_common_musicbrainz.py (added): 	* morituri/common/musicbrainz.py (added): 	  Split off musicbrainz-specific code.
	* morituri/common/Makefile.am: 	* morituri/common/musicbrainz.py: 	* morituri/common/program.py: 	* morituri/test/Makefile.am: 	* morituri/test/test_common_musicbrainz.py (added): 	* morituri/common/musicbrainz.py (added): 	  Split off musicbrainz-specific code.
	* TODO: 	* morituri/extern/task/task.py: 	  Instead of chaining next in multi tasks, making the call 	  chain larger (and exceed maximum depth on track 75), schedule 	  it immediately.
whitespace removal
add TODO
	* morituri/test/Makefile.am: 	  Include test .xml responses.
make things more loggable
	* morituri/common/common.py: 	  Add shrinkPath to write shorter path names. 	* morituri/test/test_common_common.py (added): 	  Add test. 	* morituri/program/cdparanoia.py: 	  Catch ENAMETOOLONG and shrink path. 	* morituri/common/program.py: 	  Update track result's filename if it was shrunk. 	* morituri/rip/cd.py: 	  set the possibly shrunk path on the result.
	* morituri/program/cdparanoia.py: 	  Log properly again. 	  Properly set exception when we can't rename the file.
	* morituri/extern/task/gstreamer.py: 	  Query using time if DEFAULT fails.
	* morituri/common/program.py: 	  Add Musicbrainz command.
add ivars to TrackMetadata
assert we get metadata
add tasks
	* morituri/common/program.py: 	  If any track is missing duration, set the whole album duration 	  to 0.
remove import
change to description.
	* morituri/common/gstreamer.py: 	  flacparse is busted in gst-plugins-good 0.10.30 too.
doc fix
make sure we stop on bad crc
	* task.py: 	  Better logging when scheduling. 	* gstreamer.py: 	  If paused() returns True, don't go to playing. 	  add a method for querying duration in the common case.
print out duration before for comparison on musicbrainz
	* morituri/common/program.py: 	  Don't fail if there is no metadata.
	* morituri/common/program.py: 	* morituri/rip/debug.py: 	  Pychecker fixes.
	* TODO: 	  Add a note about das capital disc. 	* morituri/test/release.08397059-86c1-463b-8ed0-cd596dbd174f.xml: 	* morituri/test/release.93a6268c-ddf1-4898-bf93-fb862b1c5c5e.xml: 	  Add musicbrainz ws1 results for Das Capital and Ladyhawke. 	* morituri/test/test_common_program.py: 	  Fix typos. 	  Add tests for Ladyhawke and Das Capital duration and parsing. 	* morituri/test/test_image_table.py: 	  Fix according to new algorithm. 	* morituri/test/test_image_toc.py: 	  Get frame length for both cd's. 	* morituri/image/table.py: 	  Add getFrameLength method.  Fix up duration.
	* morituri/common/program.py: 	* morituri/rip/cd.py: 	  Always print MusicBrainz URL.
	* morituri/test/release.c7d919f4-3ea0-4c4b-a230-b3605f069440.xml: 	  Add release data for Bettie Serveert, Lamprey 	* morituri/test/test_common_program.py: 	  Add a test for parsing and getting the whole duration. 	* morituri/common/common.py: 	  Add a method to format time. 	* morituri/common/program.py: 	  Add duration to tracks and release metadatas. 	  When there are multiple matches, look up the closest in duration. 	  Make sure that multiple matches closest in duration contain same 	  artist and title. 	  Complain about the other ones. 	* morituri/image/table.py: 	  Add a method to calculate a duration from the table. 	* morituri/test/test_image_table.py: 	  Add a test for it.
	* morituri/rip/cd.py: 	  Make sure we definitely fail on failed checksum.
update
	* doc/release: 	  Add note on actually running. 	* morituri/common/program.py: 	  Fix when running rip cd rip --unknown
	* task.py: 	  Remove scrubFilename call.
	* task.py: 	  Pull in getExceptionMessage privately.
	* morituri/extern/task/task.py: 	  Also stub out log calls on Runner.
	* morituri/extern/task/task.py: 	  Also handle error() log calls.
	* morituri/program/cdparanoia.py: 	  Make sure exceptions don't prevent the task from chaining up 	  to the parent stop() implementation, giving the runner a chance 	  to actually stop.
	* morituri/rip/debug.py: 	  Add checksum task for debugging.
	* gstreamer.py: 	* task.py: 	  Don't rely on the log module; users that want to log 	  should first subclass from a log class that implements 	  warning/info/debug/log
	* gstreamer.py: 	  Document bus and pipeline.  Make bus public.
update headers
	* morituri/common/checksum.py: 	* morituri/common/common.py: 	* morituri/common/encode.py: 	* morituri/image/image.py: 	* morituri/test/test_common_encode.py: 	  Moved quoteParse.
	* gstreamer.py: 	  Add quoteParse() method.
	* gstreamer.py: 	  Add getPipeline() method. 	  Base class implementation uses getPipelineDesc().
	* morituri/common/Makefile.am: 	* morituri/common/checksum.py: 	* morituri/common/gstreamer.py: 	* morituri/extern/Makefile.am: 	* morituri/extern/task/gstreamer.py: 	* morituri/common/gstreamer.py (added): 	  Extract function to remove audio parsers. 	  Fix up dist.
add module __init__
	* morituri/extern/task (added): 	* morituri/extern/task/taskgtk.py (added): 	* morituri/extern/task/gstreamer.py (added): 	* morituri/extern/task/task.py (added): 	* morituri/common/taskgtk.py (deleted): 	* morituri/common/gstreamer.py (deleted): 	* morituri/common/task.py (deleted): 	  Move task-related modules into an extern directory so other 	  projects can use them. 	* morituri/common/checksum.py: 	* morituri/common/encode.py: 	* morituri/image/image.py: 	* morituri/program/cdparanoia.py: 	* morituri/program/cdrdao.py: 	* morituri/rip/cd.py: 	* morituri/rip/debug.py: 	* morituri/rip/image.py: 	* morituri/rip/main.py: 	* morituri/rip/offset.py: 	* morituri/test/test_common_checksum.py: 	* morituri/test/test_common_encode.py: 	* morituri/test/test_image_image.py: 	  Adapt.  Tests work.
	* morituri/program/cdrdao.py: 	  Avoid floating point error.
	* morituri/common/task.py: 	  Log which task we are notifying progress on. 	* morituri/common/program.py: 	  Solve a problem where a release does not have an .id, 	  which means it's only half in musicbrainz (artist 	  and title, but no URL to the disc)
add
	* morituri/program/cdrdao.py: 	  Fix log output. 	  Do progress output while scanning TOC.
	* configure.ac: 	* doc/release: 	  Back to trunk.
releasing 0.1.2
remove fake entry
add gtk stuff to blacklist
	* morituri/rip/cd.py: 	  Use %default in options description.
	* morituri/rip/cd.py: 	  Ouch, was using the DISC TEMPLATE for the tracks.
	* morituri/test/test_common_program.py: 	  Add a test for the template in #66.
	* morituri/rip/cd.py: 	  Templates should have same number of slashes. 	  This avoids #66. 	  (Possibly, it should also be the same directory, or more code 	   should be written to handle that case). 	* morituri/rip/main.py: 	  Catch CommandError.
	* morituri/rip/cd.py: 	  Create variables for default templates.
	* morituri/test/test_common_program.py: 	  Add tests for naming of disc output location.
add debug
	* morituri/common/gstreamer.py: 	  Actually remove it if it's good and old.
	* morituri/common/gstreamer.py: 	  In -bad the plugin is called audioparsersbad.
	* morituri/common/gstreamer.py: 	  Add debugging about audioparsers removal.
	* morituri/common/gstreamer.py: 	  Also remove audioparsers if it's in bad.
	* configure.ac: 	  Time for a prerelease.
	* morituri/common/gstreamer.py: 	  Remove parsers for current git trunk of good too.
	* morituri/common/encode.py: 	  Query for duration and use it in level callback to set progress. 	  Works around F-15 bug where encode progress is not being updated.
	* morituri/rip/Makefile.am: 	* morituri/rip/main.py: 	* morituri/rip/debug.py (added): 	  Add helper command to debug tasks. 	* morituri/common/encode.py: 	  Add debug.
	* morituri/test/test_common_encode.py: 	  Use pink-noise as a wave form to make sure it's long enough. 	  Fixes last tests for F-15.
	* morituri/common/checksum.py: 	* morituri/common/gstreamer.py: 	  Remove audioparsers plugin if it has the known bug. 	  Fixes #64.
	* morituri/common/task.py: 	  Show us when we stop twice. 	* morituri/common/gstreamer.py: 	  Stop on Exceptions.
	* morituri/common/common.py: 	  Add an EmptyError. 	* morituri/common/checksum.py: 	  Set it when we don't get any frames. 	* morituri/rip/main.py: 	  Catch it and stop ripping if this happens.
	* morituri/common/task.py: 	  More exception handling and debug.
	* morituri/common/task.py: 	  add task argument to TaskRunner.schedule so we can get exceptions. 	  Add .schedule method to Task to pass self. 	* morituri/common/checksum.py: 	* morituri/common/encode.py: 	* morituri/common/gstreamer.py: 	* morituri/program/cdparanoia.py: 	* morituri/program/cdrdao.py: 	  Adapt.
comment
	* morituri/test/test_common_encode.py: 	  Write a non-sine wave so we have an actual flac file that will 	  typefind.
	* morituri/image/image.py: 	  Actually set exception so MultiTask tells us what went wrong.
	* morituri/common/task.py: 	  Document and change name of a method.
	* morituri/common/gstreamer.py: 	  Add a cvar to stop going to playing. 	* morituri/image/image.py: 	  Convert AudioLengthTask to GstPipelineTask. 	* morituri/test/test_image_image.py: 	  Adapt to new typefind error we run in.
add exception to debug
add a repr to show GError
	* morituri/common/gstreamer.py: 	  Stop task when we get an exception. 	  Don't make pipeline go to PLAYING if we got an exception 	  before doing so.
	* morituri/common/encode.py: 	  Convert TagReadTask to gstreamer.GstPipelineTask and 	  remove lots of duplicate code.
	* morituri/common/checksum.py: 	* morituri/common/encode.py: 	* morituri/common/gstreamer.py: 	  Move play to base class of GstPipelineTask.
	* morituri/common/gstreamer.py: 	  Add a stop method and a stopped overridable handler. 	* morituri/common/checksum.py: 	* morituri/common/encode.py: 	  Adapt to using stopped.
	* morituri/test/test_common_encode.py: 	  Generate an actual file by spawning gst-launch; otherwise 	  with proper error handling we get an error from wavparse that 	  there is not enough data to typefind. 	* morituri/common/gstreamer.py: 	  Move the gst import to start() and set it as a class attribute. 	  Document methods. 	* morituri/common/encode.py: 	  Convert EncodeTask to a GstPipelineTask.
	* morituri/common/encode.py: 	  Add some debug.
	* morituri/common/program.py: 	  AccurateRip responses should be treated per track; one response set 	  isn't necessarily from the same pressing. 	  The first response set contains all the highest confidence 	  checksums, and so on in decreasing order. 	  So don't assert about one track having a checksum matching from 	  a different response set. 	  Fixes #5.
remove unused var
	based on code by: Loïc Minier <lool at dooz.org> 	* morituri/rip/Makefile.am: 	* morituri/rip/main.py: 	* morituri/rip/accurip.py (added): 	  Add a rip accurip show command to show the accuraterip information 	  for a given URL.  See #5.
	* morituri/image/table.py: 	  Extract one function to write a FILE line.
	patch by: Ross Burton <ross at burtonini.com> 	* morituri/image/table.py: 	  When writing the .cue file, only write the basename, since 	  the .cue file gets stored in the album directory. 	  Fixes #10.
	* morituri/rip/main.py: 	  Give a nice error message if cdrdao cannot read the disc. 	  Fixes #62.
	* morituri/rip/main.py: 	  Give a nice error message if cdrdao cannot read the disc. 	  Fixes #29.
add comment
	* morituri/program/cdparanoia.py: 	  Since stop can be same as start, add + 1 to progress calculation. 	  Fixes #37.
	* morituri/program/cdparanoia.py: 	  Since stop can be same as start, add + 1 to progress calculation. 	  Fiexes #37.
distribute
	* morituri/common/gstreamer.py: 	  Remove unused imports. 	* morituri/image/image.py: 	  Remove halfbaked code.
	* morituri/rip/cd.py: 	  Factor out function to write .m3u lines.
	patch by: Loïc Minier <lool at dooz.org> 	* morituri/rip/cd.py: 	  Don't strip extension of HTOA track. 	  Fixes #50.
	* morituri/result/logger.py: 	  Always write strftime in C locale.  Fixes second bug 	  mentioned in #49.
	* morituri/common/checksum.py: 	* morituri/image/image.py: 	* morituri/test/test_common_checksum.py: 	* morituri/common/gstreamer.py (added): 	  Factor out GstException and GstPipelineTask.
document
	* misc/morituri-uninstalled: 	  The binary name is rip, so add an option to override. 	  Fixes #46.
	* morituri/rip/image.py: 	  Document image subcommand.  Fixes #61.
update
	* morituri/test/Makefile.am: 	  Package error progress output.  Fixes distcheck on slaves.
	* morituri/test/test_program_cdparanoia.py: 	  Update expected quality percentage. 	  Was broken since its commit in [432].
	* morituri/common/checksum.py: 	* morituri/common/encode.py: 	* morituri/image/table.py: 	* morituri/rip/cd.py: 	* morituri/rip/image.py: 	* morituri/rip/offset.py: 	* morituri/test/test_common_accurip.py: 	* morituri/test/test_common_checksum.py: 	* morituri/test/test_image_cue.py: 	* morituri/test/test_image_table.py: 	  Pychecker fixes.
	* morituri/common/checksum.py: 	  Actually raise the exception. 	* morituri/common/task.py: 	  Document interface more clearly. 	* morituri/test/test_common_checksum.py: 	  Use tcommon for test.common
	* morituri/common/common.py: 	  Don't fail on loading pickle.
	* morituri/common/encode.py: 	  Alac does not have merge_tags.  Fixes #15.
	* morituri/program/cdparanoia.py: 	* morituri/common/encode.py: 	* morituri/common/program.py: 	* morituri/rip/cd.py: 	  Add action and what args to describe task better.
	* morituri/common/task.py: 	  Add more debug.
	* morituri/rip/main.py: 	  More debug info: args, version, revision.
	* morituri/configure/configure.py (svn:keywords): 	  Expand revision. 	* morituri/configure/configure.py: 	  Set it on the revision local.
	* morituri/common/encode.py: 	  wavenc does not have merge_tags, it seems. 	  So don't call an element a tagger, don't merge tags if there is 	  no tagger, and complain if there is no merge_tags when we think 	  there should be.
remove bogus entry
	* morituri/program/cdparanoia.py: 	  cdparanoia can hang indefinitely on scsi read errors. 	  For example, on some drives, when trying negative offsets. 	  Notice them, count them, and fail after 100. 	* morituri/test/test_program_cdparanoia.py: 	* morituri/test/cdparanoia.progress.error (added): 	  Add a test for this output.
	* morituri/common/program.py: 	* morituri/rip/offset.py: 	  When finding the offset, also load and possibly unmount, resolving 	  to the real path for the device.
update README
	* morituri/common/encode.py: 	  Debug failing to write tags better.  See #60.
	* morituri/program/cdparanoia.py: 	  Extend FileSizeError with an extra message. 	* morituri/rip/offset.py: 	  Print a reasonable warning when we cannot rip with a certain offset. 	  See #57.
	* morituri/rip/drive.py: 	  Fix typo.  Fixes #59.
	* morituri/common/checksum.py: 	  Create a GstException to wrap a Gst.GError. 	  Create a base GstPipelineTask class. 	  Use it in Checksum and TRM tasks. 	  Raise and don't proceed to call .paused() when a GstError happens. 	  Should help debug https://bugs.launchpad.net/bugs/735053 	* morituri/test/test_common_checksum.py: 	  Adapt test.
add doc
change url
	patch by: Ross Burton 	* morituri/common/program.py: 	  On compilation albums the album artist is different to the artist. 	  If this is the case, morituri should write both tags. 	  Fixes #43.
	patch by: Ross Burton 	* morituri/common/program.py: 	  On compilation albums the album artist is different to the artist. 	  If this is the case, morituri should write both tags. 	  Fixes #43.
require python-CDDB
	* morituri/common/program.py: 	* morituri/image/table.py: 	* morituri/rip/cd.py: 	  Get CDDB disc id.  Use it to print info when not found on 	  MusicBrainz.
eject as well
add errors properly
	* morituri/rip/cd.py: 	  Add -U/--unknown option to continue ripping even if the CD is 	  unknown.  Default to False.
	* morituri/common/program.py: 	* morituri/rip/cd.py: 	  Add load and eject device.  Do so before and after ripping.
	patch by: Loïc Minier <lool at debian dot org> 	* examples/ARcalibrate.py: 	* examples/ARcue.py: 	* examples/readdisc.py: 	* morituri/rip/cd.py: 	* morituri/rip/offset.py: 	  s/reponse/response. 	  Fixes #51.
	* morituri/program/cdrdao.py: 	  Add logCategory to CDRDAO tasks. 	  Remove errors from parser, set them publically on task. 	  Properly raise exceptions on data cd's with correct stack origin.
add track
	* morituri/common/program.py: 	  Comment where we got the template variables from. 	* morituri/rip/cd.py: 	  Document the template variables.
	* morituri/program/cdparanoia.py: 	  Warn about missing cdparanoia too.
	* morituri/common/common.py: 	  Add MissingDependencyException. 	* morituri/program/cdrdao.py: 	* morituri/rip/main.py: 	  Use it to warn about missing cdrdao.
	* morituri/common/task.py: 	  Add exception traceback for easier debugging.
	* morituri.spec.in: 	  Add requires for python-setuptools since we use parse_version. 	  Fixes #32.
display checksum as hex instead so it is the same as the other one
	* morituri/common/program.py: 	  Set results by default so that it is set even if we get an 	  exception getting them. 	  Fixes #35.
	* morituri/test/test_image_toc.py: 	  Fix distcheck by writing unicode toc filename in a temp dir.
	* morituri/rip/cd.py: 	  Log the version at the beginning to help in bug reports.
	* morituri/rip/main.py: 	  Fix another UnicodeEncodeError problem as mentioned in #25.
add release notes
	* morituri/test/Makefile.am: 	* morituri/test/jose.toc (added): 	* morituri/test/JoséGonzález.toc (deleted): 	  Rename utf-8 file to a normal file. 	* morituri/test/common.py: 	* morituri/test/test_common_checksum.py: 	* morituri/test/test_common_encode.py: 	* morituri/test/test_image_image.py: 	* morituri/test/test_image_toc.py: 	  Copy the normal file first to the utf-8 filename, if supported. 	  Skip tests that need unicode when we are not in a utf-8 locale.
	* configure.ac: 	* doc/release: 	  Back to trunk.
releasing 0.1.1, Dead
remove print
move checksum import inline so we don't import gst again
BaseException.message is deprecated so avoid it
don't fail on htoa because we have no musicbrainz info
add note
	* morituri/common/encode.py: 	* morituri/rip/image.py: 	  Provide status on the retagging.
	patch by: Peter Oliver 	* morituri/program/cdparanoia.py: 	  Respect umask for encoded files.  Fixes #17.
	* morituri/common/encode.py: 	  Before moving the newly tagged file to overwrite the original 	  one, copy over mode.
	* morituri/common/program.py: 	  Commit one missing line from patch in #4 for multi-artist discs.
	* morituri/common/program.py: 	  Commit one missing line from patch in #4 for multi-artist discs.
	patch by: Peter Oliver. 	* morituri/common/program.py: 	  Handle multi-artist releases where track artist is unset. 	  Fixes #14.
	* morituri/rip/image.py: 	  Fix more utf-8 issues.
	* morituri/rip/image.py: 	  Fix more utf-8 issues.
fix case of not having mb info
fix case of not having mb info
	* morituri/image/image.py: 	  Remove dead code.
	* morituri/common/encode.py: 	  Fix wrong code for checksum comparison.
	* morituri/common/program.py: 	  Rename some vars to start with mbid.  Fix pychecker issues.
remove unused var
 pychecker fix
	* morituri/common/program.py: 	  Add a retagging command. 	  Add a getMusicBrainz() method. 	* morituri/rip/cd.py: 	  Use it. 	* morituri/image/image.py: 	  Add a task to retag an image. 	* morituri/rip/image.py: 	  Add a command to retag an image.
	* morituri/common/encode.py: 	  Add tasks to read, write, and safely retag flac files. 	* morituri/test/test_common_encode.py: 	  Add tests for this.
	* 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.
	* morituri/common/encode.py: 	  pychecker fix.
	* morituri/common/encode.py: 	  Add a task to read tags. 	* morituri/test/test_common_encode.py: 	  Add a test.
add something to check
	* morituri/common/encode.py: 	  Add a vbr profile.
	* morituri/rip/image.py: 	  Don't splitext on inputdir; fixes encoding of directories like 	  Sigur Ros - Takk... (which removed a period)
	* morituri/image/table.py: 	* morituri/program/cdparanoia.py: 	  Do some 80 character cleanups.
	* morituri/rip/image.py: 	  Fix problem to encode from files with unicode chars.
	* morituri/program/cdparanoia.py: 	  Add some debug. 	* morituri/common/encode.py: 	  Add more debug. 	  Handle the case where peak is full scale, and peakdB thus 0, 	  which triggered not setting self.peak.
pychecker fix
remove whitespace
	patch by: Peter Oliver. 	* morituri/common/program.py: 	  Allow using sortName for artist/track using %S/%s. 	  Fixes #19.
	* doc/release: 	  Document having clean test run. 	* morituri/common/encode.py: 	  Catch and properly stop on gst.QueryError. 	  Don't set peak in stop if we had an error. 	* morituri/test/test_common_encode.py: 	* morituri/test/test_common_renamer.py: 	* morituri/test/test_image_cue.py: 	  Clean up after tests.
	* morituri/common/task.py: 	* morituri/image/cue.py: 	  Add logCategory. 	* morituri/image/image.py: 	  If subtasks had an exception, retrigger the exception and stop.
	* morituri/image/image.py: 	  Fix AudioLengthTask for the case where we don't have the decoder, 	  by instead of doing get_state, waiting for an ASYNC_DONE or ERROR 	  message.  Properly raise a gst.GError in that case. 	* morituri/common/task.py: 	  Add some debug. 	* morituri/test/test_image_image.py: 	  After this fix, we now catch the TYPE_NOT_FOUND because of an 	  empty stream instead of the later gst.QueryError. 	* morituri/test/test_common_encode.py: 	  Let us know what it is if not a gst.QueryError.
clean up rip.1 in distclean
	* doc/Makefile.am: 	  Don't put rip.1 manpage in subdir.
	* morituri/common/common.py: 	  add quoteParse function to quote properly for gst.parse_launch() 	* morituri/common/checksum.py: 	  Fix single quote problem. 	  use self.setException() 	* morituri/common/encode.py: 	  Fix single quote problem. 	* morituri/image/image.py: 	  Fix single quote problem. 	  Reraise gst.QueryError. 	* morituri/test/test_common_encode.py: 	* morituri/test/test_common_encode.py (added): 	  Add tests for unicode/single/double quote. 	* morituri/test/test_image_image.py: 	* morituri/test/test_common_checksum.py: 	  Add tests for single/double quote. 	* morituri/test/common.py: 	  add twisted-like failUnlessRaises to TestCase that returns 	  the exception, so we can check wrapped exceptions in TaskException. 	  Fixes #16.
	* morituri/common/common.py: 	  add quoteParse function to quote properly for gst.parse_launch() 	* morituri/common/checksum.py: 	  Fix single quote problem. 	  use self.setException() 	* morituri/common/encode.py: 	  Fix single quote problem. 	* morituri/image/image.py: 	  Fix single quote problem. 	  Reraise gst.QueryError. 	* morituri/test/test_common_encode.py: 	* morituri/test/test_common_encode.py (added): 	  Add tests for unicode/single/double quote. 	* morituri/test/test_image_image.py: 	* morituri/test/test_common_checksum.py: 	  Add tests for single/double quote. 	* morituri/test/common.py: 	  add twisted-like failUnlessRaises to TestCase that returns 	  the exception, so we can check wrapped exceptions in TaskException.
add dir to generate man page in
	* morituri/common/task.py: 	  Wrap exceptions during tasks in a TaskException, storing the 	  message, for improved error reporting later on.
	* doc/Makefile.am: 	* morituri.spec.in: 	* morituri/extern/Makefile.am: 	  Use help2man.py to generate manpage.
make logging work
	* morituri/common/encode.py: 	* morituri/common/program.py: 	* morituri/image/image.py: 	* morituri/program/cdparanoia.py: 	* morituri/rip/cd.py: 	* morituri/rip/image.py: 	* morituri/rip/offset.py: 	  Move all gst-using imports inside functions and classes 	  to avoid 'import gst' eating our options. 	  Fixes #12.
	* bin/Makefile.am: 	  Install rip as the script.
remove result.py
	* morituri/common/Makefile.am: 	  Add missing result.py 	* morituri/test/Makefile.am: 	* morituri/test/test_image_toc.py: 	* morituri/test/JoséGonzález.toc (added): 	* morituri/test/José González.toc (deleted): 	  automake doesn't handle spaces in names, so move it.
script changed
	* bin/rip.in: 	  Add our PYTHONLIBDIR to sys.path if needed.  Should make this 	  work when doing ./configure; sudo checkinstall make install 	  on e.g. Ubuntu.
	* configure.ac: 	* bin/rip.in (added): 	* bin/rip (deleted): 	  Generate bin/rip so we can do sys.path stuff.
add note
	* morituri/rip/offset.py: 	  Add a more complete list of offsets, obtained using misc/offsets.py
	* misc/offsets.py (added): 	  Add a script to calculate list of offsets based on AccurateRip's 	  online database, according to popularity.
add a TODO
	* morituri/common/encode.py: 	  Handle utf-8 properly.
	* morituri/common/program.py: 	  Fix a problem with Arid's new album of not having an id.
	* morituri/common/accurip.py: 	  The AccuRip cache dir could exist without the file; handle that 	  case.
	* morituri/common/program.py: 	  For Various Artists releases, fall back to the release artist if 	  the track artist is None.
apparently this can also throw indexerror
handle exceptions when opening device
fix example for unicode
add TODO items
bump to gplv3
	* morituri/image/image.py: 	  Add ImageEncodeTask to encode a disk image to a different profile 	  and directory. 	* morituri/common/encode.py: 	  Add lossy encoding profiles for mp3 and vorbis. 	  Rename muxer to tagger since that's what we use it for. 	  Do progress probe after level to make sure we get samples for 	  offsets. 	* morituri/rip/image.py: 	  Add rip image encode command.
adding test file
	* morituri/common/task.py: 	  Add exceptionMessage on Task to store the result of 	  log.getExceptionMessage when the stack is still valid.
update release doc
	* configure.ac: 	  Back to TRUNK.
releasing 0.1.0
finally fix whitespace
update project urls
update doap and release notes
whitespace fixes
	* morituri/program/cdparanoia.py: 	  explicitize keyword args. 	  Break some 80+ lines.
	* morituri/rip/offset.py: 	  Pass device parameter to ReadTrackTask.  Thanks to Alex B for 	  spotting this on my blog.
update notes
	* morituri/program/cdparanoia.py: 	* morituri/rip/offset.py: 	  Another unicode fix.
another unicode fix
	* HACKING: 	  More unicode notes. 	* morituri/common/program.py: 	* morituri/image/table.py: 	* morituri/image/toc.py: 	* morituri/result/result.py: 	* morituri/rip/cd.py: 	* morituri/test/test_image_toc.py: 	  Further unicode fixes, for options, CD-Text, paths, ...
remove code.interact fix another unicode oversight
 pychecker fix
	* morituri/program/cdrdao.py: 	  Wrap read in an exception handler. 	* morituri/common/task.py: 	  Debug exceptions more.
	* HACKING: 	  Note unicode handling. 	* morituri/test/test_image_image.py: 	* morituri/image/table.py: 	* morituri/program/cdparanoia.py: 	* morituri/common/checksum.py: 	  Use unicode for paths. 	  Use repr for path representation. 	* morituri/test/test_common_checksum.py: 	  Add test for unicode audio file name.
	* morituri/image/cue.py: 	* morituri/image/toc.py: 	* morituri/test/test_image_cue.py: 	* morituri/test/test_image_toc.py: 	  Read input file as utf-8.  Fix logging of paths. 	* morituri/image/image.py: 	  Document and add asserts for unicodeness of paths. 	  Encode path in launch lines as utf-8
	* morituri/common/task.py: 	  Make SyncRunner wrap start() so we correctly handle any 	  exception being thrown.
	* morituri/common/checksum.py: 	* morituri/test/Makefile.am: 	* morituri/test/test_common_checksum.py (added): 	  Add a check to make sure that checksumming an empty file doesn't 	  hang.  Fix the hang.
update todo
update TODO
	* morituri.spec.in: 	  Add pycdio as requirement.
remove duplicate line
	* morituri/common/program.py: 	  Fix getting AccurateRip results for albums with a HTOA. 	* morituri/test/Makefile.am: 	* morituri/test/test_common_program.py: 	* morituri/test/silentalarm.result.pickle (added): 	  Add testcase for it, Bloc Party's Silent Alarm.
	* morituri.spec.in: 	  Update requirements to work around known bugs.
remove unexisting file
	* morituri/rip/cd.py: 	  Fix warning against rebuilt package.
	* README: 	  Fix up dependencies. 	* morituri.spec.in: 	  Fix dependencies and noarch install location. 	* morituri/common/Makefile.am: 	  Add result.py to dist
	* configure.ac: 	* m4/Makefile.am: 	* m4/as-ac-expand.m4 (added): 	  Correctly set installation dir for noarch python files so that it 	  works on 64 bit.
	* morituri/program/cdrdao.py: 	  Parse version number. 	* morituri/rip/cd.py: 	  Warn about cdrdao versions with a bug. 	* morituri/test/test_program_cdrdao.py: 	  Test that we can parse the version.
	* morituri/program/cdrdao.py: 	  Handle errors.  Tested by not having a CD in the drive.
	* morituri/common/task.py: 	  Document better. 	  Create an ITaskListener interface where we can document. 	  Log some more.
fix distcheck
fix for when there are no responses
	* morituri/test/test_common_program.py: 	* morituri/common/program.py: 	  Extract a common method to get textual representation of 	  AccurateRip results, and test it. 	* morituri/rip/cd.py: 	* morituri/rip/image.py: 	  Use the method.
doc update
fix i
	* morituri/image/table.py: 	  Fix deprecationwarning for python 2.6
	* morituri/test/test_common_program.py (added): 	* morituri/common/program.py: 	  Break verifyImage into two so we can test it. 	  Test it using an AccurateRip result for Luke Haines Is Dead 	  which had a wrongly ripped track 10.
pychecker fix
update docs
fix import
shorten accurip variable names
	* morituri/result/result.py: 	  Document some more.
	* morituri/test/Makefile.am: 	* morituri/test/dBAR-020-002e5023-029d8e49-040eaa14.bin (added): 	  Add AR result for Luke Haines Is Dead disc 1
remove unused import
add note
	* Makefile.am: 	* misc/pycheckerrc: 	* morituri/common/accurip.py: 	* morituri/common/checksum.py: 	* morituri/common/encode.py: 	* morituri/image/table.py: 	* morituri/rip/drive.py: 	  Fix up for pychecker warnings for 2.6 	  Fix rip drive list, which forgot some modules.
	* morituri/rip/main.py: 	* morituri/rip/image.py (added): 	  Add command to verify an image. 	* morituri/common/program.py: 	* morituri/rip/cd.py: 	  Fix AccurateRip checksum output.
declare sessions var
	* morituri/common/drive.py: 	  Really make pycdio and cdio optional. 	* morituri/rip/drive.py: 	* morituri/rip/offset.py: 	  Use drive.getAllDevicePaths()
remove code.interact
	* morituri/result/result.py: 	  Add max confidence from database. 	* morituri/common/program.py: 	* morituri/rip/cd.py: 	  Move AccurateRip checking to program.py 	  Re-rip if verification failed when continuing a rip.
	* morituri/image/cue.py: 	  Better debug.
fix htoapath setting
	* morituri/common/program.py: 	* morituri/rip/cd.py: 	  Serialize the rip result after every rip, so we can pick up 	  where we left off with all result data.
fix problem when not connected
more variable shuffling
	* morituri/common/program.py: 	  Move getPath to Program. 	  Remove arguments to ripTrack that can be gotten from 	  trackResult. 	* morituri/rip/cd.py: 	  Continue without musicbrainz metadata. 	  Unify htoa and normal track ripping. 	* morituri/result/result.py: 	  Add getTrackResult so it's easier to look up track results 	  when there's a HTOA.
	* morituri/common/program.py: 	* morituri/rip/cd.py: 	  Move HTOA checking to program.
	* morituri/result/logger.py: 	  Fix for toctable->table 	* morituri/common/program.py: 	* morituri/rip/cd.py: 	  Move lots of functionality to program module.
add another todo
	* morituri/result/result.py: 	  Change toctable to table since it's a full index table. 	* morituri/common/Makefile.am: 	* morituri/common/program.py (added): 	  Add module and class for program state. 	* morituri/rip/cd.py: 	  Use the program state to clean up the do() function.
pychecker cleanup
	* morituri/rip/cd.py: 	  Massage into 80 characters per line. 	  Make pycdio/cdio optional.
update docs
	* morituri/rip/drive.py: 	  Make pycdio and cdio optional.
split up
add HACKING as copy from README
update README
	* morituri/image/table.py: 	  Add getPregap() method. 	* morituri/rip/cd.py: 	  Use artist.name, not getUniqueName, to avoid monstruous names for 	  Muse. 	  Pass mbdiscid to getPath, so Unknown Disc can be saved with it. 	  Don't set the date if the release doesn't have one. 	  Set pregap on trackResult using new Track.getPregap() 	  Write all log/cue/m3u files as utf-8.
catch queryerror
	* morituri/test/cdparanoia.progress: 	  Add a shorter test file, 23 seconds. 	* morituri/test/test_program_cdparanoia.py: 	  Update the test to adapt.  Check for track quality. 	* morituri/program/cdparanoia.py: 	  Add a measure of track quality based on the number of reads. 	  Use the [wrote] output for progress updates, a bit more 	  jittery in its output. 	* morituri/rip/cd.py: 	  Set track quality on RipResult.
	* morituri/rip/cd.py: 	  Use RipResult to store result information. 	* morituri/result/logger.py (added): 	  Add a Logger to handle the RipResult, much like 	  EAC's log file.
	* morituri/rip/cd.py: 	  Comment out number of track setting on tag for now. 	  MusicBrainz can give us dates in YYYY, YYYY-MM, and YYYY-MM-DD 	  format, so convert to YYYY-MM-DD always. 	  Unmount the data part of the CD we want to rip if it is mounted. 	  Adapt to peak level change. 	  Don't try to write data tracks to the m3u file. 	  Resolve the device path to the actual device path.
	* morituri/result/result.py: 	  Add a Logger base class.
	* configure.ac: 	* morituri/Makefile.am: 	* morituri/result (added): 	* morituri/result/result.py (added): 	* morituri/result/__init__.py (added): 	* morituri/result/Makefile.am (added): 	  Add classes to store track and rip results in.
	* morituri/common/common.py: 	  Add an argument for the delimiter in formatting. 	* morituri/common/encode.py: 	  Most programs use peak volume, not power, so do this too.
	* morituri/test/common.py: 	  Add a method for diffing multiline strings.
	* morituri/common/encode.py: 	  Add a test() method to the profile so we can warn about bad 	  flacenc versions. 	  Encode track number and count, and release date, if possible. 	* morituri/rip/cd.py: 	  Fix another off-by-one error in the tag encoding.
	* morituri/program/cdparanoia.py: 	* morituri/rip/cd.py: 	  Handle another off-by-one error in the m3u handling. 	  Add a getTagList function. 	  Use it to encode tags.
add some goals
	* morituri/common/encode.py: 	* morituri/program/cdparanoia.py: 	* morituri/rip/cd.py: 	  Clean up the temporary unencoded file. 	  Pass profile as objects to tasks, so that temp files have the right 	  extension.
	* morituri/common/encode.py: 	* morituri/program/cdparanoia.py: 	  Add encoding profiles, kept simple for now as a class and 	  subclasses.  Use them to encode.  Calculate peak level while 	  encoding, compared to EAC and replaygain's value. 	* morituri/rip/cd.py: 	  Use the encoding profiles, ripping with the right extension. 	  Add a --profile parameter for it.
	* morituri/rip/cd.py: 	  Clean up track numbering confusion.
	* morituri/common/encode.py (added): 	* examples/encode.py (added): 	  Add an Encode Task, hardcoded to flac for now. 	  Add an example, that also sets tags.
	* morituri/common/task.py: 	  Add debug. 	* morituri/rip/drive.py: 	  Show all drives, not just the ones that happen to have an Audio CD 	  inserted.
add doc
	* morituri/rip/cd.py: 	  Add asserts for comparing id's between the simple toc and 	  the full table. 	  Create the output directory before ripping the htoa. 	  Ignore data tracks for now. 	  Don't fail if we have no AccurateRip responses. 	* morituri/image/table.py: 	  Add a session ivar to Track. 	  Factor in session leadin when calculating track length 	  of last track in a session. 	  add getMusicBrainzSubmitURL() 	  add _getSessionGap() because the session gap size is different 	  for session 2 and all following. 	  Use it in merge() to get offsets right. 	  Fix getAccurateRipURL by only using the audio tracks for the 	  'length in tracks' number 	  Temporarily disable writing out data tracks to a .cue file, 	  since it's not implemented yet. 	  Add canCue to see if we can write a .cue file from the given table, 	  and debug why not if not. 	* morituri/program/cdrdao.py: 	  Rework to rip each session separately instead of using session 9. 	  This fixes session 9 read-toc missing the pregap. 	  Add a simple LineParser for handling output from disk-info. 	  Count tracks relatively for the session, because the output for 	  session 2 for track numbers picks up where session 1 left off. 	  Don't set leadout from TOC printing since for the same reason 	  session 2's leadout is absolute, not relative to start of session. 	  Add a DiscInfoTask. 	  Convert Table and Toc reading tasks to multitasks, first getting the 	  number of sessions, then reading table/toc for each session. 	* morituri/test/test_image_table.py: 	  Fix up MusicBrainz disc id for my Ladyhawke disc. 	  Add AccurateRip URL verification, compared against EAC's. 	* morituri/test/test_image_toc.py: 	  Use two separate session read-toc output files to verify 	  the case of Das Capital. 	  Verify musicbrainz URL.
	* morituri/common/task.py: 	  Add documentation. 	  Use a _task counter instead of duplicating tasks to 	  __tasks; this allows us to add tasks after starting. 	  Catch Exceptions during next() so that we don't get 	  stuck in a main loop that doesn't exit. 	  Raise it later when we're done.
	* morituri/common/common.py: 	  Since the version was inherited from the current code 	  in unpickled objects, separate into classVersion and 	  an instanceVersion set from __init__.
	* morituri/image/toc.py: 	  Add a logName for debugging.
	* morituri/program/cdparanoia.py: 	* morituri/image/image.py: 	  Correctly chain up to parent __init__ for MultiTasks
	* morituri/test/capital.1.toc (added): 	* morituri/test/capital.2.toc (added): 	  Add two .toc's for two sessions of a 2 session disc 	* morituri/image/table.py: 	  Add a merge method to merge in a second session. 	* morituri/test/Makefile.am: 	* morituri/test/test_image_toc.py: 	  Add a test for merging the Das Capital sessions, gets 	  the CDDB disc id right.
	* morituri/common/common.py: 	  Add a persisted cache so that we can store pickles on discs. 	  Automatically delete them if the class version is newer than 	  the object's. 	* morituri/rip/cd.py: 	  Use it.
	* morituri/image/table.py: 	  Add a version ivar to help with versioning pickled objects.
	* morituri/program/cdparanoia.py: 	  Add copy and test CRC's to object.
	* morituri/common/Makefile.am: 	* morituri/common/drive.py (added): 	  Add drive module.
pychecker fixes
	* morituri/program/cdparanoia.py: 	* morituri/program/cdrdao.py: 	* morituri/rip/cd.py: 	* morituri/rip/offset.py: 	  Add device argument to ripping/scanning tasks.
	* morituri/common/accurip.py: 	* morituri/image/image.py: 	* morituri/test/Makefile.am: 	* morituri/test/test_image_image.py: 	* morituri/test/test_common_accurip.py (added): 	  Move accuraterip stuff to the accurip module. 	  Move/create new test file.
	* morituri/rip/Makefile.am: 	* morituri/rip/main.py: 	* morituri/rip/drive.py (added): 	  Add 'rip drive list' command to list available drives. 	* morituri/common/accurip.py: 	  Add force. 	* morituri/rip/cd.py: 	  Add --output-directory argument.
	* morituri/common/Makefile.am: 	* morituri/rip/cd.py: 	* morituri/common/accurip.py (added): 	  Add a module for handling a cache of AccurateRip results. 	  Use it.
	* morituri/rip/Makefile.am: 	* morituri/rip/main.py: 	* morituri/rip/cd.py (added): 	  Add second command, 'rip cd rip' before factoring out functionality.
	* morituri/rip/Makefile.am: 	* morituri/rip/main.py: 	* morituri/rip/offset.py (added): 	  Add first command, 'rip offset find'
	* Makefile.am: 	* morituri/test/Makefile.am: 	  Make distcheck work.
add notes
add README
ignore more
add test file
pychecker and docstring fixes
more pychecker fixes
more pychecker fixes
	* morituri/common/checksum.py: 	  More pychecker fixes.
pychecker fixes
should not be in
update for build
add configure
add init
add configure
	* morituri/common/common.py: 	* morituri/common/renamer.py: 	  Pychecker fixes.
adding m4 dir
moap ignore
moap ignore
add doc
add binary
ignore more
	* RELEASE: 	* misc/pycheckerrc: 	* misc/show-coverage.py: 	* morituri/image/Makefile.am: 	* morituri/program/Makefile.am: 	* RELEASE (added): 	* morituri/image/Makefile.am (added): 	* morituri/program/Makefile.am (added): 	* misc/show-coverage.py (added): 	* misc/pycheckerrc (added): 	  more additions
	* AUTHORS: 	* Makefile.am: 	* NEWS: 	* TODO: 	* autogen.sh: 	* configure.ac: 	* examples/ARcalibrate.py: 	* misc/Makefile.am: 	* misc/morituri-uninstalled: 	* morituri.spec.in: 	* morituri/Makefile.am: 	* morituri/common/Makefile.am: 	* morituri/common/logcommand.py: 	* morituri/extern/Makefile.am: 	* morituri/rip/Makefile.am: 	* morituri/rip/__init__.py: 	* morituri/rip/main.py: 	* morituri/test/Makefile: 	* morituri/test/Makefile.am: 	* configure.ac (added): 	* AUTHORS (added): 	* morituri.spec.in (added): 	* Makefile.am (added): 	* morituri/test/Makefile.am (added): 	* morituri/extern/Makefile.am (added): 	* morituri/common/logcommand.py (added): 	* morituri/common/Makefile.am (added): 	* morituri/Makefile.am (added): 	* morituri/rip (added): 	* morituri/rip/__init__.py (added): 	* morituri/rip/Makefile.am (added): 	* morituri/rip/main.py (added): 	* misc/Makefile.am (added): 	* misc/morituri-uninstalled (added): 	* autogen.sh (added): 	* NEWS (added): 	  Start autotooling.  Add a command-line application.
add etc
moap ignore
ignore more
add a test that doesn't work yet
fix bug caught  by pychecker
fix bugs caught by pychecker
fix bug caught by pychecker
use constants
	* AUTHORS: 	* Makefile.am: 	* NEWS: 	* TODO: 	* autogen.sh: 	* configure.ac: 	* examples/ARcalibrate.py: 	* misc/Makefile.am: 	* misc/morituri-uninstalled: 	* morituri.spec.in: 	* morituri/Makefile.am: 	* morituri/common/Makefile.am: 	* morituri/common/logcommand.py: 	* morituri/extern/Makefile.am: 	* morituri/rip/Makefile.am: 	* morituri/rip/__init__.py: 	* morituri/rip/main.py: 	* morituri/test/Makefile: 	* morituri/test/Makefile.am: 	* configure.ac (added): 	* AUTHORS (added): 	* morituri.spec.in (added): 	* Makefile.am (added): 	* morituri/test/Makefile.am (added): 	* morituri/extern/Makefile.am (added): 	* morituri/common/logcommand.py (added): 	* morituri/common/Makefile.am (added): 	* morituri/Makefile.am (added): 	* morituri/rip (added): 	* morituri/rip/__init__.py (added): 	* morituri/rip/Makefile.am (added): 	* morituri/rip/main.py (added): 	* misc/Makefile.am (added): 	* misc/morituri-uninstalled (added): 	* autogen.sh (added): 	* NEWS (added): 	  Start autotooling.  Add a command-line application.
add changes
	* morituri/program/cdrdao.py: 	  read all sessions by reading session 9. 	* morituri/image/toc.py: 	  Parse ZERO statements properly. 	  Also set absolute offsets when we know them from the .toc file. 	  Properly set audio flag on tracks. 	  FIXME: probably doesn't work if the .toc does not have lengths. 	* morituri/image/table.py: 	  Add some debug to cddb disc id calculation. 	  Fix absolutize function, it was going one index too far. 	  raise ValueError when overriding .absolute with a wrong value. 	* examples/readdisc.py: 	  Show CDDB disc id at the start. 	  Assert when toc and table have different disc id's (to be fixed) 	* morituri/test/test_image_cue.py: 	  Update for having the table already with absolute values. 	* morituri/test/test_image_toc.py: 	  Add Ladyhawke CDDB test, it has a data track.
add toc file with two sessions for testing
	* examples/readdisc.py: 	  Move constants to common
update docs
	* examples/readdisc.py: 	* examples/readhtoa.py: 	* examples/readtoc.py: 	  Rename IndexTable to Table.
	* morituri/image/cue.py: 	* morituri/image/image.py: 	* morituri/image/table.py: 	* morituri/image/toc.py: 	* morituri/program/cdparanoia.py: 	* morituri/program/cdrdao.py: 	* morituri/test/test_image_cue.py: 	* morituri/test/test_image_table.py: 	  Rename IndexTable to Table.
	* morituri/image/cue.py: 	* morituri/image/image.py: 	* morituri/image/table.py: 	* morituri/image/toc.py: 	* morituri/program/cdrdao.py: 	* morituri/test/test_image_cue.py: 	* morituri/test/test_image_table.py: 	  Rename ITTrack to Track.
one more symbol
	* morituri/common/common.py: 	* morituri/image/cue.py: 	  Use FRAMES_PER_SECOND where appropriate.
	* morituri/common/checksum.py: 	* morituri/common/common.py: 	* morituri/image/image.py: 	* morituri/image/table.py: 	* morituri/program/cdparanoia.py: 	  Move constants to common
add another constant before we move
add a test file
	* examples/readdisc.py: 	  Get our metadata only from the toc.
	* examples/readdisc.py: 	  Also work for discs without htoa.
add a debug line
	* examples/readdisc.py: 	  Write .m3u file.
tell us when we're wrong
	* examples/readdisc.py: 	  Rip HTOA as well.  Add disc-template parameter.
	* morituri/image/table.py: 	  Fix a subtle bug in our CDDB disc id calculation. 	  The length of the audio should be calculated as the delta 	  between leadout and start already converted (and truncated) 	  to seconds. 	* morituri/test/bloc.cue: 	* morituri/test/test_image_toc.py: 	  Fix up tests for this.
	* morituri/program/cdparanoia.py: 	  Fix up track counting so HTOA can be ripped again. 	* examples/readhtoa.py: 	  Fix up example so it works again, tested on Silent Alarm.
	* morituri/test/test_image_toc.py: 	* morituri/test/bloc.cue (added): 	  Add an expected .cue file for the bloc party toc.
	* morituri/image/toc.py: 	  Calculate the leadout from the sum of the track lengths. 	* morituri/test/breeders.cue: 	* morituri/test/cure.cue: 	  Adapt expected results for DISCID. 	* morituri/image/table.py: 	  Add an assert for hasTOC() when doing .cue() 	* morituri/test/test_image_toc.py: 	* morituri/test/test_image_cue.py: 	  absolutize before cue()
	* morituri/image/table.py: 	  Only add DISCID if our table is a TOC (which it isn't 	  with our current .toc file parsing) 	* morituri/test/test_image_cue.py: 	* morituri/test/test_image_toc.py: 	  Fix up tests; testsuite passes again.
	* morituri/image/toc.py: 	  Add some debugging.
	* morituri/image/table.py: 	  Update .cue writing: 	  - customise program name 	  - add DISCID 	  - use counter for FILE lines 	  - put FILE line before TRACK if track does not have INDEX 00 	  Take counter into account for setFile 	* examples/readdisc.py: 	  Add --track-template. 	  Pass counter to setFile.
	* morituri/image/table.py: 	  Add CDText writing to .cue() method. 	* morituri/image/toc.py: 	  Add CDText parsing. 	* morituri/test/test_image_toc.py: 	* morituri/test/breeders.cue (added): 	  Add a test for cue'ing the breeders' toc.
	* morituri/image/table.py: 	* morituri/image/toc.py: 	  Add parsing of ISRC codes. 	  Add first part of CDTEXT stuff. 	* morituri/test/test_image_toc.py: 	  Add test for converting .toc to .cue 	* morituri/test/cure.cue 	  Add reference for converted cure.toc
	* examples/readhtoa.py: 	  Fix example.
	* morituri/image/table.py: 	* morituri/test/test_image_table.py: 	  Correctly calculate MusicBrainz disc id for enhanced cd's.
	* morituri/common/task.py: 	  Log on runners too. 	* morituri/program/cdrdao.py: 	  Abort if output has ERROR by killing and setting an exception.
	* examples/readdisc.py: 	  filter out slashes when deciding on file names.
	* morituri/common/task.py: 	* morituri/image/image.py: 	  Remove prints.  Describe tasks.
	* morituri/common/task.py: 	  Add an exception ivar for tasks to set an exception on while 	  running.  Make SyncRunner raise it during done() 	* morituri/program/cdparanoia.py: 	  Set an exception if the ripped file doesn't match the expected size 	  (for example when disc is full)
	* morituri/common/common.py: 	  Set the object when we don't persist. 	* examples/readdisc.py: 	  Small fixes.
	* examples/readdisc.py: 	  Fix up cue file reading.
	* examples/readdisc.py: 	  Add musicbrainz code for disc naming.
	* morituri/image/table.py: 	* morituri/image/toc.py: 	  Delete old code.
	* morituri/image/toc.py: 	* morituri/test/test_image_toc.py: 	* morituri/test/test_program_cdrdao.py: 	  After careful vetting, fix up the expected values after toc parsing. 	  Fix (untested) INDEX handling.  Fix handling of START.
	* morituri/image/table.py: 	* morituri/test/test_image_table.py: 	  Implement MusicBrainz disc id.  Works for audio-only discs, 	  have to figure out why it fails for an Enhanced CD like the 	  Ladyhawke one.
	* morituri/image/table.py: 	  Add logging. 	  Add methods to clear a table of files, and to absolutize indexes 	  as long as the source is the same file, and to set a File on a 	  given index, adjusting all following indexes that match the 	  duration, and check if the IndexTable has all information for a TOC. 	* morituri/image/toc.py: 	  Add logging. 	  Use a counter for the source. 	  Fix up index offset calculation. 	* morituri/program/cdrdao.py: 	  Use a real IndexTable as the result, instead of a TocFile. 	* morituri/image/cue.py: 	  Use a real IndexTable to store tracks. 	* morituri/test/test_image_toc.py: 	  The toc file now has a table which has the tracks. 	  Fix the tests to adjust for wrong index calculations. 	* morituri/test/test_image_cue.py: 	* morituri/test/test_image_image.py: 	* morituri/image/image.py: 	  The cue file now has a table which has the tracks. 	* morituri/test/test_image_table.py: 	  Add assertions to make sure when the table can serve as a TOC. 	* examples/readdisc.py: 	  Adjust for changes.  Fix up to include AccurateRip results. 	  First time we can do a complete normal rip including verifying 	  against AccurateRip results!
	* examples/readdisc.py: 	* morituri/image/table.py: 	* morituri/test/test_image_table.py: 	  Fix up and deprecate stuff.
add test
	* examples/movecue.py: 	* examples/readcue.py: 	* morituri/image/cue.py: 	* morituri/image/image.py: 	* morituri/image/toc.py: 	* morituri/program/cdrdao.py: 	* morituri/test/test_image_cue.py: 	* morituri/test/test_image_toc.py: 	  Cue -> CueFile 	  TOC -> TocFile
docs and repr fixes
	* examples/readdisc.py (added): 	  Add an example to read a whole disc.  Doesn't work yet.
	* examples/readhtoa.py: 	  Fix up readhtoa example.  Add offset option.
	* examples/ARcalibrate.py: 	* examples/readhtoa.py: 	* examples/readtoc.py: 	* morituri/program/cdrdao.py: 	  Rename ReadTOCTask to ReadIndexTableTask. 	  Rename ReadTableTask to ReadTOCTask.
handle not having a toc
	* morituri/program/cdrdao.py: 	  Convert ReadTableTask to a CDRDAOTask subclass. 	* examples/ARcalibrate.py: 	* morituri/program/cdparanoia.py: 	  Adapt.
fail if we don't have a toc
	* morituri/program/cdrdao.py: 	  Fix up index scanning's progress report. 	  Add some debugging.
	* morituri/program/cdrdao.py: 	* morituri/test/test_program_cdrdao.py: 	  Fix up tests.  Use an IndexTable.
	* morituri/program/cdrdao.py: 	  Massage out a base class for running cdrdao.
	* morituri/program/cdrdao.py: 	* morituri/test/test_program_cdrdao.py (added): 	  Split out the parser from the task.  Test the parser.
	* morituri/program/cdrdao.py: 	* morituri/test/test_program_cdrdao.py (added): 	  Split out the parser from the task.  Test the parser.
add logging
	* morituri/image/cue.py: 	* morituri/image/image.py: 	* morituri/image/table.py: 	* morituri/program/cdparanoia.py: 	* morituri/test/test_image_cue.py: 	  Move to using a shared IndexTable for everything. 	  Sadly mixed with a MultiTask rename.
	* morituri/common/checksum.py: 	  Update debugging.  Add repr.
	* examples/ARcue.py: 	  Handle case where we have no matching response.
	* morituri/common/task.py: 	  Distinguish more clearly between MultiSeparateTask and 	  MultiCombinedTask.
add assert
	* morituri/image/cue.py: 	* morituri/test/test_image_cue.py: 	  Add dumping of .cue files.
docs
	* morituri/program/cdparanoia.py: 	  Use a temporary file to rip to.
remove ellipses
	* examples/readtrack.py: 	  Allow specifying the track to save.
	* morituri/common/task.py: 	  Make SyncRunner clear previous description/progress task by 	  tracking longest output given up to now.
	* morituri/program/cdparanoia.py: 	  Add a task to read and verify a track. 	* examples/readtrack.py: 	  Use it to clean up code. 	* morituri/common/task.py: 	  describe a MultiTask better.
remove prints
	* morituri/common/common.py: 	  Create a Persister class to wrap a possible pickle path. 	* examples/trm.py: 	  Use it.
remove a print
verify cdparanoia's output
	* morituri/program/cdparanoia.py: 	  Add table to __init__, so we can correctly calculate cdparanoia's 	  strange ripping regions. 	* examples/ARcalibrate.py: 	  When we found a positive match on a first track, match all the other 	  tracks too for confirmation.
add repr
	* morituri/common/taskgtk.py: 	  Bug fix.
	* morituri/common/task.py: 	* morituri/common/taskgtk.py: 	  Split off GtkProgressRunner in separate module to not import gtk 	  everywhere. 	* examples/ARcalibrate.py: 	* examples/ARcue.py: 	* examples/gtkchecksum.py: 	* examples/trm.py: 	  Adapt.
copy before splitting
	* examples/ARcalibrate.py (added): 	  Add an example that calculates the read offset of your drive 	  using AccurateRip.
	* morituri/program/cdrdao.py: 	  Add a task to read the Table.
add logging fix up for cue->table rename
change progress notify to log
add errors
doc fix
debug fix
	* morituri/common/task.py: 	* morituri/image/image.py: 	  Add some debugging.
	* examples/readhtoa.py (added): 	  Add an example that detects and rips the Hidden Track One Audio.
	* examples/readtoc.py: 	* morituri/program/cdrdao.py (added): 	  Move the ReadTocTask to the new cdrdao module.
	* examples/readtrack.py: 	* morituri/program/cdparanoia.py: 	  Move ReadTrackTask to cdparanoia module.
update example
	* examples/readtrack.py (added): 	  Add an example that reads a track using cdparanoia.
	* morituri/test/cdparanoia.progress (added): 	* morituri/test/test_program_cdparanoia.py (added): 	* morituri/program/__init__.py (added): 	* morituri/program/cdparanoia.py (added): 	  Add a module to wrap cdparanoia.  Add a test for parsing 	  the progress report output.
	* morituri/common/checksum.py: 	  Debug fixes.
	* morituri/common/common.py: 	  Create some common functions to parse MSF and back. 	* morituri/image/toc.py: 	  Use it here.
moap ignore
add to TODO
publicize path
	* examples/trm.py: 	  Allow loading and saving fingerprints from a pickle.
	* morituri/image/toc.py: 	* morituri/test/test_image_toc.py: 	* morituri/test/bloc.toc (added): 	  Fix up .toc parsing to correct index 0 behaviour. 	  Add Bloc Party's Silent Alarm .toc file to test HTOA.
	* examples/readtoc.py: 	  Update to work on my desktop.
	* morituri/common/task.py: 	  Make task subclass log.Log
	* morituri/common/log.py: 	  Add external log module and use it.
adding external log module
	* morituri/test/cure.toc (added): 	  Add an example .toc file for the test.
	* examples/readtoc.py: 	  Extract and print TOC.
	* morituri/test/test_image_toc.py (added): 	* morituri/image/toc.py (added): 	  Add first stab at .toc parsing.
	* examples/readtoc.py: 	  get errors from output too.
	* morituri/image/image.py: 	* morituri/image/table.py: 	* morituri/test/test_image_image.py: 	* morituri/test/test_image_table.py: 	  Rename toc.TOC to table.Table
	* morituri/test/test_image_table.py (added): 	* morituri/image/table.py (added): 	* morituri/test/test_image_toc.py (deleted): 	* morituri/image/toc.py (deleted): 	  Move files around in preparation for the .toc file parsing.
	* examples/movecue.py (added): 	  Add a script that moves a .cue file in its corresponding directory.
	* morituri/test/kanye.cue (added): 	  Add a cue test with mixed mode. 	* morituri/image/cue.py: 	* morituri/test/test_image_cue.py: 	  Handle it properly.
	* morituri/image/cue.py: 	  getRealPath should be here, it doesn't need anything outside 	  the .cue file 	* morituri/image/image.py: 	  Proxy it here.
	* morituri/common/checksum.py: 	  Add some debugging. 	* morituri/test/test_image_image.py: 	  Run less verbose.
	* morituri/common/task.py: 	  Allow a SyncRunner to be constructed with verbose too. 	  Separate a 'running' verbose mode from that. 	  Fixes unwanted test output. 	* morituri/test/test_image_image.py: 	  Run without verbosity.
	* morituri/test/test_image_image.py: 	  Fix name.
moap ignore
	* morituri/test/test_common_renamer.py (added): 	* morituri/common/renamer.py (added): 	  Add a way of doing transactional file renames, as well as their 	  metafile updates.
fix
update
	* morituri/common/task.py: 	  Add a 'described' method so listeners can get proper notification 	  of description changes, and update their description in between 	  progress changes. 	  Add a MultiCombinedTask that reports on progress over all tasks 	  combined. 	* examples/trm.py: 	  Add a playlist option to the example.  Still needs to store results 	  to pickles, preferably after each completed task. 	* morituri/common/checksum.py: 	  Add audioconvert to make sure we can trm ogg files.
	* morituri/common/task.py: 	* morituri/image/image.py: 	  Move MultiTask to the task module.
	* morituri/common/checksum.py: 	  Add a task to calculate a trm fingerprint. 	* examples/trm.py (added): 	  Add an example. 	  Strangely enough it starts burstily, doing 10% directly, halting, 	  then progressing quickly,
	* examples/ARcue.py: 	  Fix a bug in the gtk example.
	* examples/readtoc.py: 	  Read the toc using cdrdao.  Now sets progress based on which 	  frame it is on.
	* morituri/common/task.py: 	  Add a __main__ example using DummyTask.
	* morituri/common/task.py: 	  Make sure we also show progress when it's 0%, at the start.
	* morituri/image/cue.py: 	  Use names for matches in regexps.
	* examples/readtoc.py (added): 	  Add an example to read the TOC, not finished yet.
	* morituri/extern (added): 	* morituri/extern/__init__.py (added): 	* morituri/extern/asyncsub.py (added): 	  Add extern module; add asynchronous subprocess Popen from 	  http://code.activestate.com/recipes/440554/
add todo file
	* examples/gtkchecksum.py: 	* morituri/common/checksum.py: 	  Final crc->checksum fixes.
	* examples/ARcue.py: 	* morituri/common/checksum.py: 	* morituri/image/image.py: 	* morituri/image/toc.py: 	* examples/gtkchecksum.py (added): 	* examples/gtkcrc.py (deleted): 	  More crc->checksum changes.
add comment
	* examples/ARcue.py: 	* morituri/common/checksum.py: 	* morituri/image/image.py: 	* morituri/test/test_image_image.py: 	  Change crc to checksum everywhere.
	* morituri/image/image.py: 	* morituri/image/toc.py: 	* morituri/common/checksum.py (added): 	* morituri/common/crc.py (deleted): 	  Rename crc to checksum, because AccurateRip checksums are not CRC's.
	* examples/ARcue.py: 	* morituri/image/image.py: 	* morituri/test/test_image_image.py: 	  Make everything use TOC for the id's.
	* morituri/image/image.py: 	  Refactor to use TOC class. 	* morituri/image/toc.py: 	  Fully document.
	* morituri/test/test_image_toc.py (added): 	* morituri/image/toc.py (added): 	  Add an abstraction for a TOC. 	  Take data tracks into account correctly for CDDB and AccurateRip 	  disc ID's.
	* morituri/image/image.py: 	* morituri/test/test_image_image.py: 	  AccurateRip binary files actually contain multiple responses, so 	  parse all of them. 	* examples/ARcue.py: 	  Handle case of not having a response, and having multiple responses.
make it clear which one is ours
	* morituri/common/crc.py: 	  Actually return the CRC when checking frame 5. 	* morituri/test/test_image_image.py: 	  Update test for this fix.
	* morituri/image/image.py: 	  Also look for audio file basename relative to cue file.
	* examples/ARcue.py: 	  Make output a bit nicer, mentioning whether tracks were 	  accurately ripped.
	* morituri/image/image.py: 	  Add an object to parse the response of AccurateRip. 	* morituri/test/test_image_image.py: 	* morituri/test/dBAR-011-0010e284-009228a3-9809ff0b.bin (added): 	  Add a test for it, based on my Kings Of Leon CD.
	* morituri/image/image.py: 	  Add the 150 frames for the leadin only to the CDDB calculation. 	  Add methods to calculate AccurateRip id's and URL. 	* morituri/test/test_image_image.py: 	  Add tests for it. 	* examples/ARcue.py: 	  Show AccurateRip URL.
	* examples/ARcue.py: 	* morituri/common/crc.py: 	* morituri/image/image.py: 	* morituri/test/test_image_image.py: 	  Calculate CDDB disc id. 	  Tested on my Kings Of Leon CD.
doc and cleanup, add getIndex
	* examples/ARcue.py: 	* morituri/image/image.py: 	* morituri/test/test_image_image.py: 	  Add a task to verify a disk image, which also calculates 	  track lengths for tracks the cue file doesn't know the length of.
	* examples/ARcue.py: 	  Add option to run either command-line or gtk.
	* morituri/image/image.py: 	  Create a MultiTask base class, and make AudioRipCRCTask 	  use it.
	* morituri/image/image.py: 	* morituri/test/test_image_image.py: 	  Add a task for calculating frame length of an audio file. 	  Add a test for it.
	* morituri/common/task.py: 	  Schedule the start from the main loop, otherwise the 	  task might complete before we're in the main loop, 	  and then the loop.quit() doesn't work.
some more reorganizing
some more reorganizing
	* examples/ARcue.py: 	* examples/gtkcrc.py: 	  Rework both examples to look more similar.
	* examples/gtkcrc.py: 	* morituri/common/task.py: 	  Move the gtk-based progress bar to task.
	* examples/gtkcrc.py: 	* morituri/common/crc.py: 	* morituri/common/task.py: 	* morituri/image/image.py: 	  Add a 'schedule' call to the TaskRunner class, so that we can 	  abstract things like gobject.timeout_add and reactor.callLater 	  Pass the runner to the task in Task.start() so a task can call 	  schedule.
	* morituri/common/task.py: 	  Update the docs.
ignore more
	* morituri/test/test_image_image.py (added): 	  Add tests for AudioRip CRC'ing images.
	* morituri/test/track-separate.cue (added): 	* morituri/test/track.flac (added): 	* morituri/test/Makefile (added): 	* morituri/test/track-single.cue (added): 	  Add a simple 10 frame flac file, and two .cue files 	  using it.
	* morituri/image/image.py: 	  If paths are relative, make them relative to cue file.
	* morituri/common/task.py: 	  clear with whitespace.
	* examples/ARcue.py: 	* morituri/common/task.py: 	* morituri/image/image.py (added): 	  Add an object for handling an Image based on a .cue file. 	  Create a Task for CRC'ing the whole Image. 	  Make the example use this new task instead.
	* examples/gtkcrc.py: 	* morituri/common/task.py: 	  Add task object to listener interface methods.
	* morituri/common/task.py: 	  Move methods around.
	* examples/ARcue.py: 	* examples/gtkcrc.py: 	* morituri/common/crc.py: 	* morituri/common/task.py: 	  Split out generic task/runner from CRC tasks.
	* morituri/common/crc.py (added): 	  Copy from task.py before splitting.
	* examples/gtkcrc.py: 	* morituri/common/task.py: 	  Don't block the main loop by infinitely scheduling 	  set_state.
	* examples/ARcue.py: 	* examples/gtkcrc.py: 	* morituri/common/task.py: 	  Make a real Task interface and use it. 	  Make runners reusable for multiple tasks. 	  gtkcrc.py seems to be blocking updates however.
	* morituri/test (added): 	* morituri/test/test_image_cue.py (added): 	* morituri/test/kings-single.cue (added): 	* morituri/test/__init__.py (added): 	* morituri/test/kings-separate.cue (added): 	  Add test suite.  Add Kings Of Leon cue files.
	* examples/ARcue.py: 	  Error out when the file doesn't exist. 	* morituri/common/task.py: 	  Drag the lake. 	  Clean up prints.
	* morituri/common/task.py: 	  Remove queue to avoid race. 	  Remove prints. 	  Clean up debug. 	  Update progress after handling buffers.
remove debugging output
	* morituri/common/task.py: 	  Introduce constants for FRAMES_PER_DISC_FRAME 	* examples/ARcue.py: 	  Use the constant. 	  Get the CRC right for the last track too.
	* examples/ARcue.py: 	* morituri/common/task.py: 	  Use an adapter to assemble CD frames. 	  Take into account special rules for first and last track. 	  Mention some bugs. 	  Remember to drag the lake from the task.
	* examples/ARcue.py: 	* morituri/common/task.py: 	  First version that seems to get some AccurateRip checksums right.
add an example calculating crc's from a cue file
add example of crc'ing with gtk progress bar
add sync runner. add error check for not getting all samples.
	* morituri/image/cue.py: 	  publicize CueFile.tracks 	  Add a method to get track lengths 	* examples/readcue.py: 	  Use it.
	* morituri/common/task.py (added): 	  Add a task abstraction.
add code to read cue files
add inits
add example
add header
moap ignore
add morituri
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
X-Git-Refname: refs/heads/master
X-Git-Reftype: branch
X-Git-Oldrev: 462fb04a8bb722a0dd344b5ec2bde956d6281d07
X-Git-Newrev: 52335df43ae26686dbac52aead66eb40c38b34db

The following commit has been merged in the master branch:
commit 065c7500324cd2ef71a58562270b93521e8ff223
Merge: 68eebe80d97d65e405b8a78ebb6d0943279225e3 6b21916cb480850de2b731cbec7e302120e11a22
Author: Jonas Smedegaard <dr at jones.dk>
Date:   Thu Jul 17 13:43:26 2014 +0200

    Merge tag 'upstream/0.2.3'
    
    Upstream version 0.2.3
    
    # gpg: Underskrift lavet tor 17 jul 2014 13:43:22 CEST
    # gpg:                bruger RSA nøgle 0x4EC1B722374F9BD6
    # gpg: udfør venligst en --check-trustdb
    # gpg: God underskrift fra »Jonas Smedegaard <dr at jones.dk>« [ultimativ]
    # gpg:        også kendt som »Jonas Smedegaard <jonas at homebase.dk>« [ultimativ]
    # gpg:        også kendt som »Jonas Smedegaard <js at debian.org>« [ultimativ]
    # gpg:        også kendt som »Jonas Smedegaard <jonas at dgi-huset.dk>« [ultimativ]
    # gpg:        også kendt som »Jonas Smedegaard <jonas at 107b.dk>« [ultimativ]
    # gpg:        også kendt som »[jpeg image of size 4165]« [ultimativ]


-- 
morituri packaging



More information about the pkg-multimedia-commits mailing list