Skip to content

Customize Macro Recording

Magic class depends its macro recording functionalities on macro-kit. To customize macro recording, you can use functions and methods in macrokit.

Define How to Record Objects

macrokit does not record all the values as strings because the string form of a value could be very long (such as an image data). To define a rule of how to record a certain type of objects, you can use register_type function (actually this is how magic-class registers Path and Enum to make macro compatible with type mapping rules of magicgui).

from macrokit import register_type

register_type takes two arguments: a type to register and a function. You have to define the conversion rule in the second argument. The example below shows how to record numpy.ndarray in the standard np.array([...]) style.

import numpy as numpy

@register_type(np.ndarray)
def numpy_to_str(arr):
    return f"np.array({arr.tolist()})"