From 829c9c2045a42395187877086ca9c5cfc6f6fc95 Mon Sep 17 00:00:00 2001 From: Fabian Dill Date: Sat, 6 Jun 2020 22:54:09 +0200 Subject: [PATCH] restore python 3.7 client compat --- MultiClient.py | 16 ++++++++++------ WebUI.py | 5 ++++- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/MultiClient.py b/MultiClient.py index 174effef..62b8167b 100644 --- a/MultiClient.py +++ b/MultiClient.py @@ -9,6 +9,8 @@ import functools import webbrowser import multiprocessing import socket +import sys +import typing from random import randrange @@ -23,7 +25,7 @@ ModuleUpdate.update() import colorama import websockets import prompt_toolkit -import typing + from prompt_toolkit.patch_stdout import patch_stdout from NetUtils import Endpoint import WebUI @@ -35,8 +37,10 @@ import Utils def create_named_task(coro, *args, name=None): if not name: name = coro.__name__ - print(name) - return asyncio.create_task(coro, *args, name=name) + if sys.version_info.major > 2 and sys.version_info.minor > 7: + return asyncio.create_task(coro, *args, name=name) + else: + return asyncio.create_task(coro, *args) class Context(): @@ -1289,16 +1293,16 @@ async def main(): asyncio.create_task(run_game(romfile)) ctx = Context(args.snes, args.connect, args.password, args.founditems, port) - input_task = asyncio.create_task(console_loop(ctx), name="Input") + input_task = create_named_task(console_loop(ctx), name="Input") if not args.disable_web_ui: ui_socket = websockets.serve(functools.partial(websocket_server, ctx=ctx), 'localhost', port, ping_timeout=None, ping_interval=None) await ui_socket if ctx.server_task is None: - ctx.server_task = asyncio.create_task(server_loop(ctx), name="ServerLoop") + ctx.server_task = create_named_task(server_loop(ctx), name="ServerLoop") - watcher_task = asyncio.create_task(game_watcher(ctx), name="GameWatcher") + watcher_task = create_named_task(game_watcher(ctx), name="GameWatcher") await ctx.exit_event.wait() ctx.server_address = None diff --git a/WebUI.py b/WebUI.py index b298a5eb..35301814 100644 --- a/WebUI.py +++ b/WebUI.py @@ -5,6 +5,7 @@ import socket import socketserver import threading import webbrowser +import asyncio from functools import partial from NetUtils import Node @@ -43,6 +44,9 @@ class WebUiClient(Node): self.broadcast_all(self.build_message('chat', message)) def send_connection_status(self, ctx: Context): + asyncio.create_task(self._send_connection_status(ctx)) + + async def _send_connection_status(self, ctx: Context): cache = Utils.persistent_load() cached_address = cache["servers"]["default"] if cache else None server_address = ctx.server_address if ctx.server_address else cached_address if cached_address else None @@ -53,7 +57,6 @@ class WebUiClient(Node): 'serverAddress': server_address, 'server': 1 if ctx.server is not None and not ctx.server.socket.closed else 0, })) - def send_device_list(self, devices): self.broadcast_all(self.build_message('availableDevices', { 'devices': devices,