def finedecompress(name, verbose):
     Logger.log("FineDecompress "+name)
     
     audacity_data = File.datadirectoryFromName(name)
     verbose_arg = "v" if verbose else ""
     
     filelist = File.allFiles(audacity_data)
     if any(s.endswith(".au") for s in filelist):
         raise LogicError("existing .au file found during decompress")    
     
     Logger.log("Decompressing files")
     for compressedfile in filter(lambda x: x.endswith(".bz2"), filelist):
         Logger.log("Decompress "+compressedfile)
         output = subprocess.check_output(["bzip2", "-dk"+verbose_arg, compressedfile])
 def decompress(name, verbose, keep = False):
     Logger.log("Decompress "+name)
     
     archive = File.archiveFromName(name)
     audacity_data = File.datadirectoryFromName(name)
     verbose_arg = "v" if verbose else ""
     
     if os.path.isfile(archive) == False:
         raise LogicError("audio archive " + archive + " does not exist.")
     
     if os.path.isdir(audacity_data):
         raise LogicError("audio data directory " + audacity_data + " does already exist. Will not overwrite existing files.")
     
     Logger.log(" Decompressing")
     output = subprocess.check_output(["tar", "-xj"+verbose_arg+"f", archive, audacity_data])
     Logger.log(output)
     
     if keep is False:
         Logger.log(" Deleting old data")
         os.remove(archive)
 def finecompress(name, verbose):
     Logger.log("FineCompress "+name)
     
     audacity_data = File.datadirectoryFromName(name)
     verbose_arg = "v" if verbose else ""
     
     Logger.log("Deleting .bz2 files with no matching .au files")
     for compressedfile in filter(lambda x: x.endswith(".bz2"), File.allFiles(audacity_data)):
         audiofile = os.path.splitext(compressedfile)[0]
 
         if not os.path.exists(audiofile):
             Logger.log(compressedfile + " should match " + audiofile + " but does not exist anymore. Deleting.")
             os.remove(compressedfile)
     
     Logger.log("Compressing modified audio files")
     for audiofile in filter(lambda x: x.endswith(".au"), File.allFiles(audacity_data)):     
         compressedfile=audiofile+".bz2"
         if not os.path.exists(compressedfile) or File.fileModificationTimestamp(audiofile) > File.fileModificationTimestamp(compressedfile):
             Logger.log("Compress "+audiofile)
             output = subprocess.check_output(["bzip2", "-zf"+verbose_arg, audiofile])
         else:
             os.remove(audiofile)