pep8 edits and avoid naming conflicts with python builtins
[blender.git] / release / scripts / modules / addon_utils.py
index 0c5ef69e8057deb3809a10b7ac5903c4271e547a..de662b47c4dc65444724c6f38d7daccefd34c22d 100644 (file)
@@ -33,6 +33,7 @@ import bpy as _bpy
 
 error_duplicates = False
 error_encoding = False
+addons_fake_modules = {}
 
 
 def paths():
@@ -61,7 +62,7 @@ def modules(module_cache):
     path_list = paths()
 
     # fake module importing
-    def fake_module(mod_name, mod_path, speedy=True):
+    def fake_module(mod_name, mod_path, speedy=True, force_support=None):
         global error_encoding
 
         if _bpy.app.debug:
@@ -133,6 +134,9 @@ def modules(module_cache):
                 traceback.print_exc()
                 raise
 
+            if force_support is not None:
+                mod.bl_info["support"] = force_support
+
             return mod
         else:
             return None
@@ -140,6 +144,13 @@ def modules(module_cache):
     modules_stale = set(module_cache.keys())
 
     for path in path_list:
+
+        # force all contrib addons to be 'TESTING'
+        if path.endswith("addons_contrib") or path.endswith("addons_extern"):
+            force_support = 'TESTING'
+        else:
+            force_support = None
+
         for mod_name, mod_path in _bpy.path.module_names(path):
             modules_stale -= {mod_name}
             mod = module_cache.get(mod_name)
@@ -160,11 +171,13 @@ def modules(module_cache):
                     mod = None
 
             if mod is None:
-                mod = fake_module(mod_name, mod_path)
+                mod = fake_module(mod_name,
+                                  mod_path,
+                                  force_support=force_support)
                 if mod:
                     module_cache[mod_name] = mod
 
-    # just incase we get stale modules, not likely
+    # just in case we get stale modules, not likely
     for mod_stale in modules_stale:
         del module_cache[mod_stale]
     del modules_stale
@@ -208,7 +221,7 @@ def enable(module_name, default_set=True):
 
     :arg module_name: The name of the addon and module.
     :type module_name: string
-    :return: the loaded module or None on failier.
+    :return: the loaded module or None on failure.
     :rtype: module
     """
 
@@ -261,7 +274,7 @@ def enable(module_name, default_set=True):
 
     # * OK loaded successfully! *
     if default_set:
-        # just incase its enabled alredy
+        # just in case its enabled already
         ext = _bpy.context.user_preferences.addons.get(module_name)
         if not ext:
             ext = _bpy.context.user_preferences.addons.new()
@@ -285,7 +298,7 @@ def disable(module_name, default_set=True):
     import sys
     mod = sys.modules.get(module_name)
 
-    # possible this addon is from a previous session and didnt load a
+    # possible this addon is from a previous session and didn't load a
     # module this time. So even if the module is not found, still disable
     # the addon in the user prefs.
     if mod:
@@ -299,7 +312,7 @@ def disable(module_name, default_set=True):
     else:
         print("addon_utils.disable", module_name, "not loaded")
 
-    # could be in more then once, unlikely but better do this just incase.
+    # could be in more then once, unlikely but better do this just in case.
     addons = _bpy.context.user_preferences.addons
 
     if default_set: