<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_unique(self, product_type, short_name, include_hidden=False):
 """Find the unique provider of a given product by its short name. This function will ensure that the product is only provided by exactly one tile (either this tile or one of its dependencies and raise a BuildError if not. Args: product_type (str):
 The type of product that we are looking for, like firmware_image, library etc. short_name (str):
 The short name of the product that we wish to find, usually its os.path.basename() include_hidden (bool):
 Return products that are hidden and not selected as visible in the depends section of this tile's module settings. This defaults to False. Returns: ProductInfo: The information of the one unique provider of this product. """


        prods = self.find_all(product_type, short_name, include_hidden)

        if len(prods) == 0:
            raise BuildError("Could not find product by name in find_unique", name=short_name, type=product_type)

        if len(prods) > 1:
            raise BuildError("Multiple providers of the same product in find_unique", name=short_name, type=product_type, products=prods)

        if self._tracking:
            self._resolved_products.append(prods[0])

        return prods[0]