<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def ipopo_factories(self):
 """ List of iPOPO factories """

        try:
            with use_ipopo(self.__context) as ipopo:
                return {
                    name: ipopo.get_factory_details(name)
                    for name in ipopo.get_factories()
                }
        except BundleException:
            # iPOPO is not available:
            return None