def updateVariables(self, plot=None): for var in get_variables().values: if var[0] not in self.values: self.values.append(var[0]) self.kernel.shell.push({var[0]: var[1]}) if plot and plot.variables: for var in plot.variables: try: self.kernel.shell.push({var.id: var}) except AttributeError: pass
def __init__(self, row, col, parent=None): super(QCDATWidget, self).__init__(parent=parent) self.row = row self.col = col self.setAcceptDrops(True) self.mRenWin = vtk.vtkRenderWindow() self.iren = QVTKRenderWindowInteractor(parent=self, rw=self.mRenWin) self.canvas = None self.canvasLayout = QtGui.QVBoxLayout() self.canvasLayout.addWidget(self.iren) self.setLayout(self.canvasLayout) self.becameVisible = partial(self.visiblityChanged.emit, True) self.becameHidden = partial(self.visiblityChanged.emit, False) self.setFocusPolicy(QtCore.Qt.StrongFocus) self.setSizePolicy(QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding)) self.visiblityChanged.connect(self.manageCanvas) self.dragTarget = QtGui.QWidget(self) self.dragTarget.hide() self.dragLayout = QtGui.QHBoxLayout() self.dragTarget.setLayout(self.dragLayout) get_variables().dataChanged.connect(self.variablesChanged) self.plots = [] # Creates and hooks up the initial PlotInfo widget self.addedPlot() # Just need a callable that returns something self.toolBarType = lambda x: None
def __init__(self, parent=None): super(ConsoleWidget, self).__init__() self.variable_list = get_variables() self.vbox = QtGui.QVBoxLayout() self.setLayout(self.vbox) self.kernel_manager = None self.kernel_client = None self.kernel = None self.jupyter_widget = None self.values = [] self.display_plots = [] self.shell_vars = {} self.gm_count = {} self.letters = list(string.ascii_uppercase) self.reserved_words = [ 'and', 'del', 'from', 'not', 'while', 'as', 'elif', 'global', 'or', 'with', 'assert', 'else', 'if', 'pass', 'yield', 'break', 'except', 'import', 'print', 'class', 'exec', 'in', 'raise', 'continue', 'finally', 'is', 'return', 'def', 'for', 'lambda', 'try' ] # Create ipython widget self.kernel_manager = QtInProcessKernelManager() self.kernel_manager.start_kernel() self.kernel = self.kernel_manager.kernel self.kernel_client = self.kernel_manager.client() self.kernel_client.start_channels() self.kernel_client.execute("import vcs, cdms2", silent=True) self.jupyter_widget = RichJupyterWidget() self.jupyter_widget.kernel_manager = self.kernel_manager self.jupyter_widget.kernel_client = self.kernel_client self.jupyter_widget.exit_requested.connect(self.stop) self.jupyter_widget.executed.connect(self.codeExecuted) self.original_ns = dict(self.kernel.shell.user_ns) # Push variableList variables self.variable_list.listUpdated.connect(self.updateVariables) self.updateVariables() self.vbox.addWidget(self.jupyter_widget)
def __init__(self, parent=None): super(ConsoleWidget, self).__init__() self.variable_list = get_variables() self.vbox = QtGui.QVBoxLayout() self.setLayout(self.vbox) self.kernel_manager = None self.kernel_client = None self.kernel = None self.jupyter_widget = None self.values = [] self.display_plots = [] self.shell_vars = {} self.gm_count = {} self.letters = list(string.ascii_uppercase) self.reserved_words = ['and', 'del', 'from', 'not', 'while', 'as', 'elif', 'global', 'or', 'with', 'assert', 'else', 'if', 'pass', 'yield', 'break', 'except', 'import', 'print', 'class', 'exec', 'in', 'raise', 'continue', 'finally', 'is', 'return', 'def', 'for', 'lambda', 'try'] # Create ipython widget self.kernel_manager = QtInProcessKernelManager() self.kernel_manager.start_kernel() self.kernel = self.kernel_manager.kernel self.kernel_client = self.kernel_manager.client() self.kernel_client.start_channels() self.kernel_client.execute("import vcs, cdms2", silent=True) self.jupyter_widget = RichJupyterWidget() self.jupyter_widget.kernel_manager = self.kernel_manager self.jupyter_widget.kernel_client = self.kernel_client self.jupyter_widget.exit_requested.connect(self.stop) self.jupyter_widget.executed.connect(self.codeExecuted) self.original_ns = dict(self.kernel.shell.user_ns) # Push variableList variables self.variable_list.listUpdated.connect(self.updateVariables) self.updateVariables() self.vbox.addWidget(self.jupyter_widget)
def variablesChanged(self, start, end): vars = get_variables() any_updated = False for i in range(start.row(), end.row() + 1): var = vars.get(i) for plot in self.plots: plot_vars = plot.manager.variables if plot_vars is None: continue changed = False new_vars = [] for v in plot_vars: if v is None: continue if v.id == var.id: changed = True new_vars.append(var.var) else: new_vars.append(v) if changed: any_updated = True plot.variables(new_vars) if any_updated: self.update()
def __init__(self, spreadsheet, parent=None): super(InspectorWidget, self).__init__("Inspector", parent=parent) self.allowed_sides = [QtCore.Qt.DockWidgetArea.RightDockWidgetArea] spreadsheet.selectionChanged.connect(self.selection_change) self.cells = [] self.current_plot = None self.plots = PlotterListModel() widget = QtGui.QWidget() l = QtGui.QVBoxLayout() widget.setLayout(l) # Plot selector label = QtGui.QLabel("Plots:") l.addWidget(label) plots = ComboButton(self.plots, "Delete") plots.selected_object.connect(self.selectPlot) plots.clicked_button.connect(self.deletePlot) l.addWidget(plots) self.plot_combo = plots l.addWidget(QtGui.QLabel("Variables:")) var_1 = ComboButton(get_variables(), "Edit") var_1.selected_object.connect(self.setFirstVar) var_1.clicked_button.connect(self.editFirstVar) l.addWidget(var_1) var_2 = ComboButton(get_variables(), "Edit") var_2.selected_object.connect(self.setSecondVar) var_2.clicked_button.connect(self.editSecondVar) l.addWidget(var_2) self.var_combos = [var_1, var_2] l.addWidget(QtGui.QLabel("Graphics Method:")) self.gm_type_combo = QtGui.QComboBox() self.gm_type_combo.setModel(get_gms()) self.gm_type_combo.currentIndexChanged.connect(self.setGMRoot) self.gm_type_combo.setEnabled(False) l.addWidget(self.gm_type_combo) gm_layout = QtGui.QHBoxLayout() self.gm_instance_combo = QtGui.QComboBox() self.gm_instance_combo.setModel(get_gms()) self.gm_instance_combo.setRootModelIndex(get_gms().index(0, 0)) self.gm_instance_combo.setCurrentIndex(0) self.gm_instance_combo.setEnabled(False) self.gm_instance_combo.currentIndexChanged.connect(self.updateGM) gm_layout.addWidget(self.gm_instance_combo, 1) edit_gm = QtGui.QPushButton("Edit") edit_gm.clicked.connect(self.editGM) gm_layout.addWidget(edit_gm, 0) self.edit_gm_button = edit_gm edit_gm.setEnabled(False) l.addLayout(gm_layout) l.addWidget(QtGui.QLabel("Template:")) self.template_combo = ComboButton(get_templates(), "Edit") self.template_combo.selected_object.connect(self.setTemplate) self.template_combo.clicked_button.connect(self.editTemplate) l.addWidget(self.template_combo) self.plot_combo.setEnabled(False) for v in self.var_combos: v.setEnabled(False) self.template_combo.setEnabled(False) self.tmpl_editor = None self.var_editor = None self.current_var = None self.gm_editor = None self.setWidget(widget)
def makeVar(self, var): get_variables().add_variable(var) combo = self.var_combos[self.current_var] # Use the new variable combo.setCurrentIndex(get_variables().rowCount() - 1)
def editVar(self, var): get_variables().update_variable(var, var.id)
def __init__(self, parent=None): super(CDMSVariableList, self).__init__(parent=parent) self.setModel(get_variables()) self.setDragEnabled(True) self.setSelectionMode(QtGui.QAbstractItemView.ExtendedSelection) self.activated.connect(self.sel)