ATM when you initialize a magic class it has an optional argument of arguments, which is a list of MagicArgument.
If it is not supplied it is ignored and arguments are derived from a docstring.
This could be detangled, and MagicArgument be better defined and used throughout. Also it should not be done in the __init__ function but arguments should be configured after initialization of the object.