<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def removeProdable(self, prodable: Prodable=None, name: str=None) -> Optional[Prodable]: """ Remove the specified Prodable object from this Looper's list of Prodables :param prodable: the Prodable to remove """

        if prodable:
            self.prodables.remove(prodable)
            return prodable
        elif name:
            for p in self.prodables:
                if hasattr(p, "name") and getattr(p, "name") == name:
                    prodable = p
                    break
            if prodable:
                self.prodables.remove(prodable)
                return prodable
            else:
                logger.warning("Trying to remove a prodable {} which is not present"
                               .format(prodable))
        else:
            logger.error("Provide a prodable object or a prodable name")