~comnets/openwns-wrowser/trunk

« back to all changes in this revision

Viewing changes to openwns/wrowser/probeselector/Exporters.py

  • Committer: Klaus Sambale
  • Date: 2011-01-06 15:19:59 UTC
  • mfrom: (112.1.13 openwns-wrowser)
  • Revision ID: ksw@comnets.rwth-aachen.de-20110106151959-rm4wvqmdenygdco2
Changelog:

- Python export is now also available for python campaigns

- Added JSON and PPRINT (Pretty Print) exporters

- Performance improvements (import of python campaigns and export of
  graphs)

- Fixed several minor bugs

Show diffs side-by-side

added added

removed removed

Lines of Context:
31
31
import Graphs
32
32
import subprocess
33
33
import stat
 
34
import json
 
35
import pprint 
 
36
import pickle
34
37
from Interface import Facade
35
38
 
 
39
def getExportData(export):
 
40
        data = dict()
 
41
        data['title']=export.title
 
42
        data['type']=export.graphType
 
43
        data['labels']=[export.graphs[0].axisLabels[0],export.graphs[0].axisLabels[1]]
 
44
        grphs = dict()
 
45
        for i,graph in enumerate(export.graphs):
 
46
            grphs[i] = {'points': graph.points,'identity': str(graph.identity)}
 
47
        data['graphs']=grphs
 
48
        return data
 
49
 
36
50
class CSV:
37
51
 
38
52
    formatName = "CSV"
53
67
                out.write(repr(point[0]) + ", " + repr(point[1]) + "\n")
54
68
        out.close()
55
69
 
 
70
class JSON:
 
71
 
 
72
    formatName = "JSON"
 
73
 
 
74
    @staticmethod
 
75
    def export(filename, export , progressNotify = None, progressReset = None):
 
76
        graphs = export.graphs
 
77
        data = getExportData(export)
 
78
        out = open(filename, "w")
 
79
        out.write(" "+json.dumps(data))
 
80
        out.close()
 
81
 
 
82
class PPRINT:
 
83
 
 
84
    formatName = "PPRINT"
 
85
 
 
86
    @staticmethod
 
87
    def export(filename, export , progressNotify = None, progressReset = None):
 
88
        data = getExportData(export)
 
89
        out = open(filename, "w")
 
90
        pprint.pprint(data,out)
 
91
        out.close()
 
92
 
 
93
class Pickle:
 
94
 
 
95
#    formatName = "Pickle"
 
96
 
 
97
    @staticmethod
 
98
    def export(filename, export , progressNotify = None, progressReset = None):
 
99
        graphs = export.graphs
 
100
        out = open(filename, "w")
 
101
        pickle.dump(graphs,out)
 
102
        out.close()
 
103
 
56
104
class PythExport:
57
105
 
58
106
    formatName = "Python"
111
159
        pw.write("aggrParam",export.aggrParam)
112
160
        pw.write("fileName",file)
113
161
        pw.write("type", export.graphType)
114
 
        pw.write("campaignId", str(export.campaignId))
 
162
        if export.pythonCampaignDir is not None:
 
163
            out.write("  campaignId = None\n");
 
164
            pw.write("pythonCampaignDir", export.pythonCampaignDir)
 
165
        else:
 
166
            out.write("  pythonCampaignDir = None\n");
 
167
            pw.write("campaignId", str(export.campaignId))
115
168
        pw.write("xLabel",export.graphs[0].axisLabels[0])
116
169
        pw.write("yLabel",export.graphs[0].axisLabels[1])
117
170
        if typ == 'Param':