<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_source_by_name(self, name):
 """Return a single source in the ROI with the given name. The input name string can match any of the strings in the names property of the source object. Case and whitespace are ignored when matching name strings. If no sources are found or multiple sources then an exception is thrown. Parameters name : str Name string. Returns ------- srcs : `~fermipy.roi_model.Model` A source object. """

        srcs = self.get_sources_by_name(name)

        if len(srcs) == 1:
            return srcs[0]
        elif len(srcs) == 0:
            raise Exception('No source matching name: ' + name)
        elif len(srcs) > 1:
            raise Exception('Multiple sources matching name: ' + name)