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()})"