modelx.defcells#
- defcells(space=None, name=None, *funcs)[source]#
Decorator/function to create/update cells from Python functions.
Convenience decorator/function to create a new cells or change the formula of an existing cells directly from a function definition or a function object, which substitutes for calling
new_cells()
or,set_formula()
of the parent space or setting itsformula
property.defcells()
understands arguments passed to it in 3 different ways depending the number of the arguments and their types.1. As a decorator without arguments
To create a cells from a function definition in the current space with the same name as the function’s:
@defcells def foo(x): return x
Changed in version 0.1.0: If the current space does not exist in the current model, a new space is created. If the current model does not exit, a new model is also created.
Changed in version 0.1.0: If a cells with the same name already exists in the current space, the formula of the cells is updated based on the decorated function.
2. As a decorator with arguments
To create a cells from a function definition in a given space and/or with a given name:
@defcells(space=space, name=name) def foo(x): return x
3. As a function
To create a multiple cells from a multiple function definitions:
def foo(x): return x def bar(y): return foo(y) foo, bar = defcells(foo, bar)
- Parameters
space (optional) – For the 2nd usage, a space to create the cells in. Defaults to the current space of the current model.
name (optional) – For the 2nd usage, a name of the created cells. Defaults to the function name.
*funcs – For the 3rd usage, function objects. (
space
andname
also take function objects for the 3rd usage.)
- Returns
For the 1st and 2nd usage, the newly created single cells is returned. For the 3rd usage, a list of newly created cells are returned.