Modifier#

The available modifiers:

mmodel.modifier.loop_input(parameter)

Modify function to iterate one given parameter.

mmodel.modifier.zip_loop_inputs(parameters)

Modify function to iterate the parameters pairwise.

mmodel.modifier.profile_time([number, ...])

Profile the execution time of a function.

mmodel.modifier.print_inputs(format_str, **pargs)

Print the node input to the console.

mmodel.modifier.print_output(format_str, **pargs)

Print the node output to the console.

modifier module#

mmodel.modifier.add_modifier_metadata(name, *args, **kwargs)[source]#

Decorator to add metadata to a function.

mmodel.modifier.format_parameters(*args, **kwargs) list[source]#

Format the parameters for stdout.

mmodel.modifier.format_time(dt, precision)[source]#

Format time in seconds to a human-readable string.

mmodel.modifier.loop_input(parameter: str)[source]#

Modify function to iterate one given parameter.

Parameters:

parameter (list) – target parameter to loop The target parameter name is changed to f”{param}_loop”

mmodel.modifier.parse_fields(format_str)[source]#

Parse the field from the format string.

Parameters:

format_str (str) – format string

Returns:

list of fields

The function parses out the field names in the format string. Some field names have slicers or attribute access, such as B0.value, B0[0], B0[0:2]. The function only returns B0 for all these fields. Since there can be duplicated fields after the name split, the function returns unique elements.

mmodel.modifier.print_inputs(format_str: str, **pargs)[source]#

Print the node input to the console.

Parameters:
  • stdout_format (str) – format string for input and output The format should be keyword only.

  • pargs – keyword arguments for the print function

The names of the parameters are parsed from the format string.

mmodel.modifier.print_output(format_str: str, **pargs)[source]#

Print the node output to the console.

Parameters:
  • stdout_format (str) – format string for input and output The format should be keyword only. The behavior is for keeping the consistency with other print modifiers.

  • end (str) – end of printout

The names of the parameters are parsed from the format string. The use of the stdout_format is different from the input method, as the modifiers do not know the return name of the node. Only one output field is allowed and the field name is used as the return name.

mmodel.modifier.profile_time(number=1, repeat=1, verbose=False, precision=2)[source]#

Profile the execution time of a function.

The modifier behaves similarly to the timeit module. However, the modifier does not suppress garbage collection during the function execution; therefore, the result might be slightly different.

mmodel.modifier.zip_loop_inputs(parameters: list)[source]#

Modify function to iterate the parameters pairwise.

Parameters:

parameters (list) – list of the parameters to loop only one parameter is allowed. If a string of the parameters is provided, the parameters should be delimited by “, “.