From cdaa7159d20cd4dcdaeba33657d96e6e9e475ed8 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Thu, 20 Sep 2018 09:13:37 +0200 Subject: [PATCH] Fix Windows loop --- homeassistant/__main__.py | 18 +++++++++++------- homeassistant/core.py | 5 +---- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/homeassistant/__main__.py b/homeassistant/__main__.py index af89564f1..3ca708a95 100644 --- a/homeassistant/__main__.py +++ b/homeassistant/__main__.py @@ -19,15 +19,19 @@ from homeassistant.const import ( ) -def attempt_use_uvloop() -> None: +def set_loop() -> None: """Attempt to use uvloop.""" import asyncio - try: - import uvloop - except ImportError: - pass + + if sys.platform == 'win32': + asyncio.set_event_loop(asyncio.ProactorEventLoop()) else: - asyncio.set_event_loop_policy(uvloop.EventLoopPolicy()) + try: + import uvloop + except ImportError: + pass + else: + asyncio.set_event_loop_policy(uvloop.EventLoopPolicy()) def validate_python() -> None: @@ -345,7 +349,7 @@ def main() -> int: monkey_patch.disable_c_asyncio() monkey_patch.patch_weakref_tasks() - attempt_use_uvloop() + set_loop() args = get_arguments() diff --git a/homeassistant/core.py b/homeassistant/core.py index 653f95cce..d1f811502 100644 --- a/homeassistant/core.py +++ b/homeassistant/core.py @@ -129,10 +129,7 @@ class HomeAssistant: self, loop: Optional[asyncio.events.AbstractEventLoop] = None) -> None: """Initialize new Home Assistant object.""" - if sys.platform == 'win32': - self.loop = loop or asyncio.ProactorEventLoop() - else: - self.loop = loop or asyncio.get_event_loop() + self.loop = loop or asyncio.get_event_loop() executor_opts = {'max_workers': None} # type: Dict[str, Any] if sys.version_info[:2] >= (3, 6):