Page Menu
Home
Search
Configure Global Search
Log In
Files
F19680
addons_version_check.diff
Public
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Authored By
Domino Marama (domino)
Nov 13 2013, 4:19 PM
Size
1 KB
Subscribers
None
addons_version_check.diff
View Options
Index: release/scripts/modules/addon_utils.py
===================================================================
--- release/scripts/modules/addon_utils.py (revision 42347)
+++ release/scripts/modules/addon_utils.py (working copy)
@@ -22,6 +22,7 @@
"paths",
"modules",
"check",
+ "check_version",
"enable",
"disable",
"reset_all",
@@ -215,6 +216,24 @@
return loaded_default, loaded_state
+def check_version(module):
+ """
+ Tests the 'blender' and 'api' versions to see if addon is supported
+
+ :arg module:The addon module to test
+ :type module: module
+ :return: True or False
+ :rtype: boolean
+ """
+ if 'blender' in module.bl_info:
+ if module.bl_info['blender'] > _bpy.app.version:
+ return False
+ if 'api' in module.bl_info:
+ if module.bl_info['api'] > int(_bpy.app.build_revision.rstrip('M')):
+ return False
+ return True
+
+
def enable(module_name, default_set=True):
"""
Enables an addon by name.
@@ -259,6 +278,16 @@
mod = __import__(module_name)
mod.__time__ = os.path.getmtime(mod.__file__)
mod.__addon_enabled__ = False
+ # make sure blender version is sufficient
+ if not check_version(mod):
+ msg = "VersionError: %s addon requires " % module_name
+ if 'blender' in mod.bl_info:
+ msg += "version %s.%s.%s " % mod.bl_info['blender']
+ if 'api' in mod.bl_info:
+ msg += "API revision %s" % mod.bl_info['api']
+ print(msg)
+ del sys.modules[module_name]
+ return None
except:
handle_error()
return None
File Metadata
Details
Mime Type
text/x-diff
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
95/9e/44a329260fe9860a67bddc2a017c
Event Timeline
Log In to Comment