Spyder插件#

Spyder 是一款流行的开源 Python IDE, 它默认被包含在主要的 Python 发行版中,例如 AnacondaWinPythonSpyder 允许安装插件来为其添加额外功能。

modelx的Spyder插件增强了Spyder中对modelx的用户界面体验。 该插件添加了自定义的IPython控制台 和GUI部件,方便在Spyder中使用modelx。

该插件包含4个组件:MxConsoleMxExplorerMxDataViewerMxAnalyzer

MxConsoles 以标签页形式出现在 Spyder 默认的 IPython 控制台组件中,并托管自定义的 IPython 终端。这些自定义终端的功能与默认 IPython 终端完全相同,唯一的区别在于自定义终端会连接到插件组件。为了实现其他插件组件与用户 Python 会话的交互,您应该使用这些自定义终端而非 Spyder 的默认终端。请注意,插件组件不会与运行在默认 IPython 控制台中的 Python 进行交互。

MxExplorer是主要的插件组件,它包含一个对象树面板,用于显示所选Model的对象树结构。通过对象树的上下文菜单,您可以执行各种操作,例如创建和删除modelx对象、在所选Model中定义与对象绑定的名称等。在MxExplorer的右侧,有一个属性面板和公式面板,用于显示详细信息。

MxDataView 允许您以表格形式查看modelx对象中的向量和表格数据值,例如listsettupledictnumpy array,以及pandasDataFrameSeriesIndex。它还可以显示标量对象的值和类型,例如intstr

MxAnalyzer 让您能够直观地追踪计算依赖关系。 对于特定的单元格和参数组合(称为节点), MxAnalyzer会显示前置节点或后续节点的树状结构。

插件小部件可以像Spyder的默认小部件一样"停靠",这意味着您可以将这些小部件从Spyder主窗口中分离出来,使其拥有独立的窗口,也可以将它们重新"停靠"回主窗口的不同位置,以便按照您的喜好重新排列主窗口中的小部件位置。

MxExplorer 和 MxConsole#

如果插件安装成功,那么除了MxConsole之外,你应该能在Spyder窗口中看到插件组件的显示或隐藏。

如果找不到任何插件小部件,请前往视图->面板菜单, 勾选MxExplorerMxDataViewerMxAnalyzer。 如果找不到这些菜单项,请检查插件是否支持您使用的Spyder版本,若不支持请更新Spyder。 如果仍然找不到插件小部件, 请在modelx github站点提交问题。

_images/SpyderMainMenuForModelx.png

MxExplorer 启动后的界面如下图所示。

_images/NoMxConsole.png

在右下角面板的IPython控制台标签上右键点击,然后选择打开MxConsole菜单。

_images/IPythonConsoleMenu.png

一旦MxConsole准备就绪,插件小部件就会填充干净的窗格。

_images/BlankMxExplorer.png

MxConsole 的工作方式与常规 IPython 控制台完全相同, 唯一的区别是该控制台连接了插件小部件, 可以通过它们与控制台 Python 会话中的 modelx 组件进行交互。 要测试此行为, 可以在 MxConsole 中按如下方式创建新模型和空间:

>>> import modelx as mx

>>> model, space = mx.new_model(), mx.new_space()

>>> cells = space.new_cells()

modelx 资源管理器显示所创建空间的组件树。

_images/MxExplorerTreeSample.png

双击树中的Cells2进行选择。 您会看到MxExplorer右侧窗格中显示了Cells2的属性, 其公式出现在窗格的下半部分。

_images/MxExplorerTreeSample2.png

MxExplorer 还可以列出所选空间中所有单元格的公式。 在树中选择一个空间,右键点击 弹出上下文菜单,然后点击显示公式。 公式列表将出现在 MxExplorer 模型树的右侧。

_images/CodeListExample.png

MxDataViewer#

MxDataViewer 允许您以表格形式查看modelx对象中的向量和表格数据值,例如listsettupledictnumpy array,以及pandasDataFrameSeriesIndex。它还可以显示标量对象的值和类型,例如intstr

_images/MxDataViewerDataFrameExample.png

MxDataViewer 展示一个 pandas 数据框#

_images/MxDataViewerListInDict1.png

MxDataViewer 显示一个字典及其嵌套列表#

如果未显示MxDataViewer小部件,请按照操作MxExplorer的方式转到视图->面板菜单,并勾选MxDataViewer

_images/SpyderMainMenuForModelx.png

要指定检查对象,请在MxExplorer的对象树中点击该对象,右键打开上下文菜单,然后选择在DataView中选中在新DataView中选中。您也可以点击树上方工具栏中的按钮。如果对象有参数,请在MxDataView的输入框中输入参数,然后点击更新按钮。

_images/MenuInMxExplorerForMxDataView1.png

MxExplorer工具栏和上下文菜单中用于在MxDataView中选择对象的项目#

Mx分析器#

MxAnalyzer 让您能够直观地追踪计算依赖关系。

如果未显示MxDataView小部件,请像操作MxExplorer一样转到视图->面板菜单,并勾选MxAnalyzer

_images/MxAnalyzerMenu.png

MxAnalyzer有两个标签页,一个用于追踪前驱节点(即所选节点依赖的节点),另一个用于追踪后继节点(即依赖所选节点的节点)。

选择Precedents选项卡, 在标有Expression的文本框中输入返回Cells对象的表达式, 并在旁边的Args框中输入Cell的参数。 该Python表达式会在活动MxConsole中Python会话的全局命名空间内求值。 然后MxAnalyzer会显示直接或间接用于计算指定节点值的Cell节点树状图。

或者,您也可以从MxExplorer中设置要分析的对象。 通过在MxExplorer上下文菜单中点击分析选中项,选中的对象就会被设置到MxAnalyzer中(目前仅支持选择Cells单元)。

_images/MxExplorerAnalyzeMenu.png

分析选中项 MxExplorer 上下文菜单项#

MxAnalyzer中的每个标签页内有两个分隔窗格。 上方窗格用于显示依赖树, 下方窗格则展示树中所选对象的公式。

_images/EnhancedMxAnalyzer.png

MxAnalyzer中的依赖树和公式面板#

依赖树中的Value列会显示每个对象的类型(如果它不是标量值)。通过双击Value列或右键点击并从上下文菜单中选择Show Value,所选元素的值会显示在弹出窗口中。该弹出窗口以表格形式展示listsettupledictnumpy array的值,以及pandasDataFrameSeriesIndex

_images/MxAnalyzerShowValueMenu.png

显示值 MxAnalyzer 上下文菜单项#

_images/MxAnalyzerPopUpSeries.png

弹出窗口显示Series的值#