def newSample(self, parameters): name = parameters['name'] self.sampledir = safeName(name) BaseImagingExperiment.newSample(self, parameters) self.log.debug('new sample path: %s', self.samplepath) self.log.debug('new data path: %s', self.datapath) self.log.debug('new dark image path: %s', self.darkimagedir) self.log.debug('new open beam image path: %s', self.openbeamdir) self.log.debug('new measurement image path: %s', self.photodir)
def customproposalsymlink(self): if self.proptype == 'service': return None # construct user name user = re.split('[,(<@]', self.users)[0].strip() user = user if user else 'Unknown User' date = time.strftime('%F').replace('-', '_') return path.join(self.proposalpath, '..', safeName('%s-%s-%s-%s' % (date, user, self.proposal, self.title)))
def newSample(self, parameters): if self._mode == SIMULATION: _Experiment.newSample(self, parameters) return self.sampledir = safeName(parameters["name"]) _Experiment.newSample(self, parameters) self.log.debug("changed samplepath to: %s" % self.samplepath) # expand/copy templates if self.getProposalType(self.proposal) != 'service' and self.templates: params = dict(parameters) if parameters else dict() params.update(self.propinfo) self.handleTemplates(self.proposal, params)
def on_actionAttachElog_triggered(self): newdlg = dialogFromUi(self, 'panels/plot_attach.ui') suffix = self.currentPlot.SAVE_EXT newdlg.filename.setText( safeName('data_%s' % self.currentPlot.dataset.name + suffix)) ret = newdlg.exec_() if ret != QDialog.Accepted: return descr = newdlg.description.text() fname = newdlg.filename.text() pathname = self.currentPlot.saveQuietly() with open(pathname, 'rb') as fp: remotefn = self.client.ask('transfer', fp.read()) if remotefn is not None: self.client.eval('_LogAttach(%r, [%r], [%r])' % (descr, remotefn, fname)) os.unlink(pathname)
def saveData(self): curvenames = [ self._getCurveLegend(plotcurve) for plotcurve in self.plotcurves ] dlg = DataExportDialog(self, curvenames, 'Select curve(s), file name and format', '', 'ASCII data files (*.dat)') res = dlg.exec_() if res != QDialog.Accepted: return if not dlg.selectedFiles(): return fmtno = dlg.formatCombo.currentIndex() sel_filename = dlg.selectedFiles()[0] if '.' not in sel_filename: sel_filename += '.dat' base, ext = path.splitext(sel_filename) curve_index = dlg.curveCombo.currentIndex() if curve_index == 0: curvedata = [ convertXCol(fmtno, *self._getCurveData(c)[:2]) for c in self.plotcurves ] if len(curvedata) > 1: filenames = [ base + '_' + safeName(self._getCurveLegend(c)) + ext for c in self.plotcurves ] else: filenames = [sel_filename] elif curve_index == 1: curvedata = [ synthesizeSingleCurveData( [self._getCurveData(c)[:2] for c in self.plotcurves], fmtno) ] filenames = [sel_filename] else: curve = self.plotcurves[curve_index - 2] curvedata = [convertXCol(fmtno, *self._getCurveData(curve)[:2])] filenames = [sel_filename] for curve, filename in zip(curvedata, filenames): np.savetxt(filename, curve, fmt='%s')
def filename(self): return safeName(self.samplename)
def to_snake(s): return safeName(''.join(['_' + c.lower() if c.isupper() else c for c in s]).lstrip('_'))
def test_safeName(name): assert safeName(name[0]) == name[1]