Пример #1
0
def test_next_available_name():
    names = ["kissa", "koira", "kissa_1", "kissa_2", "kissa_11", "kissa_kala"]
    assert (next_available_name(names, "kissa") == 'kissa_12')
    assert (next_available_name(names, "koira") == 'koira_1')
    assert (next_available_name(names, "kettu") == 'kettu')
    assert (next_available_name(names, "kissa_kala") == 'kissa_kala_1')

    names = ['EO', 'EOEC', 'group_EOEC']
    assert (next_available_name(names, 'group_EO') == 'group_EO')
Пример #2
0
    def accept(self):
        """ Add new subjects. """
        for i in range(self.ui.listWidgetFileNames.count()):
            item = self.ui.listWidgetFileNames.item(i)
            raw_path = item.text()
            basename = os.path.basename(raw_path)
            subject_name = basename.split('.')[0]
            experiment = self.parent.experiment
            old_names = experiment.subjects.keys()

            try:
                subject_name = next_available_name(old_names, subject_name)

                @threaded
                def _create_subject():
                    experiment.create_subject(subject_name, basename,
                                              raw_path)
                
                _create_subject(do_meanwhile=self.parent.update_ui)

            except Exception as exc:
                exc_messagebox(self.parent, exc)
                logging.getLogger('ui_logger').exception(str(exc))

        self.parent.experiment.save_experiment_settings()
        self.parent.initialize_ui()

        self.close()
Пример #3
0
    def run(self):
        """
        """
        try:
            selected_name = self.data['outputs']['tfr'][0]
        except IndexError as exc:
            return

        name = next_available_name(self.experiment.active_subject.tfr.keys(),
                                   'group_' + selected_name)

        def group_handler(groups):
            params = {
                'based_on': selected_name,
                'name': name,
                'groups': groups
            }
            try:
                self.handler(self.experiment.active_subject, params)
                self.experiment.save_experiment_settings()
                self.window.initialize_ui()
            except Exception as exc:
                exc_messagebox(self.window, exc)

        dialog = GroupSelectionDialog(self.experiment,
                                      self.window,
                                      handler=group_handler)
        dialog.show()
Пример #4
0
    def run(self):

        selected_names = self.data['inputs']['epochs']

        if not selected_names:
            return

        if len(selected_names) == 1:
            stem = selected_names[0]
        else:
            stem = 'Evoked'

        default_name = next_available_name(
            self.experiment.active_subject.evoked.keys(), stem)

        def close_handle(subject, params):
            params['conditions'] = selected_names
            self.handler(subject, params)

        dialog = SimpleDialog(self.experiment,
                              self.window,
                              default_name,
                              close_handle,
                              title='Create evoked')
        dialog.show()
Пример #5
0
    def run(self):
        default_name = next_available_name(
            self.experiment.active_subject.spectrum.keys(), 'Epochs')

        dialog = CreateEpochsFromEventsDialog(self.experiment, self.window,
                                              default_name, self.handler)
        dialog.show()
Пример #6
0
def group_average(experiment, data, window):
    """ Handles group average item creation
    """
    try:
        selected_name = data['outputs']['tfr'][0]
    except IndexError as exc:
        return

    def handler(name, groups):
        try:
            group_average_tfr(experiment,
                              selected_name,
                              groups,
                              name,
                              do_meanwhile=window.update_ui)
            experiment.save_experiment_settings()
            window.initialize_ui()

        except Exception as exc:
            exc_messagebox(window, exc)
            return

    default_name = next_available_name(experiment.active_subject.tfr.keys(),
                                       'group_' + selected_name)
    dialog = GroupAverageDialog(experiment, window, handler, default_name)
    dialog.show()
Пример #7
0
    def run(self):
        default_name = next_available_name(
            self.experiment.active_subject.spectrum.keys(), 'Spectrum')

        dialog = PowerSpectrumDialog(self.experiment, self.window,
                                     default_name, self.handler)
        dialog.show()
Пример #8
0
    def run(self):

        subject = self.experiment.active_subject

        inv_name = next_available_name(subject.inverse.keys(), "Inv")

        try:
            cov_name = self.data['inputs']['covariance'][0]
        except IndexError as exc:
            return

        try:
            coreg_name = self.data['inputs']['coregistration'][0]
        except IndexError as exc:
            return

        def handle_subject(subject, params):
            params['cov_name'] = cov_name
            params['coreg_name'] = coreg_name
            self.handler(subject, params)

        dialog = SimpleDialog(self.experiment,
                              self.window,
                              inv_name,
                              handle_subject,
                              title='Create inverse')
        dialog.show()
Пример #9
0
def create(experiment, data, window):
    """ Opens spectrum creation dialog
    """
    default_name = next_available_name(
        experiment.active_subject.spectrum.keys(), 'Spectrum')

    dialog = PowerSpectrumDialog(experiment, window, default_name)
    dialog.show()
Пример #10
0
def create_from_events(experiment, data, window):
    """ Opens epoch creation dialog
    """

    default_name = next_available_name(
        experiment.active_subject.epochs.keys(), 'Epochs')
    dialog = CreateEpochsFromEventsDialog(experiment, window, default_name)
    dialog.show()
Пример #11
0
    def run(self):

        subject = self.experiment.active_subject

        covs = subject.covariance.keys()
        cov_name = next_available_name(covs, "Cov")

        dialog = SimpleDialog(self.experiment, self.window,
                              cov_name, self.handler, title='Create covariance')
        dialog.show()
Пример #12
0
    def run(self):

        subject = self.experiment.active_subject
        subjects_dir = os.path.join(subject.coregistration_directory,
                                    "subjects")

        coreg_name = next_available_name(subject.coregistration.keys(),
                                         "Coreg")

        dialog = SimpleDialog(self.experiment,
                              self.window,
                              coreg_name,
                              self.handler,
                              batching=False,
                              title='Create coregistration')
        dialog.show()
Пример #13
0
def create(experiment, data, window):
    """ Opens tfr creation dialog
    """
    selected_names = data['inputs']['epochs']

    if not selected_names:
        return

    if len(selected_names) == 1:
        stem = selected_names[0]
    else:
        stem = 'TFR'
    default_name = next_available_name(experiment.active_subject.tfr.keys(),
                                       stem)

    dialog = TFRDialog(experiment, window, selected_names, default_name)
    dialog.show()
Пример #14
0
    def run(self):

        subject = self.experiment.active_subject

        try:
            selected_name = self.data['inputs']['spectrum'][0]
        except Exception as exc:
            return

        default_name = next_available_name(subject.fooof_report.keys(), selected_name)

        def handle_subject(subject, params):
            params['spectrum_name'] = selected_name
            self.handler(subject, params)

        dialog = CreateReportDialog(self.experiment, self.window, selected_name,
                                    default_name, handler=handle_subject)
        dialog.show()
Пример #15
0
    def accept(self):
        n_successful = 0
        for i in range(self.ui.listWidgetFileNames.count()):
            item = self.ui.listWidgetFileNames.item(i)
            raw_path = item.text()
            basename = os.path.basename(raw_path)
            subject_name = basename.split('.')[0]

            experiment = self.parent.experiment
            old_names = experiment.subjects.keys()

            try:
                subject_name = next_available_name(old_names, subject_name)

                @threaded
                def _create_subject():
                    experiment.create_subject(subject_name, raw_path)

                _create_subject(do_meanwhile=self.parent.update_ui)
                n_successful += 1

            except Exception as exc:
                logging.getLogger('ui_logger').exception('')

        try:
            self.parent.experiment.save_experiment_settings()
        except Exception as exc:
            exc_messagebox(self, exc)
            return

        n_total = self.ui.listWidgetFileNames.count()

        if n_total != n_successful:
            message = ("Only {0} / {1} subjects added successfully. "
                       "Please check console below for details.")
            messagebox(self.parent, message.format(n_successful, n_total))

        message = ('{0} / {1} subjects added successfully.').format(
            n_successful, n_total)
        logging.getLogger('ui_logger').info(message)

        self.parent.initialize_ui()
        self.close()
Пример #16
0
    def run(self):

        selected_names = self.data['inputs']['epochs']

        if not selected_names:
            return

        if len(selected_names) == 1:
            stem = selected_names[0]
        else:
            stem = 'TFR'

        default_name = next_available_name(
            self.experiment.active_subject.tfr.keys(), stem)

        subject = self.experiment.active_subject

        dialog = TFRDialog(self.experiment, self.window, selected_names,
                           default_name, self.handler)
        dialog.show()
Пример #17
0
    def run(self):

        subject = self.experiment.active_subject

        default_name = next_available_name(subject.source_spectrum.keys(),
                                           "Spectrum")

        try:
            inv_name = self.data['inputs']['inverse'][0]
        except IndexError as exc:
            return

        def handle_subject(subject, params):
            params['inv_name'] = inv_name
            self.handler(subject, params)

        dialog = PowerSpectrumDialog(self.experiment,
                                     self.window,
                                     default_name,
                                     handler=handle_subject)
        dialog.show()