[Bf-extensions-cvs] [7052987] master: Archimesh: Update panel Rename, replace deprecated imp call

lijenstina noreply at git.blender.org
Fri May 5 00:13:39 CEST 2017


Commit: 70529875c67383939025bc03a06f19989eee2925
Author: lijenstina
Date:   Fri May 5 00:12:41 2017 +0200
Branches: master
https://developer.blender.org/rBA70529875c67383939025bc03a06f19989eee2925

Archimesh: Update panel Rename, replace deprecated imp call

Bumped version to 1.1.4
Replace the deprecated imp import with importlib
As a part of the task T50726:
Update the Panel rename code to more generic one
Note: there is the import sys and os that should be maybe
removed

===================================================================

M	archimesh/__init__.py

===================================================================

diff --git a/archimesh/__init__.py b/archimesh/__init__.py
index 59ef314..e9ba388 100644
--- a/archimesh/__init__.py
+++ b/archimesh/__init__.py
@@ -29,7 +29,7 @@ bl_info = {
     "name": "Archimesh",
     "author": "Antonio Vazquez (antonioya)",
     "location": "View3D > Add > Mesh > Archimesh",
-    "version": (1, 1, 3),
+    "version": (1, 1, 4),
     "blender": (2, 6, 8),
     "description": "Generate rooms, doors, windows, and other architecture objects",
     "wiki_url": "https://wiki.blender.org/index.php/Extensions:2.6/Py/Scripts/Add_Mesh/Archimesh",
@@ -43,21 +43,21 @@ import os
 # Import modules
 # ----------------------------------------------
 if "bpy" in locals():
-    import imp
-    imp.reload(achm_room_maker)
-    imp.reload(achm_door_maker)
-    imp.reload(achm_window_maker)
-    imp.reload(achm_roof_maker)
-    imp.reload(achm_column_maker)
-    imp.reload(achm_stairs_maker)
-    imp.reload(achm_kitchen_maker)
-    imp.reload(achm_shelves_maker)
-    imp.reload(achm_books_maker)
-    imp.reload(achm_lamp_maker)
-    imp.reload(achm_curtain_maker)
-    imp.reload(achm_venetian_maker)
-    imp.reload(achm_main_panel)
-    imp.reload(achm_window_panel)
+    import importlib
+    importlib.reload(achm_room_maker)
+    importlib.reload(achm_door_maker)
+    importlib.reload(achm_window_maker)
+    importlib.reload(achm_roof_maker)
+    importlib.reload(achm_column_maker)
+    importlib.reload(achm_stairs_maker)
+    importlib.reload(achm_kitchen_maker)
+    importlib.reload(achm_shelves_maker)
+    importlib.reload(achm_books_maker)
+    importlib.reload(achm_lamp_maker)
+    importlib.reload(achm_curtain_maker)
+    importlib.reload(achm_venetian_maker)
+    importlib.reload(achm_main_panel)
+    importlib.reload(achm_window_panel)
     print("archimesh: Reloaded multifiles")
 else:
     from . import achm_books_maker
@@ -80,9 +80,21 @@ else:
 # noinspection PyUnresolvedReferences
 import bpy
 # noinspection PyUnresolvedReferences
-from bpy.props import BoolProperty, FloatVectorProperty, IntProperty, FloatProperty
+from bpy.props import (
+        BoolProperty,
+        FloatVectorProperty,
+        IntProperty,
+        FloatProperty,
+        StringProperty,
+        )
 # noinspection PyUnresolvedReferences
-from bpy.types import Menu, Scene, INFO_MT_mesh_add, WindowManager
+from bpy.types import (
+        AddonPreferences,
+        Menu,
+        Scene,
+        INFO_MT_mesh_add,
+        WindowManager,
+        )
 
 # ----------------------------------------------------------
 # Decoration assets
@@ -128,24 +140,34 @@ class AchmInfoMtMeshCustomMenuAdd(Menu):
 # Register all operators and panels
 # --------------------------------------------------------------
 
-## Addons Preferences Update Panel
-from bpy.types import (
-        AddonPreferences,
-        )
-from bpy.props import (
-        StringProperty,
+
+# Add-ons Preferences Update Panel
+
+# Define Panel classes for updating
+panels = (
+        achm_main_panel.ArchimeshMainPanel,
         )
 
+
 def update_panel(self, context):
+    message = "Archimesh: Updating Panel locations has failed"
     try:
-        bpy.utils.unregister_class(achm_main_panel.ArchimeshMainPanel)
-    except:
+        for panel in panels:
+            if "bl_rna" in panel.__dict__:
+                bpy.utils.unregister_class(panel)
+
+        for panel in panels:
+            panel.bl_category = context.user_preferences.addons[__name__].preferences.category
+            bpy.utils.register_class(panel)
+
+    except Exception as e:
+        print("\n[{}]\n{}\n\nError:\n{}".format(__name__, message, e))
         pass
-    achm_main_panel.ArchimeshMainPanel.bl_category = context.user_preferences.addons[__name__].preferences.category
-    bpy.utils.register_class(achm_main_panel.ArchimeshMainPanel)
 
 
 class Archi_Pref(AddonPreferences):
+    # this must match the addon name, use '__package__'
+    # when defining this in a submodule of a python package.
     bl_idname = __name__
 
     category = StringProperty(
@@ -156,13 +178,14 @@ class Archi_Pref(AddonPreferences):
             )
 
     def draw(self, context):
-
         layout = self.layout
+
         row = layout.row()
         col = row.column()
         col.label(text="Tab Category:")
         col.prop(self, "category", text="")
 
+
 # Define menu
 # noinspection PyUnusedLocal
 def AchmMenu_func(self, context):



More information about the Bf-extensions-cvs mailing list