Browse Source

Replaced imports by LodelContext.expose_modules() calls

Theorically all of those imports were tested by unit testing, but we've got no inssurance about that.
And even if unit tests had check for syntax errors, all pieces of code were not tested. We cannot
be sure that an import was missed or forgotten...
Yann Weber 8 years ago
parent
commit
c3137b658f

+ 3
- 1
plugins/dummy/__init__.py View File

1
-from lodel.settings.validator import SettingValidator
1
+from lodel.context import LodelContext
2
+LodelContext.expose_modules(globals(), {
3
+    'lodel.settings.validator': ['SettingValidator']})
2
 
4
 
3
 __plugin_name__ = "dummy"
5
 __plugin_name__ = "dummy"
4
 __version__ = '0.0.1' #or __version__ = [0,0,1]
6
 __version__ = '0.0.1' #or __version__ = [0,0,1]

+ 3
- 1
plugins/dummy/confspec.py View File

1
 #-*- coding: utf-8 -*-
1
 #-*- coding: utf-8 -*-
2
 
2
 
3
-from lodel.settings.validator import SettingValidator
3
+from lodel.context import LodelContext
4
+LodelContext.expose_modules(globals(), {
5
+    'lodel.settings.validator': ['SettingValidator']})
4
 
6
 
5
 CONFSPEC = {
7
 CONFSPEC = {
6
     'lodel2.section1': {
8
     'lodel2.section1': {

+ 3
- 7
plugins/dummy/main.py View File

1
 #-*- coding: utf-8 -*-
1
 #-*- coding: utf-8 -*-
2
 
2
 
3
-from lodel.plugin import LodelHook, CustomMethod
3
+from lodel.context import LodelContext
4
+LodelContext.expose_modules(globals(), {
5
+    'lodel.plugin': ['LodelHook', 'CustomMethod']})
4
 
6
 
5
 @LodelHook('leapi_get_post')
7
 @LodelHook('leapi_get_post')
6
 @LodelHook('leapi_update_pre')
8
 @LodelHook('leapi_update_pre')
26
     print("Hello world !\
28
     print("Hello world !\
27
 I'm a custom method on class %s" % self.__class__)
29
 I'm a custom method on class %s" % self.__class__)
28
 
30
 
29
-
30
-@LodelHook('lodel2_loader_main')
31
-def foofun(hname, caller, payload):
32
-    from lodel import dyncode
33
-    print("Hello world ! I read dyncode from lodel.dyncode : ",
34
-        dyncode.dynclasses)

+ 3
- 1
plugins/dummy_datasource/__init__.py View File

1
-from lodel.settings.validator import SettingValidator
1
+from lodel.context import LodelContext
2
+LodelContext.expose_modules(globals(), {
3
+    'lodel.settings.validator': ['SettingValidator']})
2
 from .datasource import DummyDatasource as Datasource
4
 from .datasource import DummyDatasource as Datasource
3
 
5
 
4
 __plugin_type__ = 'datasource'
6
 __plugin_type__ = 'datasource'

+ 3
- 1
plugins/dummy_datasource/datasource.py View File

1
 #-*- coding:utf-8 -*-
1
 #-*- coding:utf-8 -*-
2
 
2
 
3
-from lodel.plugin.datasource_plugin import AbstractDatasource
3
+from lodel.context import LodelContext
4
+LodelContext.expose_modules(globals(), {
5
+    'lodel.plugin.datasource_plugin': ['AbstractDatasource']})
4
 
6
 
5
 class DummyDatasource(AbstractDatasource):
7
 class DummyDatasource(AbstractDatasource):
6
     
8
     

+ 3
- 1
plugins/dummy_datasource/main.py View File

1
 #-*- coding:utf-8 -*-
1
 #-*- coding:utf-8 -*-
2
 
2
 
3
-from lodel.plugin import LodelHook
3
+from lodel.context import LodelContext
4
+LodelContext.expose_modules(globals(), {
5
+    'lodel.plugin': ['LodelHook']})
4
 from .datasource import DummyDatasource as Datasource
6
 from .datasource import DummyDatasource as Datasource
5
 
7
 
6
 def migration_handler_class():
8
 def migration_handler_class():

+ 3
- 1
plugins/filesystem_session/__init__.py View File

1
-from lodel.settings.validator import SettingValidator
1
+from lodel.context import LodelContext
2
+LodelContext.expose_modules(globals(), {
3
+    'lodel.settings.validator': ['SettingValidator']})
2
 
4
 
3
 __plugin_name__ = 'filesystem_session'
5
 __plugin_name__ = 'filesystem_session'
4
 __version__ = [0,0,1]
6
 __version__ = [0,0,1]

+ 3
- 1
plugins/filesystem_session/confspec.py View File

1
 # -*- coding: utf-8 -*-
1
 # -*- coding: utf-8 -*-
2
 
2
 
3
-from lodel.settings.validator import SettingValidator
3
+from lodel.context import LodelContext
4
+LodelContext.expose_modules(globals(), {
5
+    'lodel.settings.validator': ['SettingValidator']})
4
 
6
 
5
 CONFSPEC = {
7
 CONFSPEC = {
6
     'lodel2.sessions':{
8
     'lodel2.sessions':{

+ 5
- 3
plugins/filesystem_session/main.py View File

6
 import re
6
 import re
7
 import time
7
 import time
8
 
8
 
9
-from lodel import logger
10
-from lodel.auth.exceptions import ClientAuthenticationFailure
11
-from lodel.settings import Settings
9
+from lodel.context import LodelContext
10
+LodelContext.expose_modules(globals(), {
11
+    'lodel.logger': 'logger',
12
+    'lodel.auth.exceptions': ['ClientAuthenticationFailure'],
13
+    'lodel.settings': ['Settings']})
12
 
14
 
13
 from .filesystem_session import FileSystemSession
15
 from .filesystem_session import FileSystemSession
14
 
16
 

+ 1
- 1
plugins/mongodb_datasource/__init__.py View File

17
 #
17
 #
18
 # @return bool|str : True if all the checks are OK, an error message if not
18
 # @return bool|str : True if all the checks are OK, an error message if not
19
 def _activate():
19
 def _activate():
20
-    from lodel import buildconf
20
+    from lodel import buildconf #NOTE : this one do not have to pass through the context
21
     return buildconf.PYMONGO
21
     return buildconf.PYMONGO
22
 
22
 
23
 #
23
 #

+ 3
- 1
plugins/mongodb_datasource/confspec.py View File

1
 # -*- coding: utf-8 -*-
1
 # -*- coding: utf-8 -*-
2
 
2
 
3
-from lodel.settings.validator import SettingValidator
3
+from lodel.context import LodelContext
4
+LodelContext.expose_modules(globals(), {
5
+    'lodel.settings.validator': ['SettingValidator']})
4
 
6
 
5
 ##@brief Mongodb datasource plugin confspec
7
 ##@brief Mongodb datasource plugin confspec
6
 #@ingroup plugin_mongodb_datasource
8
 #@ingroup plugin_mongodb_datasource

+ 7
- 5
plugins/mongodb_datasource/datasource.py View File

9
 import pymongo
9
 import pymongo
10
 from pymongo.errors import BulkWriteError
10
 from pymongo.errors import BulkWriteError
11
 
11
 
12
-from lodel import logger
13
-from lodel.leapi.leobject import CLASS_ID_FIELDNAME
14
-from lodel.leapi.datahandlers.base_classes import Reference, MultipleRef
15
-from lodel.exceptions import LodelException, LodelFatalError
16
-from lodel.plugin.datasource_plugin import AbstractDatasource
12
+from lodel.context import LodelContext
13
+LodelContext.expose_modules(globals(), {
14
+    'lodel.logger': 'logger',
15
+    'lodel.leapi.leobject': ['CLASS_ID_FIELDNAME'],
16
+    'lodel.leapi.datahandlers.base_classes': ['Reference', 'MultipleRef'],
17
+    'lodel.exceptions': ['LodelException', 'LodelFatalError'],
18
+    'lodel.plugin.datasource_plugin': ['AbstractDatasource']})
17
 
19
 
18
 from . import utils
20
 from . import utils
19
 from .exceptions import *
21
 from .exceptions import *

+ 5
- 2
plugins/mongodb_datasource/exceptions.py View File

1
-from lodel.exceptions import *
1
+from lodel.context import LodelContext
2
+LodelContext.expose_modules(globals(), {
3
+    'lodel.exceptions': ['LodelException', 'LodelExceptions',
4
+        'LodelFatalError', 'DataNoneValid', 'FieldValidationError']})
2
 
5
 
3
-##@ingroup plugin_mongodb_datasource
6
+#@ingroup plugin_mongodb_datasource
4
 class MongoDbDataSourceError(Exception):
7
 class MongoDbDataSourceError(Exception):
5
     pass
8
     pass
6
 
9
 

+ 3
- 1
plugins/mongodb_datasource/main.py View File

1
-from lodel.plugin import LodelHook
1
+from lodel.context import LodelContext
2
+LodelContext.expose_modules(globals(), {
3
+    'lodel.plugin': ['LodelHook']})
2
 
4
 
3
 from .datasource import MongoDbDatasource as Datasource
5
 from .datasource import MongoDbDatasource as Datasource
4
 
6
 

+ 10
- 6
plugins/mongodb_datasource/migration_handler.py View File

1
 # -*- coding: utf-8 -*-
1
 # -*- coding: utf-8 -*-
2
 import datetime
2
 import datetime
3
 
3
 
4
-from lodel.editorial_model.components import EmClass, EmField
5
-from lodel.editorial_model.model import EditorialModel
4
+from lodel.context import LodelContext
5
+LodelContext.expose_modules(globals(), {
6
+    'lodel.editorial_model.components': ['EmClass', 'EmField'],
7
+    'lodel.editorial_model.model': ['EditorialModel'],
8
+    'lodel.leapi.datahandlers.base_classes': ['DataHandler'],
9
+    'lodel.plugin': ['LodelHook'],
10
+    'lodel.logger': 'logger'})
11
+
12
+from leapi_dyncode import * #<-- TODO : handle this !!!
13
+
6
 from .utils import connect, object_collection_name, mongo_fieldname
14
 from .utils import connect, object_collection_name, mongo_fieldname
7
-from lodel.leapi.datahandlers.base_classes import DataHandler
8
-from lodel.plugin import LodelHook
9
-from leapi_dyncode import *
10
 from .datasource import MongoDbDatasource
15
 from .datasource import MongoDbDatasource
11
 from .exceptions import *
16
 from .exceptions import *
12
-from lodel import logger
13
 
17
 
14
 class MigrationHandler(object):
18
 class MigrationHandler(object):
15
 
19
 

+ 4
- 2
plugins/mongodb_datasource/utils.py View File

3
 import pymongo
3
 import pymongo
4
 from pymongo import MongoClient
4
 from pymongo import MongoClient
5
 
5
 
6
-from lodel.settings.settings import Settings as settings
7
-from lodel import logger
6
+from lodel.context import LodelContext
7
+LodelContext.expose_modules(globals(), {
8
+    'lodel.settings.settings': [('Settings', 'settings')],
9
+    'lodel.logger': 'logger'})
8
 
10
 
9
 common_collections = {
11
 common_collections = {
10
     'object': 'objects',
12
     'object': 'objects',

+ 3
- 1
plugins/ram_sessions/__init__.py View File

1
-from lodel.settings.validator import SettingValidator
1
+from lodel.context import LodelContext
2
+LodelContext.expose_modules(globals(), {
3
+    'lodel.settings.validator': ['SettingValidator']})
2
 
4
 
3
 __plugin_name__ = 'ram_session'
5
 __plugin_name__ = 'ram_session'
4
 __version__ = [0,0,1]
6
 __version__ = [0,0,1]

+ 6
- 3
plugins/ram_sessions/main.py View File

3
 import copy
3
 import copy
4
 import binascii
4
 import binascii
5
 
5
 
6
-from lodel import logger
7
-from lodel.settings import Settings
8
-from lodel.auth.exceptions import *
6
+from lodel.context import LodelContext
7
+LodelContext.expose_modules(globals(), {
8
+    'lodel.logger': 'logger',
9
+    'lodel.settings': ['Settings'],
10
+    'lodel.auth.exceptions': ['ClientError', 'ClientAuthenticationFailure',
11
+        'ClientPermissionDenied', 'ClientAuthenticationError']})
9
 
12
 
10
 __sessions = dict()
13
 __sessions = dict()
11
 
14
 

+ 2
- 1
plugins/webui/client.py View File

1
-from lodel.auth.client import Client
1
+from lodel.context import LodelContext
2
+LodelContext.expose_modules(globals(), {'lodel.auth.client': ['Client']})
2
 
3
 
3
 class WebUiClient(Client):
4
 class WebUiClient(Client):
4
     
5
     

+ 3
- 1
plugins/webui/confspec.py View File

1
-from lodel.settings.validator import SettingValidator
1
+from lodel.context import LodelContext
2
+LodelContext.expose_modules(globals(), {
3
+    'lodel.settings.validator': ['SettingValidator']})
2
 
4
 
3
 CONFSPEC = {
5
 CONFSPEC = {
4
     'lodel2.webui': {
6
     'lodel2.webui': {

+ 5
- 3
plugins/webui/interface/controllers/admin.py View File

2
 from ...exceptions import *
2
 from ...exceptions import *
3
 from .base import get_response
3
 from .base import get_response
4
 
4
 
5
-from lodel.leapi.exceptions import *
6
-from lodel import logger
5
+from lodel.context import LodelContext
6
+LodelContext.expose_modules(globals(), {
7
+    'lodel.leapi.exceptions': [],
8
+    'lodel.logger': 'logger':
9
+    'lodel.leapi.datahandlers.base_classes': ['MultipleRef']})
7
 
10
 
8
 from ...client import WebUiClient
11
 from ...client import WebUiClient
9
 import leapi_dyncode as dyncode
12
 import leapi_dyncode as dyncode
10
 import warnings
13
 import warnings
11
-from lodel.leapi.datahandlers.base_classes import MultipleRef
12
 
14
 
13
 LIST_SEPARATOR = ','
15
 LIST_SEPARATOR = ','
14
 
16
 

+ 3
- 1
plugins/webui/interface/controllers/listing.py View File

1
 # -*- coding: utf-8 -*-
1
 # -*- coding: utf-8 -*-
2
+from lodel.context import LodelContext
3
+LodelContext.expose_modules(globals(), {'lodel.logger': 'logger'})
4
+
2
 from .base import get_response
5
 from .base import get_response
3
 from ...exceptions import *
6
 from ...exceptions import *
4
-from lodel import logger
5
 import leapi_dyncode as dyncode
7
 import leapi_dyncode as dyncode
6
 
8
 
7
 ##@brief These functions are called by the rules defined in ../urls.py
9
 ##@brief These functions are called by the rules defined in ../urls.py

+ 5
- 3
plugins/webui/interface/controllers/users.py View File

3
 from ...exceptions import *
3
 from ...exceptions import *
4
 from ...client import WebUiClient as WebUiClient
4
 from ...client import WebUiClient as WebUiClient
5
 
5
 
6
-from lodel import logger
7
-import leapi_dyncode as dyncode
6
+from lodel.context import LodelContext
7
+LodelContext.expose_modules(globals(), {'lodel.logger': 'logger'})
8
+
9
+import leapi_dyncode as dyncode #TODO : handle this with context
8
 
10
 
9
 ##@brief These functions are called by the rules defined in ../urls.py
11
 ##@brief These functions are called by the rules defined in ../urls.py
10
 ## Their goal is to handle the user authentication
12
 ## Their goal is to handle the user authentication
33
 # @note the response is given in the login html page 
35
 # @note the response is given in the login html page 
34
 def signout(request):
36
 def signout(request):
35
     WebUiClient.destroy()
37
     WebUiClient.destroy()
36
-    return get_response('users/signin.html')
38
+    return get_response('users/signin.html')

+ 4
- 1
plugins/webui/interface/router.py View File

4
 from .controllers import *
4
 from .controllers import *
5
 from .urls import urls
5
 from .urls import urls
6
 from ..main import root_url
6
 from ..main import root_url
7
-from lodel.settings import Settings
7
+
8
+from lodel.context import LodelContext
9
+LodelContext.expose_modules(globals(), {
10
+    'lodel.settings': ['Settings']})
8
 
11
 
9
 def format_url_rule(url_rule):
12
 def format_url_rule(url_rule):
10
     if url_rule.startswith('^'):
13
     if url_rule.startswith('^'):

+ 3
- 1
plugins/webui/interface/template/loader.py View File

2
 import jinja2
2
 import jinja2
3
 import os
3
 import os
4
 
4
 
5
-from lodel.settings import Settings
5
+from lodel.context import LodelContext
6
+LodelContext.expose_modules(globals(), {'lodel.settings': ['Settings']})
7
+
6
 from ...client import WebUiClient as WebUiClient
8
 from ...client import WebUiClient as WebUiClient
7
 import leapi_dyncode
9
 import leapi_dyncode
8
 
10
 

+ 7
- 3
plugins/webui/main.py View File

3
 import os, os.path
3
 import os, os.path
4
 import sys
4
 import sys
5
 import shlex
5
 import shlex
6
-from lodel.plugin import LodelHook
7
-from lodel.settings import Settings
8
-from lodel import buildconf
6
+
7
+from lodel.context import LodelContext
8
+LodelContext.expose_modules(globals(), {
9
+    'lodel.plugin': ['LodelHook'],
10
+    'lodel.settings': ['Settings']})
11
+
12
+from lodel import buildconf #<-- This one is common to the build
9
 
13
 
10
 PLUGIN_PATH = os.path.dirname(__file__)
14
 PLUGIN_PATH = os.path.dirname(__file__)
11
 
15
 

+ 10
- 3
plugins/webui/run.py View File

7
 
7
 
8
 from werkzeug.wrappers import Response
8
 from werkzeug.wrappers import Response
9
 
9
 
10
-from lodel.settings import Settings
10
+from lodel.context import LodelContext
11
+LodelContext.expose_modules(globals(), {
12
+    'lodel.settings': ['Settings'],
13
+    'lodel.auth.exceptions': ['ClientError', 'ClientAuthenticationFailure',
14
+        'ClientPermissionDenied', 'ClientAuthenticationError']})
15
+
11
 from .interface.router import get_controller
16
 from .interface.router import get_controller
12
 from .interface.lodelrequest import LodelRequest
17
 from .interface.lodelrequest import LodelRequest
13
 from .exceptions import *
18
 from .exceptions import *
14
 from .client import WebUiClient
19
 from .client import WebUiClient
15
-from lodel.auth.exceptions import *
16
 
20
 
17
 try:
21
 try:
18
     SESSION_FILES_BASE_DIR = Settings.webui.sessions.directory
22
     SESSION_FILES_BASE_DIR = Settings.webui.sessions.directory
57
 #Starting instance
61
 #Starting instance
58
 loader.start()
62
 loader.start()
59
 #providing access to dyncode
63
 #providing access to dyncode
60
-import lodel
64
+
65
+##@todo Dirty & quick dyncode access providing. Replace it by a clean access
66
+#using LodelContext
67
+lodel = LodelContext.get()
61
 import leapi_dyncode as dyncode
68
 import leapi_dyncode as dyncode
62
 lodel.dyncode = dyncode
69
 lodel.dyncode = dyncode
63
 
70
 

Loading…
Cancel
Save