Exemplo n.º 1
0
    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)
Exemplo n.º 2
0
    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)))
Exemplo n.º 3
0
    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)
Exemplo n.º 4
0
 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)
Exemplo n.º 5
0
    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')
Exemplo n.º 6
0
 def filename(self):
     return safeName(self.samplename)
Exemplo n.º 7
0
def to_snake(s):
    return safeName(''.join(['_' + c.lower() if c.isupper() else c
                             for c in s]).lstrip('_'))
Exemplo n.º 8
0
def test_safeName(name):
    assert safeName(name[0]) == name[1]