<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def find_macro_by_name(self, name, package):
 """Find a macro in the graph by its name and package name, or None for any package. """

        return self._find_by_name(name, package, 'macros', [NodeType.Macro])