Statistiques
| Révision :

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')