<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def merge_wells(self, right, keys=None):
 """ Returns a new Project object containing wells from self where curves from the wells on the right have been added. Matching between wells in self and right is based on uwi match and ony wells in self are considered Args: uwi (string):
 the UWI string for the well. Returns: project """

        wells = []
        for w in self:
            rw = right.get_well(w.uwi)
            if rw is not None:
                if keys is None:
                    keys = list(rw.data.keys())
                for k in keys:
                    try:
                        w.data[k] = rw.data[k]
                    except:
                        pass
            wells.append(w)
        return Project(wells)