예제 #1
0
 def _kind_changed(self):
     if self.kind == 'MassSpec':
         self.exporter = MassSpecExporter()
     else:
         self.exporter = XMLExporter()
예제 #2
0
 def _kind_changed(self):
     if self.kind == 'MassSpec':
         self.exporter = MassSpecExporter()
     else:
         self.exporter = XMLExporter()
예제 #3
0
class ExportTask(AnalysisEditTask, BrowserMixin):
    id = 'pychron.export'
    export_analyses = List
    name = 'Export'

    append_button = Button
    replace_button = Button
    export_button = Button

    kind = Enum('MassSpec', 'XML')
    exporter = Instance(Exporter)

    tool_bars = [SToolBar(ExportAction())]

    def do_export(self):
        if self.export_analyses:
            if self.exporter.start_export():
                n = len(self.export_analyses)
                prog = self.manager.open_progress(n)
                for ei in self.export_analyses:
                    self._export_analysis(ei, prog)
                prog.close()

    def _exporter_default(self):
        return MassSpecExporter()

    def _kind_changed(self):
        if self.kind == 'MassSpec':
            self.exporter = MassSpecExporter()
        else:
            self.exporter = XMLExporter()

    def _export_analysis(self, ai, prog):
        # db=self.manager.db
        # with db.session_ctx():
        # dest=self.destination
        espec = self._make_export_spec(ai)
        self.exporter.add(espec)
        prog.change_message('Export analysis {}'.format(ai.record_id))

    def _make_export_spec(self, ai):
        ai = self.manager.make_analysis(ai, use_cache=False)

        # rs_name, rs_text=assemble_script_blob()
        rs_name, rs_text = '', ''
        rid = ai.record_id

        exp = ExportSpec(runid=rid,
                         runscript_name=rs_name,
                         runscript_text=rs_text,
                         mass_spectrometer=ai.mass_spectrometer.capitalize(),
                         isotopes=ai.isotopes)

        exp.load_record(ai)
        return exp

    def _append_button_fired(self):
        s = self._get_selected_analyses()
        if s:
            self.export_analyses.extend(s)

    def _replace_button_fired(self):
        s = self._get_selected_analyses()
        if s:
            self.export_analyses = s

    def create_dock_panes(self):
        self.browser_pane = BrowserPane(model=self)
        return [self.browser_pane, DestinationPane(model=self)]

    def create_central_pane(self):
        return ExportCentralPane(model=self)

    def _default_layout_default(self):
        return TaskLayout(left=Tabbed(PaneItem('pychron.browser'),
                                      PaneItem('pychron.export.destination')))
예제 #4
0
class ExportTask(AnalysisEditTask, BrowserMixin):
    id = 'pychron.export'
    export_analyses = List
    name = 'Export'

    append_button = Button
    replace_button = Button
    export_button = Button

    kind = Enum('MassSpec', 'XML')
    exporter = Instance(Exporter)

    tool_bars = [SToolBar(ExportAction())]

    def do_export(self):
        if self.export_analyses:
            if self.exporter.start_export():
                n = len(self.export_analyses)
                prog = self.manager.open_progress(n)
                for ei in self.export_analyses:
                    self._export_analysis(ei, prog)
                prog.close()

    def _exporter_default(self):
        return MassSpecExporter()

    def _kind_changed(self):
        if self.kind == 'MassSpec':
            self.exporter = MassSpecExporter()
        else:
            self.exporter = XMLExporter()

    def _export_analysis(self, ai, prog):
        # db=self.manager.db
        # with db.session_ctx():
        # dest=self.destination
        espec = self._make_export_spec(ai)
        self.exporter.add(espec)
        prog.change_message('Export analysis {}'.format(ai.record_id))

    def _make_export_spec(self, ai):
        ai = self.manager.make_analysis(ai, use_cache=False)

        # rs_name, rs_text=assemble_script_blob()
        rs_name, rs_text = '', ''
        rid = ai.record_id

        exp = ExportSpec(runid=rid,
                         runscript_name=rs_name,
                         runscript_text=rs_text,
                         mass_spectrometer=ai.mass_spectrometer.capitalize(),
                         isotopes=ai.isotopes)

        exp.load_record(ai)
        return exp

    def _append_button_fired(self):
        s = self._get_selected_analyses()
        if s:
            self.export_analyses.extend(s)

    def _replace_button_fired(self):
        s = self._get_selected_analyses()
        if s:
            self.export_analyses = s

    def create_dock_panes(self):
        self.browser_pane = BrowserPane(model=self)
        return [self.browser_pane,
                DestinationPane(model=self)]

    def create_central_pane(self):
        return ExportCentralPane(model=self)

    def _default_layout_default(self):
        return TaskLayout(left=Tabbed(PaneItem('pychron.browser'),
                                      PaneItem('pychron.export.destination')))