Older modelx releases#

v0.0.21 (23 March 2019)#

Updates include refactoring to separate static and dynamic space classes, use tuple for CellNode implementation, gaining approximately 20% performance improvement.

Backwards Incompatible Changes#

  • Space class is now split into two separate concrete classes, UserSpace, DynamicSpace and one base class BaseSpace.

  • module_ parameter of the methods below are renamed to module.

  • Methods and properties below on Space classes are renamed to be private, as these are expected not to be used directly by users for normal usage.

    • _is_base()

    • _is_sub()

    • _is_static()

    • _is_derived()

    • _is_defined()

    • _is_root()

    • _is_dynamic()

    • _self_cells

    • _derived_cells

    • _self_spaces

    • _derived_spaces


  • IPython error traceback message is not suppressed by default. setup_ipython() is added to suppress the default message.

  • set_recursion() is added to change the maximum depth of formula recursion.

Bug Fixes#

v0.0.20 (2 February 2019)#


  • CellNode repr to show “parameter=arguments”.

  • Add formula property.

Bug Fixes#

  • Fix duplicate multiple bases of a dynamic space.

v0.0.19 (13 January 2019)#

Enhancements / bug fixes for defining and using dynamics spaces whose base includes dynamics spaces.


  • Add name parameter to open_model().

  • Pass dynamic arguments down to its children.

  • Iterating over cells with single parameter returns values instead of tuples of single elements.

  • View’s _baseattrs to not include items with _ prefixed names.

Bug Fixes#

  • Fix bases of derived dynamic spaces. If dynamic spaces are to be the base spaces of a dynamic sub space, then the static base spaces of the dynamic spaces become the base spaces in replacement for the dynamic spaces.

  • Fix AttributeError: ‘BoundFunction’ object has no attribute ‘altfunc’ on unpickled models.

  • Dedent function definitions for those defined inside blocks of other function definition.

  • Fix error in conversion to DataFrame when merging indexes with different types.

v0.0.18 (31 December 2018)#

This release is mainly for adding interface functions/methods to spyder-modelx spyder-modelx v0.0.7 (31 December 2018)


  • Add preds and succs properties to CellNode.

  • Add node() to Cells

  • Rename literaldict property to _baseattrs for Interface, BaseView and their subclasses.

  • Rename set_keys method of SelectedView to _set_keys .

Bug Fixes#

  • Raise not KeyError but AttributeError upon hasattr/getattr on Space.

v0.0.17 (2 December 2018)#

This release is mainly for adding interface to functions to spyder-modelx spyder-modelx v0.0.6 (2 December 2018)


Bug Fixes#

  • Error when modelx tries to get IPython shell before it becomes available.

v0.0.16 (21 October 2018)#

spyder-modelx plugin introduces a new widget to view cells values in a table. This release reflects some updates in modelx to make the new widget work.


  • cur_model() and cur_space() now accept model and space objects as their arguments respectively, in addition to the names of model or space objects.

  • Add model property to all Interface subclasses.

  • Traceback messages upon erroneous formula calls are now limited to 6 trace stack entries.

  • Error messages upon erroneous formula calls are now simplified not to show file traceback.

Backwards Incompatible Changes#

  • The parameters to cur_model() and cur_space() are renamed from name to model and space respectively, due to the enhancement for these functions to accept objects, in addition to the names of the objects.

v0.0.15 (20 September 2018)#


  • Importing a module overrides formulas if their cells already exist.

v0.0.14 (3 September 2018)#

This version is mainly for updating modelx Qt widgets, in order for the widgets to work with the initial version of spyder-modelx, Spyder plugin for modelx.


  • Add property _baseattrs and BaseView._baseattrs. This property is used by spyder-modelx.

Bug Fixes#

  • Fix crashes when cur_model() is called with name argument to change the current model.

v0.0.13 (5 August 2018)#

Space implementation has been largely rewritten in this release to make the inheritance logic more robust.


Support for Python 3.4, 3.5 is dropped in this release. Now only Python 3.6 and newer are supported. This is mainly due to the fact that modelx utilizes the order preservation nature of dict introduced in Python 3.6. dict performance improvement in Python 3.6 is also the reason to drop support for older versions.

Support for NetworkX ver 1.x is also dropped in this release. NetworkX version 2.x is now required.


Backwards Incompatible Changes#

  • Support for Python older than 3.6 is dropped. Now Python 3.6 or above is required.

  • Support for NetworkX version 1 is dropped. Now NetworkX version 2 is required.

  • Dynamic spaces now inherit their parent spaces by default.

  • new_cells() raises an error when the cells already exists.

  • formula now returns Formula object instead of string.

Bug Fixes#

  • repr() on SpaceView and CellsView now list only selected items.

v0.0.12 (16 June 2018)#


  • cells returns an immutable mapping of cells named CellsView supporting to_frame() method, which returns a DataFrame object containing cells values. If an iterator of arguments are given as arg, values of the cells for the arguments are calculated and only the given arguments are included in the DataFrame index(es). For more, see the reference page

  • Cells are now of a Mapping type, which implements keys(), values(), items() methods to get their arguments and values.

  • Subscription([]) operator on cells now accepts multiple args of cell names and a sequence of cell names, such as ['foo', 'bar'] and [['foo', 'bar']], which returns an immutable mapping (view) that includes only specified cells.

Backwards Incompatible Changes#

  • frame returns does not include empty or all-None cells.

Bug Fixes#

  • Fix issues specific to networkx v1.x.

  • Fix import_module() to handle bases properly.

v0.0.11 (27 May 2018)#

Bug Fixes#

  • Fix Space.refs

  • Fix conversion of scalar cells to Pandas objects

v0.0.10 (6 May 2018)#


  • Add is_* methods to Space.

  • Rename a model by adding _BAKn to its original name when another model with the same name is created.

  • Add rename().

  • name in space expression is allowed where name is a string.

  • _space local reference is available to refer to the parent space from its child cells.

Backwards Incompatible Changes#

  • get_self function is removed.

Bug Fixes#

  • Call stack max depth is set to 1000 to run all lifelib samples successfully.

  • Fix an error around graph unpickling.

  • Keep the same derived objects after they are updated.

v0.0.9 (1 April 2018)#


  • Add show_tree to show model tree in inline mode.

  • Add get_tree to get model tree in automatic mode.

Bug Fixes#

  • Make get_modeltree available directly under modelx.

v0.0.8 (25 March 2018)#


  • Make get_modeltree available directly under modelx.

  • Add import_module() and import_funcs() properties.

  • Add all_spaces to contain all child spaces, including dynamic spaces.

  • Add self_spaces and derived_spaces properties.

  • Add configure_python() and restore_python().

  • Add reload() to reload the source module.

  • Model and UserSpace to list their members on dir().

  • Raise an error upon zero division in formulas.

  • Add parent property.

Backwards Incompatible Changes#

Bug Fixes#

  • Remove overridden cells from derived_cells

  • Update self_cells when new cells are added.

  • Fix stack overflow with Anaconda 64-bit Python on Windows.


  • Stanley Ng

v0.0.7 (27 February 2018)#

Backwards Incompatible Changes#

  • Renamed UserSpace constructor parameter paramfunc to formula.

  • Renamed new_cells() parameter func to formula.

  • Renamed Interface can_have_none to allow_none.

Bug Fixes#

  • Fix open_model() to make cur_model() properly return unpickled model.