From 08b193b3ddbec4282f9f6aa2d1448eebae9f6e6e Mon Sep 17 00:00:00 2001
From: James Graham <J.A.Graham@soton.ac.uk>
Date: Wed, 3 May 2017 12:34:35 +0100
Subject: [PATCH] Add better error messages in two cases Using Python2 Terminal
 is too small for gui

---
 pycgtool.py           | 9 ++++++---
 pycgtool/interface.py | 5 ++++-
 2 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/pycgtool.py b/pycgtool.py
index 6082e27..3a95b86 100755
--- a/pycgtool.py
+++ b/pycgtool.py
@@ -3,9 +3,12 @@
 import argparse
 import sys
 
-from pycgtool.pycgtool import main, map_only
-from pycgtool.interface import Options
-from pycgtool.functionalforms import FunctionalForms
+try:
+    from pycgtool.pycgtool import main, map_only
+    from pycgtool.interface import Options
+    from pycgtool.functionalforms import FunctionalForms
+except SyntaxError:
+    raise RuntimeError("PyCGTOOL requires Python 3.2 or greater")
 
 if __name__ == "__main__":
     parser = argparse.ArgumentParser(description="Perform coarse-grain mapping of atomistic trajectory")
diff --git a/pycgtool/interface.py b/pycgtool/interface.py
index 7ab9ae3..8ca93b8 100644
--- a/pycgtool/interface.py
+++ b/pycgtool/interface.py
@@ -146,7 +146,10 @@ class Options:
 
         for i, (key, value) in enumerate(self):
             window_keys.addstr(i, 0, key)
-            text_edit_wins.append(window_vals.derwin(1, 30, i, 0))
+            try:
+                text_edit_wins.append(window_vals.derwin(1, 30, i, 0))
+            except curses.error as e:
+                raise RuntimeError("Your terminal is too small to fit the interface, please expand it") from e
             text_edit_wins[-1].addstr(0, 0, str(value))
             text_inputs.append(curses.textpad.Textbox(text_edit_wins[-1]))
 
-- 
GitLab