コード例 #1
0
 def __update_datasource(self, datasource, stock, column, name):
     """
         Update the object datasource with data from each stock.
     """
     x, y = Formatter._get_x_y(stock, column)
     datasource.add(name=name, data=y)
     if 'x' not in datasource.data:
         datasource.add(name='x', data=x)
     return datasource
コード例 #2
0
    def update_data(self, attrname, old, new):
        sliders_values = {}
        data_temp = {}
        result = {}
        for k, v in list(self.sliders.items()):
            sliders_values[k] = v.value
        for i, __data_source in enumerate(self.sdb.datasources):
            for name in list(__data_source.data.keys()):
                if re.findall("\(\w+\)", name):
                    raise (ValueError("Variable should not contain " +
                                      "plain parentheses. "
                                      "If included use '\(' and '\)'." +
                                      "Found: %s" % name))
                if len(__data_source.data[name]) > 1:
                    data_temp[name] = pd.Series(
                        copy.deepcopy(__data_source.data[name]),
                        index=copy.deepcopy(__data_source.data['x']))
                else:
                    data_temp[name] = copy.deepcopy(__data_source.data[name])

        if not hasattr(self, 'signal_expressions_formatted'):
            self._format_signal_expressions(data_temp)
        # Run twice since some singals depends on others
        for i in range(2):
            for signal_name, expr in list(self.signals_expressions.items()):
                result[signal_name] = eval(
                    self.signals_expressions_formatted[signal_name])
                # Update result in data_temp. If it is not dependent
                # of other variable signal, this result won't change.
                data_temp[signal_name] = result[signal_name]

        for i, __data_source in enumerate(self.sdb.datasources):
            for name in result:
                if name in __data_source.data:
                    (__data_source.data['x'],
                     __data_source.data[name]) = copy.deepcopy(
                         Formatter._get_x_y(result[name]))