<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def free_sources_by_name(self, names, free=True, pars=None, **kwargs):
 """Free all sources with names matching ``names``. Parameters names : list List of source names. free : bool Choose whether to free (free=True) or fix (free=False) source parameters. pars : list Set a list of parameters to be freed/fixed for each source. If none then all source parameters will be freed/fixed. If pars='norm' then only normalization parameters will be freed. Returns ------- srcs : list A list of `~fermipy.roi_model.Model` objects. """


        if names is None:
            return

        names = [names] if not isinstance(names, list) else names
        names = [self.roi.get_source_by_name(t).name for t in names]
        srcs = [s for s in self.roi.sources if s.name in names]
        for s in srcs:
            self.free_source(s.name, free=free, pars=pars, **kwargs)

        return srcs