sas.qtgui.Utilities package

Submodules

sas.qtgui.Utilities.AddMultEditor module

Widget for simple add / multiply editor.

class sas.qtgui.Utilities.AddMultEditor.AddMultEditor(parent=None)[source]

Bases: sphinx.ext.autodoc.importer._MockObject, sas.qtgui.Utilities.UI.AddMultEditorUI.Ui_AddMultEditorUI

Dialog for easy custom composite models. Provides a Dialog panel to choose two existing models (including pre-existing Plugin Models which may themselves be composite models) as well as an operation on those models (add or multiply) the resulting model will add a scale parameter and a background parameter. The user can also give a brief help for the model in the description box and must provide a unique name which is verified before the new model is saved.

onApply()[source]

Validity check, save model to file

onHelp()[source]

Display related help section

onNameCheck()[source]

Check if proposed new model name does not already exists (if the overwriting is not allowed). If not an error message not show error message is displayed

onOperatorChange(index)[source]

Respond to operator combo box changes

onOverwrite()[source]

Modify state on checkbox change

readModels()[source]

Generate list of models

setupModels()[source]

Add list of models to ‘Model1’ and ‘Model2’ comboboxes

setupSignals()[source]

Signals from various elements

updateModels()[source]

Update contents of comboboxes with new plugin models

write_new_model_to_file(fname, model1_name, model2_name, operator)[source]

Write and Save file

sas.qtgui.Utilities.CategoryInstaller module

Class for making sure all category stuff is installed and works fine.

Copyright (c) Institut Laue-Langevin 2012

@author kieranrcampbell@gmail.com @modified by NIST/MD sasview team

class sas.qtgui.Utilities.CategoryInstaller.CategoryInstaller[source]

Bases: object

Class for making sure all category stuff is installed

Note - class is entirely static!

static check_install(homedir=None, model_list=None)[source]

the main method of this class makes sure categories.json exists and if not compile it and install :param homefile: Override the default home directory :param model_list: List of model names except customized models

static get_default_file()[source]
static get_user_file()[source]

returns the user data file, eg .sasview/categories.json.json

sas.qtgui.Utilities.ConnectionProxy module

class sas.qtgui.Utilities.ConnectionProxy.ConnectionProxy(url, timeout)[source]

Bases: object

connect()[source]

Performs the request and gets a response from self.url @return: response object from urllib2.urlopen

sas.qtgui.Utilities.CustomDir module

sas.qtgui.Utilities.CustomDir.setup_conf_dir(path)[source]

Setup the custom config dir and cat file

sas.qtgui.Utilities.GenericReader module

Thread handler used to load data

class sas.qtgui.Utilities.GenericReader.GenReader(path, loader, completefn=None, updatefn=None, yieldtime=0.01, worktime=0.01)[source]

Bases: sas.sascalc.data_util.calcthread.CalcThread

Load a sld data given a filename

compute()[source]

Read some data

isquit()[source]

@raise KeyboardInterrupt: when the thread is interrupted

sas.qtgui.Utilities.GridPanel module

class sas.qtgui.Utilities.GridPanel.BatchInversionOutputPanel(parent=None, output_data=None)[source]

Bases: sas.qtgui.Utilities.GridPanel.BatchOutputPanel

Class for stateless grid-like printout of P(r) parameters for any number of data sets

closeEvent(event)[source]

Tell the parent window the window closed

classmethod onHelp()[source]

Open a local url in the default browser

setupTable(widget=None, data=None)[source]

Create tablewidget items and show them, based on params

class sas.qtgui.Utilities.GridPanel.BatchOutputPanel(parent=None, output_data=None)[source]

Bases: sphinx.ext.autodoc.importer._MockObject, sas.qtgui.Utilities.UI.GridPanelUI.Ui_GridPanelUI

Class for stateless grid-like printout of model parameters for mutiple models

ERROR_COLUMN_CAPTION = ' (Err)'
IS_WIN = False
actionLoadData()[source]

Open file load dialog and load a .csv file

actionSaveFile()[source]

Generate a .csv file and dump it do disk

actionSendToExcel()[source]

Generates a .csv file and opens the default CSV reader

addFitResults(results)[source]

Create a new tab with batch fitting results

addTabPage(name=None)[source]

Add new tab page with QTableWidget

addToolbarActions()[source]

Assing actions and callbacks to the File menu items

closeEvent(event)[source]

Overwrite QDialog close method to allow for custom widget close

currentTable()[source]

Returns the currently shown QTabWidget

classmethod dataFromTable(table)[source]

Creates a dictionary {<parameter>:[list of values]} from the parameter table

classmethod onHelp()[source]

Open a local url in the default browser

onPlot()[source]

Plot selected fits by sending signal to the parent

setupTable(widget=None, data=None)[source]

Create tablewidget items and show them, based on params

setupTableFromCSV(csv_data)[source]

Create tablewidget items and show them, based on params

showContextMenu(position)[source]

Show context specific menu in the tab table widget.

windowClosedSignal

Used by autodoc_mock_imports.

classmethod writeBatchToFile(data, tmpfile, details='')[source]

Helper to write result from batch into cvs file

sas.qtgui.Utilities.GuiUtils module

Global defaults and various utility functions usable by the general GUI

class sas.qtgui.Utilities.GuiUtils.Communicate(*args, **kwargs)[source]

Bases: sphinx.ext.autodoc.importer._MockObject

Utility class for tracking of the Qt signals

SaveFitParamsSignal

Used by autodoc_mock_imports.

activeGraphName

Used by autodoc_mock_imports.

activeGraphsSignal

Used by autodoc_mock_imports.

changeDataExplorerTabSignal

Used by autodoc_mock_imports.

copyExcelFitParamsSignal

Used by autodoc_mock_imports.

copyFitParamsSignal

Used by autodoc_mock_imports.

copyLatexFitParamsSignal

Used by autodoc_mock_imports.

customModelDirectoryChanged

Used by autodoc_mock_imports.

dataDeletedSignal

Used by autodoc_mock_imports.

deleteIntermediateTheoryPlotsSignal

Used by autodoc_mock_imports.

extMaskEditorSignal

Used by autodoc_mock_imports.

fileDataReceivedSignal

Used by autodoc_mock_imports.

fileReadSignal

Used by autodoc_mock_imports.

forcePlotDisplaySignal

Used by autodoc_mock_imports.

maskEditorSignal

Used by autodoc_mock_imports.

pasteFitParamsSignal

Used by autodoc_mock_imports.

perspectiveChangedSignal

Used by autodoc_mock_imports.

plotFromFilenameSignal

Used by autodoc_mock_imports.

plotRequestedSignal

Used by autodoc_mock_imports.

plotUpdateSignal

Used by autodoc_mock_imports.

progressBarUpdateSignal

Used by autodoc_mock_imports.

resultPlotUpdateSignal

Used by autodoc_mock_imports.

sendDataToGridSignal

Used by autodoc_mock_imports.

sendDataToPanelSignal

Used by autodoc_mock_imports.

statusBarUpdateSignal

Used by autodoc_mock_imports.

updateMaskedDataSignal

Used by autodoc_mock_imports.

updateModelCategoriesSignal

Used by autodoc_mock_imports.

updateModelFromDataOperationPanelSignal

Used by autodoc_mock_imports.

updateModelFromPerspectiveSignal

Used by autodoc_mock_imports.

updatePerspectiveWithDataSignal

Used by autodoc_mock_imports.

updateTheoryFromPerspectiveSignal

Used by autodoc_mock_imports.

class sas.qtgui.Utilities.GuiUtils.DoubleValidator(*args, **kwargs)[source]

Bases: sphinx.ext.autodoc.importer._MockObject

Allow only dots as decimal separator

fixup(input)[source]

Correct (remove) potential preexisting content

validate(input, pos)[source]

Return invalid for commas

class sas.qtgui.Utilities.GuiUtils.FormulaValidator(parent=None)[source]

Bases: sphinx.ext.autodoc.importer._MockObject

validate(input, pos)[source]
class sas.qtgui.Utilities.GuiUtils.HashableStandardItem(parent=None)[source]

Bases: sphinx.ext.autodoc.importer._MockObject

Subclassed standard item with reimplemented __hash__ to allow for use as an index.

clone()[source]

Assure __hash__ is cloned as well

sas.qtgui.Utilities.GuiUtils.checkModel(path)[source]

Check that the model save in file ‘path’ can run.

sas.qtgui.Utilities.GuiUtils.convertFromSVS(datasets)[source]

Read in properties from SVS and convert into a simple dict

sas.qtgui.Utilities.GuiUtils.convertUnitToHTML(unit)[source]

Convert ASCII unit display into well rendering HTML

sas.qtgui.Utilities.GuiUtils.convertUnitToUTF8(unit)[source]

Convert ASCII unit display into UTF-8 symbol

sas.qtgui.Utilities.GuiUtils.createModelItemWithPlot(update_data, name='')[source]

Creates a checkboxed QStandardItem named “name” Adds ‘update_data’ to that row.

sas.qtgui.Utilities.GuiUtils.dataFromItem(item)[source]

Retrieve Data1D/2D component from QStandardItem. The assumption - data stored in SasView standard, in child 0

sas.qtgui.Utilities.GuiUtils.deleteRedundantPlots(item, new_plots)[source]

Checks all plots that are children of the given item; if any have an ID or name not included in new_plots, it is deleted. Useful for e.g. switching from P(Q)S(Q) to P(Q); this would remove the old S(Q) plot.

Ensure that new_plots contains ALL the relevant plots(!!!)

sas.qtgui.Utilities.GuiUtils.enum(*sequential, **named)[source]

Create an enumeration object from a list of strings

sas.qtgui.Utilities.GuiUtils.findNextFilename(filename, directory)[source]

Finds the next available (non-existing) name for ‘filename’ in ‘directory’. plugin.py -> plugin (n).py - for first ‘n’ for which the file doesn’t exist

sas.qtgui.Utilities.GuiUtils.formatNumber(value, high=False)[source]

Return a float in a standardized, human-readable formatted string. This is used to output readable (e.g. x.xxxe-y) values to the panel.

sas.qtgui.Utilities.GuiUtils.getChildrenFromItem(root)[source]

Recursively go down the model item looking for all children

sas.qtgui.Utilities.GuiUtils.getMonospaceFont()[source]

Convenience function; returns a monospace font to be used in any shells, code editors, etc.

sas.qtgui.Utilities.GuiUtils.get_app_dir()[source]

The application directory is the one where the default custom_config.py file resides.

Returns:app_path - the path to the applicatin directory
sas.qtgui.Utilities.GuiUtils.get_user_directory()[source]

Returns the user’s home directory

sas.qtgui.Utilities.GuiUtils.infoFromData(data)[source]

Given Data1D/Data2D object, extract relevant Info elements and add them to a model item

sas.qtgui.Utilities.GuiUtils.itemFromFilename(filename, model_item)[source]

Returns the model item text=filename in the model

sas.qtgui.Utilities.GuiUtils.onTXTSave(data, path)[source]

Save file as formatted txt

Open a URL in an external browser. Check the URL first, though.

sas.qtgui.Utilities.GuiUtils.parseName(name, expression)[source]

remove “_” in front of a name

sas.qtgui.Utilities.GuiUtils.plotsFromCheckedItems(model_item)[source]

Returns the list of plots for items in the model which are checked

sas.qtgui.Utilities.GuiUtils.plotsFromFilename(filename, model_item)[source]

Returns the list of plots for the item with text=filename in the model

sas.qtgui.Utilities.GuiUtils.plotsFromModel(model_name, model_item)[source]

Returns the list of plots for the item with model name in the model

sas.qtgui.Utilities.GuiUtils.readDataFromFile(fp)[source]

Reads in Data1D/Data2 datasets from the file. Datasets are stored in the JSON format.

sas.qtgui.Utilities.GuiUtils.readProjectFromSVS(filepath)[source]

Read old SVS file and convert to the project dictionary

sas.qtgui.Utilities.GuiUtils.replaceHTMLwithASCII(html)[source]

Replace some important HTML-encoded characters with their ASCII equivalents

sas.qtgui.Utilities.GuiUtils.replaceHTMLwithUTF8(html)[source]

Replace some important HTML-encoded characters with their UTF-8 equivalents

sas.qtgui.Utilities.GuiUtils.retrieveData1d(data)[source]

Retrieve 1D data from file and construct its text representation

sas.qtgui.Utilities.GuiUtils.retrieveData2d(data)[source]

Retrieve 2D data from file and construct its text representation

sas.qtgui.Utilities.GuiUtils.saveData(fp, data)[source]

save content of data to fp (a .write()-supporting file-like object)

sas.qtgui.Utilities.GuiUtils.saveData1D(data)[source]

Save 1D data points

sas.qtgui.Utilities.GuiUtils.saveData2D(data)[source]

Save data2d dialog

sas.qtgui.Utilities.GuiUtils.showHelp(url)[source]

Open a local url in the default browser

sas.qtgui.Utilities.GuiUtils.toDouble(value_string)[source]

toFloat conversion which cares deeply about user’s locale

sas.qtgui.Utilities.GuiUtils.updateModelItem(item, update_data, name='')[source]

Adds a simple named child to QStandardItem

sas.qtgui.Utilities.GuiUtils.updateModelItemStatus(model_item, filename='', name='', status=2)[source]

Update status of checkbox related to high- and low-Q extrapolation choice in Invariant Panel

sas.qtgui.Utilities.GuiUtils.updateModelItemWithPlot(item, update_data, name='', checkbox_state=None)[source]

Adds a checkboxed row named “name” to QStandardItem Adds ‘update_data’ to that row.

sas.qtgui.Utilities.GuiUtils.xyTransform(data, xLabel='', yLabel='')[source]

Transforms x and y in View and set the scale

sas.qtgui.Utilities.IPythonWidget module

sas.qtgui.Utilities.ImageViewer module

sas.qtgui.Utilities.LocalConfig module

Application settings

sas.qtgui.Utilities.LocalConfig.printEVT(message)[source]

Post a debug message to console/file

sas.qtgui.Utilities.ModelEditor module

class sas.qtgui.Utilities.ModelEditor.ModelEditor(parent=None, is_python=True)[source]

Bases: sphinx.ext.autodoc.importer._MockObject, sas.qtgui.Utilities.UI.ModelEditor.Ui_ModelEditor

Class describing the “advanced” model editor. This is a simple text browser allowing for editing python and supporting simple highlighting.

addSignals()[source]

Respond to signals in the widget

getModel()[source]

Return the current model, as displayed in the window

modelModified

Used by autodoc_mock_imports.

onEdit()[source]

Respond to changes in the text browser.

setupWidgets()[source]

Set up dialog widgets. Here - just the highlighter connected to the text edit.

sas.qtgui.Utilities.ObjectLibrary module

sas.qtgui.Utilities.ObjectLibrary.addObject(obj_name, obj)[source]
sas.qtgui.Utilities.ObjectLibrary.deleteObjectByName(obj_name)[source]
sas.qtgui.Utilities.ObjectLibrary.deleteObjectByRef(obj)[source]
sas.qtgui.Utilities.ObjectLibrary.getObject(obj_name)[source]
sas.qtgui.Utilities.ObjectLibrary.listObjects()[source]

sas.qtgui.Utilities.PlotView module

class sas.qtgui.Utilities.PlotView.EmbeddedPylab(canvas)[source]

Bases: object

Define a ‘with’ context manager that lets you use pylab commands to plot on an embedded canvas. This is useful for wrapping existing scripts in a GUI, and benefits from being more familiar than the underlying object oriented interface.

As a convenience, the pylab module is returned on entry.

The following example shows how to use the WxAgg backend in a wx panel:

from matplotlib.backends.backend_wxagg import FigureCanvasWxAgg as FigureCanvas
from matplotlib.backends.backend_wxagg import NavigationToolbar2WxAgg as Toolbar
from matplotlib.figure import Figure

class PlotPanel(wx.Panel):
    def __init__(self, *args, **kw):
        wx.Panel.__init__(self, *args, **kw)

        figure = Figure(figsize=(1,1), dpi=72)
        canvas = FigureCanvas(self, wx.ID_ANY, figure)
        self.pylab_interface = EmbeddedPylab(canvas)

        # Instantiate the matplotlib navigation toolbar and explicitly show it.
        mpl_toolbar = Toolbar(canvas)
        mpl_toolbar.Realize()

        # Create a vertical box sizer to manage the widgets in the main panel.
        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(canvas, 1, wx.EXPAND|wx.LEFT|wx.RIGHT, border=0)
        sizer.Add(mpl_toolbar, 0, wx.EXPAND|wx.ALL, border=0)

        # Associate the sizer with its container.
        self.SetSizer(sizer)
        sizer.Fit(self)

    def plot(self, *args, **kw):
        with self.pylab_interface as pylab:
            pylab.clf()
            pylab.plot(*args, **kw)

Similar patterns should work for the other backends. Check the source code in matplotlib.backend_bases.* for examples showing how to use matplotlib with other GUI toolkits.

class sas.qtgui.Utilities.PlotView.PlotView(*args, **kw)[source]

Bases: sphinx.ext.autodoc.importer._MockObject, sas.qtgui.Utilities.PlotView._PlotViewShared

sas.qtgui.Utilities.PluginDefinition module

class sas.qtgui.Utilities.PluginDefinition.PluginDefinition(parent=None)[source]

Bases: sphinx.ext.autodoc.importer._MockObject, sas.qtgui.Utilities.UI.PluginDefinitionUI.Ui_PluginDefinition

Class describing the “simple” plugin editor. This is a simple series of widgets allowing for specifying model form and parameters.

addSignals()[source]

Define slots for widget signals

addTooltip()[source]

Add the default tooltip to the text field

addWidgets()[source]

Initialize various widgets in the dialog

getModel()[source]

Return the current plugin model

initializeModel()[source]

Define the dictionary for internal data representation

modelModified

Used by autodoc_mock_imports.

onDescriptionChanged()[source]

Respond to changes in plugin description

onFunctionChanged()[source]

Respond to changes in function body

onOverwrite()[source]

Respond to change in file overwrite checkbox

onParamsChanged(row, column)[source]

Respond to changes in non-polydisperse parameter table

onParamsPDChanged(row, column)[source]

Respond to changes in non-polydisperse parameter table

onPluginNameChanged()[source]

Respond to changes in plugin name

sas.qtgui.Utilities.PluginManager module

class sas.qtgui.Utilities.PluginManager.PluginManager(parent=None)[source]

Bases: sphinx.ext.autodoc.importer._MockObject, sas.qtgui.Utilities.UI.PluginManagerUI.Ui_PluginManagerUI

Class describing the model plugin manager. This is a simple list widget allowing for viewing/adding/deleting custom models.

addSignals()[source]

Define slots for widget signals

onAdd()[source]

Show the add new model dialog

onDelete()[source]

Remove the file containing the selected plugin

onDuplicate()[source]

Creates a copy of the selected model(s)

onEdit()[source]

Show the edit existing model dialog

onHelp()[source]

Show the help page in the default browser

onSelectionChanged()[source]

Respond to row selection

readModels()[source]

Read in custom models from the default location

sas.qtgui.Utilities.PythonSyntax module

class sas.qtgui.Utilities.PythonSyntax.PythonHighlighter(document, is_python=True)[source]

Bases: sphinx.ext.autodoc.importer._MockObject

Syntax highlighter for the Python language.

braces = ['\\{', '\\}', '\\(', '\\)', '\\[', '\\]']
c_keywords = ['auto', 'break', 'case', 'char', 'const', 'continue', 'default', 'do', 'double', 'else', 'enum', 'extern', 'float', 'for', 'goto', 'if', 'int', 'long', 'register', 'return', 'short', 'signed', 'sizeof', 'static', 'struct', 'switch', 'typedef', 'union', 'unsigned', 'void', 'volatile', 'while']
highlightBlock(text)[source]

Apply syntax highlighting to the given block of text.

match_multiline(text, delimiter, in_state, style)[source]

Do highlighting of multi-line strings. delimiter should be a QRegExp for triple-single-quotes or triple-double-quotes, and in_state should be a unique integer to represent the corresponding state changes when inside those strings. Returns True if we’re still inside a multi-line string when this function is finished.

operators = ['=', '==', '!=', '<', '<=', '>', '>=', '\\+', '-', '\\*', '/', '//', '\\%', '\\*\\*', '\\+=', '-=', '\\*=', '/=', '\\%=', '\\^', '\\|', '\\&', '\\~', '>>', '<<']
python_keywords = ['and', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'yield', 'None', 'True', 'False']
sas.qtgui.Utilities.PythonSyntax.format(color, style='')[source]

Return a QTextCharFormat with the given attributes.

sas.qtgui.Utilities.ReportDialog module

class sas.qtgui.Utilities.ReportDialog.ReportDialog(parent=None, report_list=None)[source]

Bases: sphinx.ext.autodoc.importer._MockObject, sas.qtgui.Utilities.UI.ReportDialogUI.Ui_ReportDialogUI

Class for stateless grid-like printout of model parameters for mutiple models

static HTML2PDF(data, filename)[source]

Create a PDF file from html source string. Returns True is the file creation was successful. : data: html string : filename: name of file to be saved

getPictures(basename)[source]

Returns list of saved MPL figures

static onHTMLSave(html, filename)[source]

HTML file write

onPrint()[source]

Display the print dialog and send the report to printer

onSave()[source]

Display the Save As… prompt and save the report if instructed so

static onTXTSave(data, filename)[source]

Simple txt file serialization

setupDialog(output=None)[source]

Display the HTML content in the browser.

sas.qtgui.Utilities.ResultPanel module

FitPanel class contains fields allowing to fit models and data

class sas.qtgui.Utilities.ResultPanel.ResultPanel(parent, manager=None, *args, **kwargs)[source]

Bases: sphinx.ext.autodoc.importer._MockObject

FitPanel class contains fields allowing to fit models and data

Note:For Fit to be performed the user should check at least one parameter on fit Panel window.
closeEvent(event)[source]

Overwrite QDialog close method to allow for custom widget close

onPlotResults(results, optimizer='Unknown')[source]
updateBumps()[source]

Monkeypatching bumps plot viewer to allow Qt

windowClosedSignal

Used by autodoc_mock_imports.

window_name = 'Result panel'

sas.qtgui.Utilities.SasviewLogger module

sas.qtgui.Utilities.TabbedModelEditor module

class sas.qtgui.Utilities.TabbedModelEditor.TabbedModelEditor(parent=None, edit_only=False)[source]

Bases: sphinx.ext.autodoc.importer._MockObject, sas.qtgui.Utilities.UI.TabbedModelEditor.Ui_TabbedModelEditor

Model editor “container” class describing interaction between plugin definition widget and model editor widget. Once the model is defined, it can be saved as a plugin.

addSignals()[source]

Define slots for common widget signals

addWidgets()[source]

Populate tabs with widgets

canWriteModel(model=None, full_path='')[source]

Determine if the current plugin can be written to file

closeEvent(event)[source]

Overwrite the close even to assure intent

editorModelModified()[source]

User modified the model in the Model Editor. Disable the plugin editor and show that the model is changed.

generateModel(model, fname)[source]

generate model from the current plugin state

getModel()[source]

Retrieves plugin model from the currently open tab

classmethod getParamHelper(param_str)[source]

yield a sequence of name, value pairs for the parameters in param_str

Parameters can be defined by one per line by name=value, or multiple on the same line by separating the pairs by semicolon or comma. The value is optional and defaults to “1.0”.

isModelCorrect(full_path)[source]

Run the sasmodels method for model check and return True if the model is good. False otherwise.

loadFile(filename)[source]

Performs the load operation and updates the view

onApply()[source]

Write the plugin and update the model editor if plugin editor open Write/overwrite the plugin if model editor open

onCancel()[source]

Accept if document not modified, confirm intent otherwise.

onHelp()[source]

Bring up the Model Editor Documentation whenever the HELP button is clicked. Calls Documentation Window with the path of the location within the documentation tree (after /doc/ ….”.

onLoad()[source]

Loads a model plugin file

onModifiedExit()[source]
pluginTitleSet()[source]

User modified the model name. Display the model name in the window title and allow for model save.

saveClose()[source]

Check if file needs saving before closing or model reloading

setPluginActive(is_active=True)[source]

Enablement control for all the controls on the simple plugin editor

setTabEdited(is_edited)[source]

Change the widget name to indicate unsaved state Unsaved state: add “*” to filename display saved state: remove “*” from filename display

classmethod strFromParamDict(param_dict)[source]

Creates string from parameter dictionary {0: (‘variable’,’value’),

1: (‘variable’,’value’), …}
updateFromEditor()[source]

Save the current state of the Model Editor

updateFromPlugin()[source]

Write the plugin and update the model editor

classmethod writeFile(fname, model_str='')[source]

Write model content to file “fname”

Module contents