Beispiel #1
0
 def load_monitor_state(self, config):
     """
     """
     if 'custom' in config:
         for e in config['custom']:
             entry = MonitoredEntry()
             entry.update_members_from_preferences(**e)
             self.custom_entries.append[entry]
     
     entries = set(self.displayed_entries + self.undisplayed_entries +\
                 self.hidden_entries + self.custom_entries)
                 
     pref_disp = config['displayed']; pref_undisp = config['undisplayed']
     pref_hidden = config['hidden']
     disp = [e for e in entries if e.path in pref_disp]
     entries -=  set(disp)
     undisp = [e for e in entries if e.path in pref_undisp]
     entries -= set(undisp)
     hidden = [e for e in entries if e.path in pref_hidden]
     entries -= set(hidden) 
     if entries:
         print [e.path for e in entries]
         information(parent = None,
                     title = 'Unhandled entries',
                     text = cleandoc('''The application of new rules lead
                     to the creation of new entries. These entries has been 
                     added to the displayed ones.'''))
         pref_disp += entries
         pass
     self.displayed_entries = disp
     self.undisplayed_entries = undisp
     self.hidden_entries = hidden
     self.measure_name = config['measure_name']
Beispiel #2
0
    def close(self, view, is_ok):
        model = view.instr
        connection_form = model.connection_form
        if is_ok:
            if (model.name != '' and model.driver_type and model.driver != ''
                    and connection_form.check()):
                connection_dict = connection_form.connection_dict()
                try:
                    instr = DRIVERS[model.driver](connection_dict)
                    instr.close_connection()
                except InstrIOError:
                    message = cleandoc(u"""The software failed to
                                establish the connection with the instrument
                                please check all parameters and instrument state
                                and try again""")

                    critical(parent=view,
                             text=fill(message, 80),
                             title='Connection failure')

                view.result = True
                view.close()

            else:
                message = cleandoc(u"""You must fill the fields : name,
                       driver type, driver, {} before
                       validating""".format(connection_form.required_fields()))
                information(parent=view,
                            text=fill(message, 80),
                            title='Missing information')

        else:
            view.close()
Beispiel #3
0
    def close(self, view, is_ok):
        model = view.instr
        connection_form = model.connection_form
        if is_ok:
            if (model.name != '' and model.driver_type and model.driver != ''
                and connection_form.check()):
                connection_dict = connection_form.connection_dict()
                try:
                    instr = DRIVERS[model.driver](connection_dict)
                    instr.close_connection()
                except InstrIOError:
                    message = cleandoc(u"""The software failed to
                                establish the connection with the instrument
                                please check all parameters and instrument state
                                and try again""")

                    critical(parent = view,
                             text = fill(message, 80),
                             title = 'Connection failure')

                view.result = True
                view.close()

            else:
                message = cleandoc(u"""You must fill the fields : name,
                       driver type, driver, {} before
                       validating""".format(connection_form.required_fields())
                                       )
                information(parent = view, text = fill(message, 80),
                          title = 'Missing information')

        else:
            view.close()
Beispiel #4
0
    def set_state(self, config, entries):
        # Request all the rules class from the plugin.
        rules_config = [
            conf for name, conf in config.iteritems()
            if name.startswith('rule_')
        ]

        # Rebuild all rules.
        rules = []
        for rule_config in rules_config:
            rule = self._plugin.build_rule(rule_config)
            if rule is not None:
                rules.append(rule)

        self.rules = rules

        customs_config = [
            conf for name, conf in config.iteritems()
            if name.startswith('custom_')
        ]
        for custom_config in customs_config:
            entry = MonitoredEntry()
            entry.update_members_from_preferences(**custom_config)
            self.custom_entries.append(entry)

        self.refresh_monitored_entries(entries)

        m_entries = set(self.displayed_entries + self.undisplayed_entries +
                        self.hidden_entries + self.custom_entries)

        pref_disp = eval(config['displayed'])
        pref_undisp = eval(config['undisplayed'])
        pref_hidden = eval(config['hidden'])
        disp = [e for e in m_entries if e.path in pref_disp]
        m_entries -= set(disp)
        undisp = [e for e in m_entries if e.path in pref_undisp]
        m_entries -= set(undisp)
        hidden = [e for e in m_entries if e.path in pref_hidden]
        m_entries -= set(hidden)
        if m_entries:
            e_l = [e.name for e in m_entries]
            mess = cleandoc('''The following entries were not
                        expected from the config : {} . These entries has been
                        added to the displayed ones.''')
            information(parent=None,
                        title='Unhandled entries',
                        text=fill(mess.format(e_l)))
            pref_disp += list(m_entries)

        self.displayed_entries = disp
        self.undisplayed_entries = undisp
        self.hidden_entries = hidden
        self.measure_name = config['measure_name']
        self.auto_show = eval(config['auto_show'])
Beispiel #5
0
    def set_state(self, config, entries):
        """Rebuild all rules and dispatch entries according to the state.

        """
        # Request all the rules class from the plugin.
        rules_config = [conf for name, conf in config.iteritems()
                        if name.startswith('rule_')]

        # Rebuild all rules.
        rules = []
        for rule_config in rules_config:
            rule = self._plugin.build_rule(rule_config)
            if rule is not None:
                rules.append(rule)

        self.rules = rules

        customs_config = [conf for name, conf in config.iteritems()
                          if name.startswith('custom_')]
        for custom_config in customs_config:
            entry = MonitoredEntry()
            entry.update_members_from_preferences(custom_config)
            self.custom_entries.append(entry)

        self.refresh_monitored_entries(entries)

        m_entries = set(self.displayed_entries + self.undisplayed_entries +
                        self.hidden_entries + self.custom_entries)

        pref_disp = literal_eval(config['displayed'])
        pref_undisp = literal_eval(config['undisplayed'])
        pref_hidden = literal_eval(config['hidden'])

        disp = [e for e in m_entries if e.path in pref_disp]
        m_entries -= set(disp)
        undisp = [e for e in m_entries if e.path in pref_undisp]
        m_entries -= set(undisp)
        hidden = [e for e in m_entries if e.path in pref_hidden]
        m_entries -= set(hidden)

        if m_entries:
            e_l = [e.name for e in m_entries]
            mess = ('The following entries were not expected from the config :'
                    ' {}. These entries has been added to the displayed ones.')
            information(parent=None,
                        title='Unhandled entries',
                        text=fill(mess.format(e_l)))
            disp += list(m_entries)

        self.displayed_entries = disp
        self.undisplayed_entries = undisp
        self.hidden_entries = hidden
Beispiel #6
0
    def link_to_measure(self, measure):
        """Set the entries according to the state if one is present.

        """
        super(TextMonitor, self).link_to_measure(measure)
        database = measure.root_task.database
        self.refresh_monitored_entries(database.list_all_entries(values=True))

        if self._state:
            m_entries = set(self.displayed_entries + self.undisplayed_entries +
                            self.hidden_entries + self.custom_entries)

            config = self._state
            del self._state
            pref_disp = literal_eval(config['displayed'])
            pref_undisp = literal_eval(config['undisplayed'])
            pref_hidden = literal_eval(config['hidden'])

            disp = [e for e in m_entries if e.path in pref_disp]
            m_entries -= set(disp)
            undisp = [e for e in m_entries if e.path in pref_undisp]
            m_entries -= set(undisp)
            hidden = [e for e in m_entries if e.path in pref_hidden]
            m_entries -= set(hidden)

            # TODO this should not assume the UI exists
            if m_entries:
                e_l = [e.name for e in m_entries]
                mess = ('The following entries were not expected from the '
                        'config :  {}. These entries has been added to the '
                        'displayed ones.')
                information(parent=None,
                            title='Unhandled entries',
                            text=fill(mess.format(e_l)))
                disp += list(m_entries)

            self.displayed_entries = disp
            self.undisplayed_entries = undisp
            self.hidden_entries = hidden
Beispiel #7
0
    def link_to_measurement(self, measurement):
        """Set the entries according to the state if one is present.

        """
        super(TextMonitor, self).link_to_measurement(measurement)
        database = measurement.root_task.database
        self.refresh_monitored_entries(database.list_all_entries(values=True))

        if self._state:
            m_entries = set(self.displayed_entries + self.undisplayed_entries +
                            self.hidden_entries + self.custom_entries)

            config = self._state
            del self._state
            pref_disp = literal_eval(config['displayed'])
            pref_undisp = literal_eval(config['undisplayed'])
            pref_hidden = literal_eval(config['hidden'])

            disp = [e for e in m_entries if e.path in pref_disp]
            m_entries -= set(disp)
            undisp = [e for e in m_entries if e.path in pref_undisp]
            m_entries -= set(undisp)
            hidden = [e for e in m_entries if e.path in pref_hidden]
            m_entries -= set(hidden)

            # TODO this should not assume the UI exists
            if m_entries:
                e_l = [e.name for e in m_entries]
                mess = ('The following entries were not expected from the '
                        'config :  {}. These entries has been added to the '
                        'displayed ones.')
                information(parent=None,
                            title='Unhandled entries',
                            text=fill(mess.format(e_l)))
                disp += list(m_entries)

            self.displayed_entries = disp
            self.undisplayed_entries = undisp
            self.hidden_entries = hidden