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,4 +1,6 @@
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 5
 __plugin_name__ = "dummy"
4 6
 __version__ = '0.0.1' #or __version__ = [0,0,1]

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

@@ -1,6 +1,8 @@
1 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 7
 CONFSPEC = {
6 8
     'lodel2.section1': {

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

@@ -1,6 +1,8 @@
1 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 7
 @LodelHook('leapi_get_post')
6 8
 @LodelHook('leapi_update_pre')
@@ -26,9 +28,3 @@ def dummy_instance_method(self):
26 28
     print("Hello world !\
27 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,4 +1,6 @@
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
 from .datasource import DummyDatasource as Datasource
3 5
 
4 6
 __plugin_type__ = 'datasource'

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

@@ -1,6 +1,8 @@
1 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 7
 class DummyDatasource(AbstractDatasource):
6 8
     

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

@@ -1,6 +1,8 @@
1 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 6
 from .datasource import DummyDatasource as Datasource
5 7
 
6 8
 def migration_handler_class():

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

@@ -1,4 +1,6 @@
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 5
 __plugin_name__ = 'filesystem_session'
4 6
 __version__ = [0,0,1]

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

@@ -1,6 +1,8 @@
1 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 7
 CONFSPEC = {
6 8
     'lodel2.sessions':{

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

@@ -6,9 +6,11 @@ import pickle
6 6
 import re
7 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 15
 from .filesystem_session import FileSystemSession
14 16
 

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

@@ -17,7 +17,7 @@ __fullname__ = "MongoDB plugin"
17 17
 #
18 18
 # @return bool|str : True if all the checks are OK, an error message if not
19 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 21
     return buildconf.PYMONGO
22 22
 
23 23
 #

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

@@ -1,6 +1,8 @@
1 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 7
 ##@brief Mongodb datasource plugin confspec
6 8
 #@ingroup plugin_mongodb_datasource

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

@@ -9,11 +9,13 @@ from collections import OrderedDict
9 9
 import pymongo
10 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 20
 from . import utils
19 21
 from .exceptions import *

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

@@ -1,6 +1,9 @@
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 7
 class MongoDbDataSourceError(Exception):
5 8
     pass
6 9
 

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

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

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

@@ -1,15 +1,19 @@
1 1
 # -*- coding: utf-8 -*-
2 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 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 15
 from .datasource import MongoDbDatasource
11 16
 from .exceptions import *
12
-from lodel import logger
13 17
 
14 18
 class MigrationHandler(object):
15 19
 

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

@@ -3,8 +3,10 @@
3 3
 import pymongo
4 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 11
 common_collections = {
10 12
     'object': 'objects',

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

@@ -1,4 +1,6 @@
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 5
 __plugin_name__ = 'ram_session'
4 6
 __version__ = [0,0,1]

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

@@ -3,9 +3,12 @@ import os
3 3
 import copy
4 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 13
 __sessions = dict()
11 14
 

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

@@ -1,4 +1,5 @@
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 4
 class WebUiClient(Client):
4 5
     

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

@@ -1,4 +1,6 @@
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 5
 CONFSPEC = {
4 6
     'lodel2.webui': {

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

@@ -2,13 +2,15 @@
2 2
 from ...exceptions import *
3 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 11
 from ...client import WebUiClient
9 12
 import leapi_dyncode as dyncode
10 13
 import warnings
11
-from lodel.leapi.datahandlers.base_classes import MultipleRef
12 14
 
13 15
 LIST_SEPARATOR = ','
14 16
 

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

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

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

@@ -3,8 +3,10 @@ from .base import get_response
3 3
 from ...exceptions import *
4 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 11
 ##@brief These functions are called by the rules defined in ../urls.py
10 12
 ## Their goal is to handle the user authentication
@@ -33,4 +35,4 @@ def signin(request):
33 35
 # @note the response is given in the login html page 
34 36
 def signout(request):
35 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,7 +4,10 @@ import re
4 4
 from .controllers import *
5 5
 from .urls import urls
6 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 12
 def format_url_rule(url_rule):
10 13
     if url_rule.startswith('^'):

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

@@ -2,7 +2,9 @@
2 2
 import jinja2
3 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 8
 from ...client import WebUiClient as WebUiClient
7 9
 import leapi_dyncode
8 10
 

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

@@ -3,9 +3,13 @@
3 3
 import os, os.path
4 4
 import sys
5 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 14
 PLUGIN_PATH = os.path.dirname(__file__)
11 15
 

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

@@ -7,12 +7,16 @@ import time
7 7
 
8 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 16
 from .interface.router import get_controller
12 17
 from .interface.lodelrequest import LodelRequest
13 18
 from .exceptions import *
14 19
 from .client import WebUiClient
15
-from lodel.auth.exceptions import *
16 20
 
17 21
 try:
18 22
     SESSION_FILES_BASE_DIR = Settings.webui.sessions.directory
@@ -57,7 +61,10 @@ def empty_cookie(response):
57 61
 #Starting instance
58 62
 loader.start()
59 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 68
 import leapi_dyncode as dyncode
62 69
 lodel.dyncode = dyncode
63 70
 

Loading…
Cancel
Save