import asyncio def force_asyncioreactor_install(): import sys from twisted.internet import asyncioreactor if 'twisted.internet.reactor' not in sys.modules: asyncioreactor.install() else: from twisted.internet import reactor if not isinstance(reactor, asyncioreactor.AsyncioSelectorReactor) and getattr(sys, 'frozen', False): # pyinstaller hooks install the default reactor before # any of our code runs, see kivy for similar problem: # https://github.com/kivy/kivy/issues/4182 del sys.modules['twisted.internet.reactor'] asyncioreactor.install() def d2f(deferred): return deferred.asFuture(asyncio.get_event_loop()) def f2d(future): from twisted.internet import defer return defer.Deferred.fromFuture(asyncio.ensure_future(future))