ยปCore Development>Code coverage>Lib/plat-irix6/torgb.py

Python code coverage for Lib/plat-irix6/torgb.py

#countcontent
1n/a# Convert "arbitrary" image files to rgb files (SGI's image format).
2n/a# Input may be compressed.
3n/a# The uncompressed file type may be PBM, PGM, PPM, GIF, TIFF, or Sun raster.
4n/a# An exception is raised if the file is not of a recognized type.
5n/a# Returned filename is either the input filename or a temporary filename;
6n/a# in the latter case the caller must ensure that it is removed.
7n/a# Other temporary files used are removed by the function.
8n/afrom warnings import warnpy3k
9n/awarnpy3k("the torgb module has been removed in Python 3.0", stacklevel=2)
10n/adel warnpy3k
11n/a
12n/aimport os
13n/aimport tempfile
14n/aimport pipes
15n/aimport imghdr
16n/a
17n/atable = {}
18n/a
19n/at = pipes.Template()
20n/at.append('fromppm $IN $OUT', 'ff')
21n/atable['ppm'] = t
22n/a
23n/at = pipes.Template()
24n/at.append('(PATH=$PATH:/ufs/guido/bin/sgi; exec pnmtoppm)', '--')
25n/at.append('fromppm $IN $OUT', 'ff')
26n/atable['pnm'] = t
27n/atable['pgm'] = t
28n/atable['pbm'] = t
29n/a
30n/at = pipes.Template()
31n/at.append('fromgif $IN $OUT', 'ff')
32n/atable['gif'] = t
33n/a
34n/at = pipes.Template()
35n/at.append('tifftopnm', '--')
36n/at.append('(PATH=$PATH:/ufs/guido/bin/sgi; exec pnmtoppm)', '--')
37n/at.append('fromppm $IN $OUT', 'ff')
38n/atable['tiff'] = t
39n/a
40n/at = pipes.Template()
41n/at.append('rasttopnm', '--')
42n/at.append('(PATH=$PATH:/ufs/guido/bin/sgi; exec pnmtoppm)', '--')
43n/at.append('fromppm $IN $OUT', 'ff')
44n/atable['rast'] = t
45n/a
46n/at = pipes.Template()
47n/at.append('djpeg', '--')
48n/at.append('(PATH=$PATH:/ufs/guido/bin/sgi; exec pnmtoppm)', '--')
49n/at.append('fromppm $IN $OUT', 'ff')
50n/atable['jpeg'] = t
51n/a
52n/auncompress = pipes.Template()
53n/auncompress.append('uncompress', '--')
54n/a
55n/a
56n/aclass error(Exception):
57n/a pass
58n/a
59n/adef torgb(filename):
60n/a temps = []
61n/a ret = None
62n/a try:
63n/a ret = _torgb(filename, temps)
64n/a finally:
65n/a for temp in temps[:]:
66n/a if temp != ret:
67n/a try:
68n/a os.unlink(temp)
69n/a except os.error:
70n/a pass
71n/a temps.remove(temp)
72n/a return ret
73n/a
74n/adef _torgb(filename, temps):
75n/a if filename[-2:] == '.Z':
76n/a (fd, fname) = tempfile.mkstemp()
77n/a os.close(fd)
78n/a temps.append(fname)
79n/a sts = uncompress.copy(filename, fname)
80n/a if sts:
81n/a raise error, filename + ': uncompress failed'
82n/a else:
83n/a fname = filename
84n/a try:
85n/a ftype = imghdr.what(fname)
86n/a except IOError, msg:
87n/a if type(msg) == type(()) and len(msg) == 2 and \
88n/a type(msg[0]) == type(0) and type(msg[1]) == type(''):
89n/a msg = msg[1]
90n/a if type(msg) is not type(''):
91n/a msg = repr(msg)
92n/a raise error, filename + ': ' + msg
93n/a if ftype == 'rgb':
94n/a return fname
95n/a if ftype is None or not table.has_key(ftype):
96n/a raise error, '%s: unsupported image file type %r' % (filename, ftype)
97n/a (fd, temp) = tempfile.mkstemp()
98n/a os.close(fd)
99n/a sts = table[ftype].copy(fname, temp)
100n/a if sts:
101n/a raise error, filename + ': conversion to rgb failed'
102n/a return temp