def find_products(self, product_type):
        if self.filter_prods and product_type in self.LIST_PRODUCTS and product_type not in self.desired_prods:
            return []
        if product_type in self.LIST_PRODUCTS:
            found_products = self.products.get(product_type, [])
        else:
            found_products = [x[0] for x in self.products.items()
                              if x[1] == product_type and (not self.filter_prods or x[0] in self.desired_prods)]
        found_products = [self._ensure_product_string(x) for x in found_products]
        declaration = self.PATH_PRODUCTS.get(product_type)
        if declaration is not None:
            found_products = [self._process_product_path(x, declaration) for x in found_products]
        return found_products