3 # Copyright (C) 2012 W. Trevor King <wking@tremily.us>
5 # This file is part of igor.
7 # igor is free software: you can redistribute it and/or modify it under the
8 # terms of the GNU Lesser General Public License as published by the Free
9 # Software Foundation, either version 3 of the License, or (at your option) any
12 # igor is distributed in the hope that it will be useful, but WITHOUT ANY
13 # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
14 # A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
17 # You should have received a copy of the GNU Lesser General Public License
18 # along with igor. If not, see <http://www.gnu.org/licenses/>.
20 "PXP -> ASCII conversion"
24 from igor.packed import load, walk
25 from igor.record.wave import WaveRecord
26 from igor.script import Script
29 class PackedScript (Script):
32 records,filesystem = load(args.infile)
33 if hasattr(args.outfile, 'write'):
34 f = args.outfile # filename is actually a stream object
36 f = open(args.outfile, 'w')
38 f.write(pprint.pformat(records))
44 pprint.pprint(filesystem)
45 walk(filesystem, self._plot_wave_callback)
47 def _plot_wave_callback(self, dirpath, key, value):
48 if isinstance(value, WaveRecord):
49 self.plot_wave(self.args, value.wave, title=dirpath + [key])
53 description=__doc__, filetype='IGOR Packed Experiment (.pxp) file')