def execute(self, context): # print(context.space_data.cursor_location) (in nodeview space) # self.report({'INFO'}, "Selected: %s" % self.my_enum) if self.my_enum.isnumeric(): macro_bl_idname = self.bl_idname_from_bl_label(self) DefaultMacros.ensure_nodetree(self, context) bpy.ops.node.sv_macro_interpretter(macro_bl_idname=macro_bl_idname) else: macro_reference = macros.get(self.my_enum) if macro_reference: handler, term = macro_reference.get('ident') getattr(DefaultMacros, handler)(self, context, term) elif hasattr(local_macros['sv_macro_module'], self.my_enum): func = getattr(local_macros['sv_macro_module'], self.my_enum) func(self, context) return {'FINISHED'}