def rbf_changed(self, rbfunc): global modified #print "rbf changed to ", rbfunc #print self.val.rbf self.val.rbf = rbfunc del h5[self.path] h5[self.path] = pickle(self.val) # invalidate the pdf pdfpath = self.path[:-len('response')] + 'pdf' samplepath = self.path[:-len('response')] + 'samples' varname = self.path.split('/')[-2] if pdfpath in h5: del h5[pdfpath] if samplepath in h5: del h5[samplepath] # change treeview pdf tag to 'generate' for child in MyApp.app.tree.get_children('psweep'): item = MyApp.app.tree.item(child) if item['text'] == varname: for ch in MyApp.app.tree.get_children(child): item = MyApp.app.tree.item(ch) if item['text'] == 'pdf': MyApp.app.tree.item(ch, tags = ['generate']) modified = True MyApp.state_changed('RESPONSE', self.val, self.path)
def export_pdf(self, ext): # Dump pdf as csv, json, or python import csv if self.par: name = '%s-pdf' % self.par.name else: name = 'PDF' extension = '.'+ext filetypes = [(ext.upper(), '*.%s' % ext)] filename = asksaveasfilename(title="Save PDF to CSV file...", initialfile=name, defaultextension=extension, filetypes=filetypes) if not filename: return if ext == 'csv': with open(filename, 'w') as csvfile: spamwriter = csv.writer(csvfile) for x, prob in np.column_stack((self.pdf.x, self.pdf.y)): spamwriter.writerow([x, prob]) m = "Wrote %s pairs of (value, probability) data to '%s'.\n" % (len(self.pdf.x), filename) t = Toplevel(self.parent) t.title("Wrote CSV File") msg = Message(t, text=m, width=500) button = Button(t, text="OK", command=t.destroy) button.pack(side=BOTTOM) msg.pack(fill=BOTH, expand=1) elif ext == 'py': with open(filename, 'w') as pyfile: pyfile.write(repr(self.pdf)) elif ext == 'json': with open(filename, 'w') as jfile: jfile.write(pickle(self.pdf))
def copy_clip(self): root.clipboard_clear() root.clipboard_append(pickle(self.pdf))