1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 """Create list of fits from pdffit2 script and pickle it to standard output.
17 Usage: dumppdffit2script.py scriptfile.py [arg1] [arg2] ...
18
19 Returns exit code 0 if script was successfully read, 1 if an error occured
20 and 2 if scriptfile.py does not exist
21 """
22
23
24 __id__ = "$Id: dumppdffit2script.py 2980 2009-04-02 00:14:33Z juhas $"
25
26 import sys
27 import os
28
29 from diffpy.pdfgui.control.pdffitsandbox import PdfFitSandbox
30 from diffpy.pdfgui.utils import safeCPickleDumps
31
33 if len(sys.argv) < 2:
34 print >> sys.stderr, "scriptfile not specified."
35 sys.exit(2)
36 elif not os.path.isfile(sys.argv[1]):
37 print >> sys.stderr, "Cannot read %r" % sys.argv[1]
38 sys.exit(2)
39 scriptfile = sys.argv[1]
40 scriptbase = os.path.basename(scriptfile)
41 del sys.argv[1]
42 box = PdfFitSandbox()
43 try:
44 box.loadscript(scriptfile)
45 except:
46 exc_type, exc_value, exc_tb = sys.exc_info()
47 import traceback
48 for filename, lineno, fnc, line in traceback.extract_tb(exc_tb):
49 if os.path.basename(filename) != scriptbase:
50 continue
51 print >> sys.stderr, "%s:%i:%s" % (scriptfile, lineno, line)
52 print >> sys.stderr, exc_value
53 sys.exit(1)
54
55
56 os.close(sys.stderr.fileno())
57
58 sys.stdout.write( safeCPickleDumps(box.allfits()) )
59 return
60
61 if __name__ == "__main__":
62 main()
63
64
65