diff options
| author | Guido van Rossum <guido@python.org> | 2007-08-05 15:29:28 +0000 | 
|---|---|---|
| committer | Guido van Rossum <guido@python.org> | 2007-08-05 15:29:28 +0000 | 
| commit | 33d2689fc900a814f0a7d2f846abe0c34024ae17 (patch) | |
| tree | 1ecddf8b9e18933d1fd90d5eda510908ec71695b /Lib/toaiff.py | |
| parent | 77553ab531c6a98c3d06b7ba4158b06ed0af8c69 (diff) | |
| download | cpython-git-33d2689fc900a814f0a7d2f846abe0c34024ae17.tar.gz | |
Merged revisions 56492-56752 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/p3yk
........
  r56497 | kurt.kaiser | 2007-07-22 14:55:16 -0700 (Sun, 22 Jul 2007) | 4 lines
  In the case of syntax errors, in py3k format_exception_only()
  was including line number and position in the final line of the
  exception notification, duplicating info in previous lines.
........
  r56501 | kurt.kaiser | 2007-07-22 19:35:50 -0700 (Sun, 22 Jul 2007) | 2 lines
  Hum, needed a newline in the last change.
........
  r56536 | kurt.kaiser | 2007-07-24 19:06:48 -0700 (Tue, 24 Jul 2007) | 5 lines
  Not all instantiations of SyntaxError set the args attribute.
  e.g. symtable.c
  Modify format_exception_only() to get SyntaxError attributes directly
  instead of unpacking 'args'.
........
  r56537 | kurt.kaiser | 2007-07-24 19:13:03 -0700 (Tue, 24 Jul 2007) | 3 lines
  Update doctest strings: traceback.py no longer prints redundant location
  information in the last line of the exception display.
........
  r56627 | kurt.kaiser | 2007-07-29 21:06:57 -0700 (Sun, 29 Jul 2007) | 2 lines
  Interactive interpreter emulator (code.py) failing to print exceptions.
........
  r56628 | kurt.kaiser | 2007-07-29 21:41:02 -0700 (Sun, 29 Jul 2007) | 2 lines
  Eliminate extra lines before and after tracebacks.
........
  r56638 | kurt.kaiser | 2007-07-31 19:36:45 -0700 (Tue, 31 Jul 2007) | 3 lines
  Refactor syntax error display in shell and edit windows; move
  colorize_syntax_error() to EditorWindow; update to py3k.
........
  r56685 | neal.norwitz | 2007-08-02 22:20:23 -0700 (Thu, 02 Aug 2007) | 10 lines
  Remove several h/w and o/s specific modules that are undocumented, obsolete,
  and/or not widely used:
   linuxaudiodev.c, sunaudiodev.c Lib/plat-sunos5/SUNAUDIODEV.py
   Lib/audiodev.py Tools/audiopy/audiopy
  Move Lib/toaiff.py to Demo.
  See PEP 3108 for most of the details.
........
  r56686 | neal.norwitz | 2007-08-02 22:21:48 -0700 (Thu, 02 Aug 2007) | 4 lines
  Missed one module that should have been removed since it relied
  on audiodev which was removed.
........
  r56748 | neal.norwitz | 2007-08-04 19:19:04 -0700 (Sat, 04 Aug 2007) | 1 line
  Make from X import * outside module scope an error.
........
  r56750 | neal.norwitz | 2007-08-04 19:35:01 -0700 (Sat, 04 Aug 2007) | 1 line
  Use READONLY consistently instead of RO
........
Diffstat (limited to 'Lib/toaiff.py')
| -rw-r--r-- | Lib/toaiff.py | 107 | 
1 files changed, 0 insertions, 107 deletions
diff --git a/Lib/toaiff.py b/Lib/toaiff.py deleted file mode 100644 index 438d225dd8..0000000000 --- a/Lib/toaiff.py +++ /dev/null @@ -1,107 +0,0 @@ -"""Convert "arbitrary" sound files to AIFF (Apple and SGI's audio format). - -Input may be compressed. -Uncompressed file type may be AIFF, WAV, VOC, 8SVX, NeXT/Sun, and others. -An exception is raised if the file is not of a recognized type. -Returned filename is either the input filename or a temporary filename; -in the latter case the caller must ensure that it is removed. -Other temporary files used are removed by the function. -""" - -import os -import tempfile -import pipes -import sndhdr - -__all__ = ["error", "toaiff"] - -table = {} - -t = pipes.Template() -t.append('sox -t au - -t aiff -r 8000 -', '--') -table['au'] = t - -# XXX The following is actually sub-optimal. -# XXX The HCOM sampling rate can be 22k, 22k/2, 22k/3 or 22k/4. -# XXX We must force the output sampling rate else the SGI won't play -# XXX files sampled at 5.5k or 7.333k; however this means that files -# XXX sampled at 11k are unnecessarily expanded. -# XXX Similar comments apply to some other file types. -t = pipes.Template() -t.append('sox -t hcom - -t aiff -r 22050 -', '--') -table['hcom'] = t - -t = pipes.Template() -t.append('sox -t voc - -t aiff -r 11025 -', '--') -table['voc'] = t - -t = pipes.Template() -t.append('sox -t wav - -t aiff -', '--') -table['wav'] = t - -t = pipes.Template() -t.append('sox -t 8svx - -t aiff -r 16000 -', '--') -table['8svx'] = t - -t = pipes.Template() -t.append('sox -t sndt - -t aiff -r 16000 -', '--') -table['sndt'] = t - -t = pipes.Template() -t.append('sox -t sndr - -t aiff -r 16000 -', '--') -table['sndr'] = t - -uncompress = pipes.Template() -uncompress.append('uncompress', '--') - - -class error(Exception): -    pass - -def toaiff(filename): -    temps = [] -    ret = None -    try: -        ret = _toaiff(filename, temps) -    finally: -        for temp in temps[:]: -            if temp != ret: -                try: -                    os.unlink(temp) -                except os.error: -                    pass -                temps.remove(temp) -    return ret - -def _toaiff(filename, temps): -    if filename[-2:] == '.Z': -        (fd, fname) = tempfile.mkstemp() -        os.close(fd) -        temps.append(fname) -        sts = uncompress.copy(filename, fname) -        if sts: -            raise error, filename + ': uncompress failed' -    else: -        fname = filename -    try: -        ftype = sndhdr.whathdr(fname) -        if ftype: -            ftype = ftype[0] # All we're interested in -    except IOError as msg: -        if type(msg) == type(()) and len(msg) == 2 and \ -                type(msg[0]) == type(0) and type(msg[1]) == type(''): -            msg = msg[1] -        if type(msg) != type(''): -            msg = repr(msg) -        raise error, filename + ': ' + msg -    if ftype == 'aiff': -        return fname -    if ftype is None or not ftype in table: -        raise error, '%s: unsupported audio file type %r' % (filename, ftype) -    (fd, temp) = tempfile.mkstemp() -    os.close(fd) -    temps.append(temp) -    sts = table[ftype].copy(fname, temp) -    if sts: -        raise error, filename + ': conversion to aiff failed' -    return temp  | 
