Helpers

Base class for helper module methods

class ivy.stateful.helpers.ModuleHelpers[source]

Bases: ABC

check_submod_rets()[source]

Returns True if there is an expected submodule return value set by the user during the call.

Returns

ret – True if the top module has expected_submod_rets.

get_mod_key(*, top_mod=None)[source]

Get the key of current module to be used when checking or tracking the return values of a submodule.

Parameters

top_mod – Explicit indicate the top module. None for the top module of current module. Default is None.

Returns

A string of current module key.

mod_depth()[source]

Return the depth of the current module. Return 0 for root module.

Returns

ret – The depth of the module in the network.

mod_height()[source]

Return the height of the network, with the current level being 0.

Returns

ret – The height of the network. 0 if the are no submodules.

mod_with_top_mod_key_chain(*, depth=None, flatten_key_chain=False)[source]

Return a list containing the modules of the network starting from the top module, and ending with the current module.

Parameters
  • depth – If specified, will return a list of modules of length starting at the current module and ending at the module at the specified depth. 0 for the current module. 1 for the iimediate parent module. None for the top module. Default is None.

  • flatten_key_chain – If set True, will return return a flat container, with all nested key-chains flattened. Default is False.

show_mod_in_top_mod(*, upper_depth=None, lower_depth=None, flatten_key_chains=False)[source]

Show lower submodules in the top module. upper_depth and lower_depth are for controlling the coverage of upper and lower modules. Will give prompt if no top module found.

Parameters
  • upper_depth – How many modules it tracks up as upper module. None for current module. Default is None. Will be truncated to mod_depth.

  • lower_depth – How many modules it tracks down. None for current module. Default is None. Will be truncated to mod_height.

  • flatten_key_chains – If set True, will return a flat (depth-1) container, which all nested key-chains flattened. Default is False.

show_structure()[source]

Prints the structure of the layer network.

Returns

this_repr – String of the structure of the module.

show_v_in_top_v(*, depth=None)[source]

Show sub containers from the perspective of the top layer. Will give prompt if either of v or top_v is not initialized.

Parameters

depth – The number of modules we want to step in. None for the value of current module. Default is None.

sub_mods(*, show_v=True, depth=None, flatten_key_chains=False)[source]

Return a container comoposed of all submodules.

Parameters
  • show_v – If set True, will return values of all submodule variables. Default is True.

  • depth – How many layers we step in before beginning enumerating submodules. None for current layer. Default is None.

  • flatten_key_chains – If set True, will return a flat (depth-1) container, in which all nested key-chains flattened. Default is False.

Returns

ret – A container composed of all submodules.

track_submod_call_order()[source]

Tracks the order in which the submodules are called.

Returns

ret – True if the current module allows call order tracking.

track_submod_rets()[source]

Returns True if the current module should have its returns tracked as set by the user during the call.

Returns

ret – True if the returned values of the current module should be tracked.

v_with_top_v_key_chains(*, depth=None, flatten_key_chains=False)[source]

Show the network’s variables from the perspective of value of top layer. Will give prompt if either of v and top_v is not initialized.

Parameters
  • depth – The number of modules we want to step in. None for the value of current module. Default is None.

  • flatten_key_chains – If set True, will return a flat container, with all nested key-chains flattened. Default is False.