root / prepareQMX / qmxWRITE.py @ 10
Historique | Voir | Annoter | Télécharger (2,71 ko)
1 | 10 | tkerber | #!/usr/bin/env python
|
---|---|---|---|
2 | 10 | tkerber | |
3 | 10 | tkerber | # GRAPHICAL interface for setup of QMX calculations
|
4 | 10 | tkerber | #
|
5 | 10 | tkerber | # Torsten Kerber, ENS LYON: 2011, 07, 11
|
6 | 10 | tkerber | #
|
7 | 10 | tkerber | # This work is supported by Award No. UK-C0017, made by King Abdullah
|
8 | 10 | tkerber | # University of Science and Technology (KAUST)
|
9 | 10 | tkerber | |
10 | 10 | tkerber | import StringIO |
11 | 10 | tkerber | |
12 | 10 | tkerber | def writeData(stream, definitions): |
13 | 10 | tkerber | stream.write("#!/usr/bin/env python\n")
|
14 | 10 | tkerber | keys=['import']
|
15 | 10 | tkerber | |
16 | 10 | tkerber | arrImports=[] |
17 | 10 | tkerber | for definition in definitions: |
18 | 10 | tkerber | strClass=definition.getValue('class')
|
19 | 10 | tkerber | strImport=definition.getValue('import')
|
20 | 10 | tkerber | |
21 | 10 | tkerber | if (strClass is not '' and strImport is not ''): |
22 | 10 | tkerber | s='from '+strImport+' import '+strClass+'\n' |
23 | 10 | tkerber | if not s in arrImports: |
24 | 10 | tkerber | stream.write(s) |
25 | 10 | tkerber | arrImports.append(s) |
26 | 10 | tkerber | |
27 | 10 | tkerber | stream.write("\n")
|
28 | 10 | tkerber | for name in ['high-level', 'low-level', 'qmx']: |
29 | 10 | tkerber | for definition in definitions: |
30 | 10 | tkerber | if definition.system.lower() != name:
|
31 | 10 | tkerber | continue
|
32 | 10 | tkerber | strSystem=definition.system.lower().replace("-", "_") |
33 | 10 | tkerber | strClass=definition.getValue('class')
|
34 | 10 | tkerber | strOptions=definition.getValue('class.options')
|
35 | 10 | tkerber | |
36 | 10 | tkerber | if (strClass is not ''): |
37 | 10 | tkerber | stream.write(strSystem+'='+strClass+'('+strOptions+')\n') |
38 | 10 | tkerber | |
39 | 10 | tkerber | stream.write("\n")
|
40 | 10 | tkerber | for name in ['system', 'cluster', 'embed']: |
41 | 10 | tkerber | for definition in definitions: |
42 | 10 | tkerber | if definition.system.lower() != name:
|
43 | 10 | tkerber | continue
|
44 | 10 | tkerber | strSystem=definition.system.lower() |
45 | 10 | tkerber | strClass=definition.getValue('class')
|
46 | 10 | tkerber | strOptions=definition.getValue('class.options')
|
47 | 10 | tkerber | |
48 | 10 | tkerber | if (strClass is not ''): |
49 | 10 | tkerber | stream.write(strSystem+'='+strClass+"('"+strOptions+"')\n") |
50 | 10 | tkerber | |
51 | 10 | tkerber | if name is 'embed': |
52 | 10 | tkerber | strMethod=definition.getValue('method')
|
53 | 10 | tkerber | strOptions=definition.getValue('method.options')
|
54 | 10 | tkerber | stream.write(strSystem+'.'+strMethod+'('+strOptions+')\n') |
55 | 10 | tkerber | |
56 | 10 | tkerber | strOptions=definition.getValue('calculator')
|
57 | 10 | tkerber | stream.write(strSystem+'.set_calculator('+strOptions+')\n') |
58 | 10 | tkerber | |
59 | 10 | tkerber | stream.write("\n")
|
60 | 10 | tkerber | for definition in definitions: |
61 | 10 | tkerber | if (definition.system.lower() == 'job'): |
62 | 10 | tkerber | strSystem=definition.system.lower() |
63 | 10 | tkerber | strClass=definition.getValue('class')
|
64 | 10 | tkerber | strOptions=definition.getValue('class.options')
|
65 | 10 | tkerber | if (strOptions is not ''): |
66 | 10 | tkerber | strOptions = ', ' + strOptions
|
67 | 10 | tkerber | |
68 | 10 | tkerber | if (strClass is not ''): |
69 | 10 | tkerber | stream.write(strSystem+'='+strClass+'(embed'+strOptions+')\n') |
70 | 10 | tkerber | |
71 | 10 | tkerber | strSystem=definition.system.lower() |
72 | 10 | tkerber | strMethod=definition.getValue('method')
|
73 | 10 | tkerber | strOptions=definition.getValue('method.options')
|
74 | 10 | tkerber | stream.write(strSystem+'.'+strMethod+'('+strOptions+')\n') |