forked from gee-community/qgis-earthengine-plugin
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path__init__.py
65 lines (51 loc) · 1.94 KB
/
__init__.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# -*- coding: utf-8 -*-
import os
import platform
import site
import pkg_resources
import builtins
def pre_init_plugin():
if platform.system() == "Windows":
extlib_path = 'extlibs_windows'
if platform.system() == "Darwin":
extlib_path = 'extlibs_darwin'
if platform.system() == "Linux":
extlib_path = 'extlibs_linux'
extra_libs_path = os.path.abspath(os.path.join(os.path.dirname(__file__), extlib_path))
# add to python path
site.addsitedir(extra_libs_path)
# pkg_resources doesn't listen to changes on sys.path.
pkg_resources.working_set.add_entry(extra_libs_path)
def import_ee():
"""This is a wrapper of the Google Earth engine library for the
purpose of initializing or starting ee authentication when the
user or the plugin import ee library.
"""
from ee_plugin.ee_auth import authenticate
def __wrapping_ee_import__(name, *args, **kwargs):
_module_ = __builtin_import__(name, *args, **kwargs)
if name == 'ee':
if not _module_.data._credentials:
try:
_module_.Initialize()
except _module_.ee_exception.EEException:
if authenticate(ee=_module_):
_module_.Initialize() # retry initialization once the user logs in
else:
print('\nGoogle Earth Engine authorization failed!\n')
return _module_
__builtin_import__ = builtins.__import__
builtins.__import__ = __wrapping_ee_import__
# noinspection PyPep8Naming
def classFactory(iface): # pylint: disable=invalid-name
"""Instantiates Google Earth Engine Plugin.
:param iface: A QGIS interface instance.
:type iface: QgsInterface
"""
# load extra python dependencies
pre_init_plugin()
# wrap the ee library import
import_ee()
# start
from .ee_plugin import GoogleEarthEnginePlugin
return GoogleEarthEnginePlugin(iface)