"""
Run this after installing the following:

    1. PowerFactory
    2. Python 3.3
    3. Numpy
    4. Matplotlib
    5. Pywin32
"""
import logging
import sys
import os
try:
    import tkinter
    import tkinter.filedialog
except ImportError:
    pass

version = sys.version_info
if not (version[0], version[1]) == (3,3):
    print ("Error - this script was run with Python %s.%s not 3.3!" %
            (version[0], version[1]))
    try:
        input('..')
    except SyntaxError:
        pass
    sys.exit()

root = tkinter.Tk()
logging.basicConfig(
            filename="error.log", filemode="w",
            format="%(asctime)s - %(message)s")

powerfactory_location = tkinter.filedialog.askdirectory(
    title="Please Select the 'PowerFactory 15.1' directory in Program Files",
    mustexist=True,
    parent=root)

def prnt(msg, end=True):
    sys.stdout.write(msg)
    if end:
        sys.stdout.write('\n')

prnt("Checking for PowerFactory..", end="")
try:
    location = os.path.join(powerfactory_location, 'python')
    sys.path.append(location)
    import powerfactory
except ImportError:
    prnt("Error could not locate", location)
except:
    logging.exception("powerfactory")
    prnt("Error check error.log")
else:
    prnt("Success!")

root.destroy()
prnt ("Checking for Matplotlib..", end="")
try:
    import pylab
    pylab.plot([1,2,3])
    pylab.show()
except ImportError:
    prnt("Error Matplotlib not installed correctly")
except:
    logging.exception("matplotlib")
    prnt("Error check error.log")
else:
    prnt("Success!")


prnt("Checking for Pywin32..", end="")
try:
    import win32com.client
    excel = win32com.client.gencache.EnsureDispatch('Excel.Application')
    excel.Visible = True
    excel.Quit()
except ImportError:
    prnt("Error win32com not installed correctly")
except:
    prnt("Error check error.log")
    logging.exception("win32com")
else:
    prnt("Success!")

input('\nPress Enter to exit..')
