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