#!python

from __future__ import print_function

import sys


dependencies = {}
try:
    import cv2
    if ((cv2.__version__.startswith('3.')
                and not cv2.__version__.startswith('3.0')
                and not cv2.__version__.startswith('3.1'))
            or cv2.__version__.startswith('4.')):
        dependencies['opencv'] = (True, None)
    else:
        dependencies['opencv'] = (False, 'version')
except ImportError:
    dependencies['opencv'] = (False, 'import')

try:
    import PyQt5.QtCore
    dependencies['pyqt5'] = (True, None)
except ImportError:
    dependencies['pyqt5'] = (False, 'import')

if all(value[0] for value in dependencies.values()):
    import eyegrade.eyegrade
    eyegrade.eyegrade.main()
else:
    has_opencv, reason = dependencies['opencv']
    if not has_opencv:
        if reason == 'version':
            print('OpenCV 2.4 or >=3.2 is required, but {} found.'
                  .format(cv2.__version__),
                  file=sys.stderr)
        else:
            print('Cannot import cv2. You need to install OpenCV 2.4 or >=3.2'
                  'and its Python bindings.',
                  file=sys.stderr)
    has_pyqt5, reason = dependencies['pyqt5']
    if not has_pyqt5:
        print('Cannot import PyQt5. You need to install it.',
                  file=sys.stderr)
