From 007d5539fa50568a6c4f2cf8bfcabebf12cd0a11 Mon Sep 17 00:00:00 2001 From: Ivan Habunek Date: Sat, 9 Sep 2017 09:54:13 +0200 Subject: [PATCH] Fix Windows compatibility Don't load curses until required. Since it's not available on windows, importing the module early broke the whole app. issue #18 --- toot/app.py | 8 +++++++- toot/commands.py | 2 +- toot/console.py | 2 +- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/toot/app.py b/toot/app.py index 84fcbc6..7e86513 100644 --- a/toot/app.py +++ b/toot/app.py @@ -2,13 +2,19 @@ from __future__ import unicode_literals from __future__ import print_function -import curses import webbrowser from textwrap import wrap +from toot import ConsoleError from toot.utils import format_content +# Attempt to load curses, which is not available on windows +try: + import curses +except ImportError as e: + raise ConsoleError("Curses is not available on this platform") + class Color: @staticmethod diff --git a/toot/commands.py b/toot/commands.py index 7daa754..3b451ad 100644 --- a/toot/commands.py +++ b/toot/commands.py @@ -16,7 +16,6 @@ from textwrap import TextWrapper, wrap from toot import api, config, DEFAULT_INSTANCE, User, App, ConsoleError from toot.output import print_out -from toot.app import TimelineApp def register_app(instance): @@ -177,6 +176,7 @@ def timeline(app, user, args): def curses(app, user, args): + from toot.app import TimelineApp generator = api.timeline_generator(app, user) TimelineApp(generator).run() diff --git a/toot/console.py b/toot/console.py index 507587a..6041235 100644 --- a/toot/console.py +++ b/toot/console.py @@ -127,7 +127,7 @@ READ_COMMANDS = [ ), Command( name="curses", - description="An experimental timeline app.", + description="An experimental timeline app (doesn't work on Windows)", arguments=[], require_auth=True, ),