6664a960dcd88ab48dce284d6f09030754edf662
[igor.git] / bin / igorpackedexperiment.py
1 #!/usr/bin/env python
2 #
3 # Copyright (C) 2012 W. Trevor King <wking@tremily.us>
4 #
5 # This file is part of igor.
6 #
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
10 # later version.
11 #
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
15 # details.
16 #
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/>.
19
20 "PXP -> ASCII conversion"
21
22 import pprint
23
24 import numpy
25
26 from igor.packed import load
27 from igor.script import Script
28
29
30 def run(args):
31     records,filesystem = load(args.infile)
32     if hasattr(args.outfile, 'write'):
33         f = args.outfile  # filename is actually a stream object
34     else:
35         f = open(args.outfile, 'w')
36     try:
37         f.write(pprint.pformat(records))
38         f.write('\n')
39     finally:
40         if f != args.outfile:
41             f.close()
42     if args.verbose > 0:
43         pprint.pprint(filesystem)
44
45 s = Script(description=__doc__, filetype='IGOR Packed Experiment (.pxp) file')
46 s._run = run
47 s.run()