<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def pet_find(self, **kwargs):
 """ pet.find wrapper. Returns a generator of pet record dicts matching your search criteria. :rtype: generator :returns: A generator of pet record dicts. :raises: :py:exc:`petfinder.exceptions.LimitExceeded` once you have reached the maximum number of records your credentials allow you to receive. """


        def pet_find_parser(root, has_records):
            """
            The parser that is used with the ``_do_autopaginating_api_call``
            method for auto-pagination.

            :param lxml.etree._Element root: The root Element in the response.
            :param dict has_records: A dict that we track the loop state in.
                dicts are passed by references, which is how this works.
            """
            for pet in root.findall("pets/pet"):
                # This is changed in the original record, since it's passed
                # by reference.
                has_records["has_records"] = True
                yield self._parse_pet_record(pet)

        return self._do_autopaginating_api_call(
            "pet.find", kwargs, pet_find_parser
        )