[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [26884] trunk/blender: change python scripts so modules which register with blender have a register () function rather then making import automatically run the register functions (generally considered bad practice by python people)

Campbell Barton ideasman42 at gmail.com
Sun Feb 14 12:21:21 CET 2010


Revision: 26884
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=26884
Author:   campbellbarton
Date:     2010-02-14 12:21:21 +0100 (Sun, 14 Feb 2010)

Log Message:
-----------
change python scripts so modules which register with blender have a register() function rather then making import automatically run the register functions (generally considered  bad practice by python people)

Modified Paths:
--------------
    trunk/blender/release/scripts/io/engine_render_pov.py
    trunk/blender/release/scripts/io/export_3ds.py
    trunk/blender/release/scripts/io/export_fbx.py
    trunk/blender/release/scripts/io/export_mdd.py
    trunk/blender/release/scripts/io/export_obj.py
    trunk/blender/release/scripts/io/export_ply.py
    trunk/blender/release/scripts/io/export_x3d.py
    trunk/blender/release/scripts/io/import_anim_bvh.py
    trunk/blender/release/scripts/io/import_scene_3ds.py
    trunk/blender/release/scripts/io/import_scene_obj.py
    trunk/blender/release/scripts/io/netrender/__init__.py
    trunk/blender/release/scripts/modules/bpy/utils.py
    trunk/blender/release/scripts/modules/bpy_types.py
    trunk/blender/release/scripts/op/add_armature_human.py
    trunk/blender/release/scripts/op/add_mesh_torus.py
    trunk/blender/release/scripts/op/console_python.py
    trunk/blender/release/scripts/op/console_shell.py
    trunk/blender/release/scripts/op/euler_filter.py
    trunk/blender/release/scripts/op/image.py
    trunk/blender/release/scripts/op/mesh.py
    trunk/blender/release/scripts/op/object.py
    trunk/blender/release/scripts/op/object_align.py
    trunk/blender/release/scripts/op/object_randomize_transform.py
    trunk/blender/release/scripts/op/presets.py
    trunk/blender/release/scripts/op/screen_play_rendered_anim.py
    trunk/blender/release/scripts/op/sequencer.py
    trunk/blender/release/scripts/op/uv.py
    trunk/blender/release/scripts/op/uvcalc_follow_active.py
    trunk/blender/release/scripts/op/uvcalc_smart_project.py
    trunk/blender/release/scripts/op/vertexpaint_dirt.py
    trunk/blender/release/scripts/op/wm.py
    trunk/blender/release/scripts/ui/properties_animviz.py
    trunk/blender/release/scripts/ui/properties_data_armature.py
    trunk/blender/release/scripts/ui/properties_data_armature_rigify.py
    trunk/blender/release/scripts/ui/properties_data_bone.py
    trunk/blender/release/scripts/ui/properties_data_camera.py
    trunk/blender/release/scripts/ui/properties_data_curve.py
    trunk/blender/release/scripts/ui/properties_data_empty.py
    trunk/blender/release/scripts/ui/properties_data_lamp.py
    trunk/blender/release/scripts/ui/properties_data_lattice.py
    trunk/blender/release/scripts/ui/properties_data_mesh.py
    trunk/blender/release/scripts/ui/properties_data_metaball.py
    trunk/blender/release/scripts/ui/properties_data_modifier.py
    trunk/blender/release/scripts/ui/properties_game.py
    trunk/blender/release/scripts/ui/properties_material.py
    trunk/blender/release/scripts/ui/properties_object.py
    trunk/blender/release/scripts/ui/properties_object_constraint.py
    trunk/blender/release/scripts/ui/properties_particle.py
    trunk/blender/release/scripts/ui/properties_physics_cloth.py
    trunk/blender/release/scripts/ui/properties_physics_common.py
    trunk/blender/release/scripts/ui/properties_physics_field.py
    trunk/blender/release/scripts/ui/properties_physics_fluid.py
    trunk/blender/release/scripts/ui/properties_physics_smoke.py
    trunk/blender/release/scripts/ui/properties_physics_softbody.py
    trunk/blender/release/scripts/ui/properties_render.py
    trunk/blender/release/scripts/ui/properties_scene.py
    trunk/blender/release/scripts/ui/properties_texture.py
    trunk/blender/release/scripts/ui/properties_world.py
    trunk/blender/release/scripts/ui/space_buttons.py
    trunk/blender/release/scripts/ui/space_console.py
    trunk/blender/release/scripts/ui/space_dopesheet.py
    trunk/blender/release/scripts/ui/space_filebrowser.py
    trunk/blender/release/scripts/ui/space_graph.py
    trunk/blender/release/scripts/ui/space_image.py
    trunk/blender/release/scripts/ui/space_info.py
    trunk/blender/release/scripts/ui/space_logic.py
    trunk/blender/release/scripts/ui/space_nla.py
    trunk/blender/release/scripts/ui/space_node.py
    trunk/blender/release/scripts/ui/space_outliner.py
    trunk/blender/release/scripts/ui/space_sequencer.py
    trunk/blender/release/scripts/ui/space_text.py
    trunk/blender/release/scripts/ui/space_time.py
    trunk/blender/release/scripts/ui/space_userpref.py
    trunk/blender/release/scripts/ui/space_view3d.py
    trunk/blender/release/scripts/ui/space_view3d_toolbar.py
    trunk/blender/source/blender/python/intern/bpy_rna.c

Modified: trunk/blender/release/scripts/io/engine_render_pov.py
===================================================================
--- trunk/blender/release/scripts/io/engine_render_pov.py	2010-02-14 07:05:50 UTC (rev 26883)
+++ trunk/blender/release/scripts/io/engine_render_pov.py	2010-02-14 11:21:21 UTC (rev 26884)
@@ -854,7 +854,6 @@
 
         self._cleanup()
 
-bpy.types.register(PovrayRender)
 
 # Use some of the existing buttons.
 import properties_render
@@ -944,4 +943,18 @@
             col = split.column()
             col.prop(scene, "pov_radio_always_sample")
 
-bpy.types.register(RENDER_PT_povray_radiosity)
+
+classes = [
+    PovrayRender,
+    RENDER_PT_povray_radiosity]
+
+
+def register():
+    register = bpy.types.register
+    for cls in classes:
+        register(cls)
+
+def unregister():
+    unregister = bpy.types.unregister
+    for cls in classes:
+        unregister(cls)

Modified: trunk/blender/release/scripts/io/export_3ds.py
===================================================================
--- trunk/blender/release/scripts/io/export_3ds.py	2010-02-14 07:05:50 UTC (rev 26883)
+++ trunk/blender/release/scripts/io/export_3ds.py	2010-02-14 11:21:21 UTC (rev 26884)
@@ -1136,11 +1136,17 @@
     def poll(self, context): # Poll isnt working yet
         return context.active_object != None
 
-bpy.types.register(Export3DS)
 
 # Add to a menu
 def menu_func(self, context):
     default_path = bpy.data.filename.replace(".blend", ".3ds")
     self.layout.operator(Export3DS.bl_idname, text="Autodesk 3DS...").path = default_path
 
-bpy.types.INFO_MT_file_export.append(menu_func)
+
+def register():
+    bpy.types.register(Export3DS)
+    bpy.types.INFO_MT_file_export.append(menu_func)
+
+def unregister():
+    bpy.types.unregister(Export3DS)
+    bpy.types.INFO_MT_file_export.remove(menu_func)

Modified: trunk/blender/release/scripts/io/export_fbx.py
===================================================================
--- trunk/blender/release/scripts/io/export_fbx.py	2010-02-14 07:05:50 UTC (rev 26883)
+++ trunk/blender/release/scripts/io/export_fbx.py	2010-02-14 11:21:21 UTC (rev 26884)
@@ -3435,8 +3435,8 @@
         return {'RUNNING_MODAL'}
 
 
-bpy.types.register(ExportFBX)
 
+
 # if __name__ == "__main__":
 # 	bpy.ops.EXPORT_OT_ply(filename="/tmp/test.ply")
 
@@ -3467,4 +3467,11 @@
     default_path = bpy.data.filename.replace(".blend", ".fbx")
     self.layout.operator(ExportFBX.bl_idname, text="Autodesk FBX...").path = default_path
 
-menu_item = bpy.types.INFO_MT_file_export.append(menu_func)
+
+def register():
+    bpy.types.register(ExportFBX)
+    bpy.types.INFO_MT_file_export.append(menu_func)
+    
+def unregister():
+    bpy.types.unregister(ExportFBX)
+    bpy.types.INFO_MT_file_export.remove(menu_func)

Modified: trunk/blender/release/scripts/io/export_mdd.py
===================================================================
--- trunk/blender/release/scripts/io/export_mdd.py	2010-02-14 07:05:50 UTC (rev 26883)
+++ trunk/blender/release/scripts/io/export_mdd.py	2010-02-14 11:21:21 UTC (rev 26884)
@@ -181,14 +181,16 @@
         wm.add_fileselect(self)
         return {'RUNNING_MODAL'}
 
-bpy.types.register(ExportMDD)
 
-
 def menu_func(self, context):
     default_path = bpy.data.filename.replace(".blend", ".mdd")
     self.layout.operator(ExportMDD.bl_idname, text="Vertex Keyframe Animation (.mdd)...").path = default_path
 
-bpy.types.INFO_MT_file_export.append(menu_func)
 
-if __name__ == '__main__':
-    bpy.ops.export.mdd(path="/tmp/test.mdd")
+def register():
+    bpy.types.register(ExportMDD)
+    bpy.types.INFO_MT_file_export.append(menu_func)
+    
+def unregister():
+    bpy.types.unregister(ExportMDD)
+    bpy.types.INFO_MT_file_export.remove(menu_func)

Modified: trunk/blender/release/scripts/io/export_obj.py
===================================================================
--- trunk/blender/release/scripts/io/export_obj.py	2010-02-14 07:05:50 UTC (rev 26883)
+++ trunk/blender/release/scripts/io/export_obj.py	2010-02-14 11:21:21 UTC (rev 26884)
@@ -958,17 +958,21 @@
         wm.add_fileselect(self)
         return {'RUNNING_MODAL'}
 
-bpy.types.register(ExportOBJ)
 
 def menu_func(self, context):
     default_path = bpy.data.filename.replace(".blend", ".obj")
     self.layout.operator(ExportOBJ.bl_idname, text="Wavefront (.obj)...").path = default_path
 
-menu_item = bpy.types.INFO_MT_file_export.append(menu_func)
 
-if __name__ == "__main__":
-    bpy.ops.EXPORT_OT_obj(filename="/tmp/test.obj")
+def register():
+    bpy.types.register(ExportOBJ)
+    bpy.types.INFO_MT_file_export.append(menu_func)
+    
+def unregister():
+    bpy.types.unregister(ExportOBJ)
+    bpy.types.INFO_MT_file_export.remove(menu_func)
 
+
 # CONVERSION ISSUES
 # - matrix problem
 # - duplis - only tested dupliverts

Modified: trunk/blender/release/scripts/io/export_ply.py
===================================================================
--- trunk/blender/release/scripts/io/export_ply.py	2010-02-14 07:05:50 UTC (rev 26883)
+++ trunk/blender/release/scripts/io/export_ply.py	2010-02-14 11:21:21 UTC (rev 26884)
@@ -313,14 +313,15 @@
         row.prop(props, "use_colors")
 
 
-bpy.types.register(ExportPLY)
-
-
 def menu_func(self, context):
     default_path = bpy.data.filename.replace(".blend", ".ply")
     self.layout.operator(ExportPLY.bl_idname, text="Stanford (.ply)...").path = default_path
 
-bpy.types.INFO_MT_file_export.append(menu_func)
 
-if __name__ == "__main__":
-    bpy.ops.export.ply(path="/tmp/test.ply")
+def register():
+    bpy.types.register(ExportPLY)
+    bpy.types.INFO_MT_file_export.append(menu_func)
+    
+def unregister():
+    bpy.types.unregister(ExportPLY)
+    bpy.types.INFO_MT_file_export.remove(menu_func)

Modified: trunk/blender/release/scripts/io/export_x3d.py
===================================================================
--- trunk/blender/release/scripts/io/export_x3d.py	2010-02-14 07:05:50 UTC (rev 26883)
+++ trunk/blender/release/scripts/io/export_x3d.py	2010-02-14 11:21:21 UTC (rev 26884)
@@ -1242,14 +1242,19 @@
         wm.add_fileselect(self)
         return {'RUNNING_MODAL'}
 
-bpy.types.register(ExportX3D)
 
-
 def menu_func(self, context):
     default_path = bpy.data.filename.replace(".blend", ".x3d")
     self.layout.operator(ExportX3D.bl_idname, text="X3D Extensible 3D (.x3d)...").path = default_path
 
-bpy.types.INFO_MT_file_export.append(menu_func)
 
+def register():
+    bpy.types.register(ExportX3D)
+    bpy.types.INFO_MT_file_export.append(menu_func)
+    
+def unregister():
+    bpy.types.unregister(ExportX3D)
+    bpy.types.INFO_MT_file_export.remove(menu_func)
+
 # NOTES
 # - blender version is hardcoded

Modified: trunk/blender/release/scripts/io/import_anim_bvh.py
===================================================================
--- trunk/blender/release/scripts/io/import_anim_bvh.py	2010-02-14 07:05:50 UTC (rev 26883)
+++ trunk/blender/release/scripts/io/import_anim_bvh.py	2010-02-14 11:21:21 UTC (rev 26884)
@@ -895,7 +895,12 @@
         return {'RUNNING_MODAL'}
 
 
-bpy.types.register(BvhImporter)
+menu_func = lambda self, context: self.layout.operator(BvhImporter.bl_idname, text="Motion Capture (.bvh)...")
 
-menu_func = lambda self, context: self.layout.operator(BvhImporter.bl_idname, text="Motion Capture (.bvh)...")
-bpy.types.INFO_MT_file_import.append(menu_func)
+def register():
+    bpy.types.register(BvhImporter)
+    bpy.types.INFO_MT_file_export.append(menu_func)
+    
+def unregister():
+    bpy.types.unregister(BvhImporter)
+    bpy.types.INFO_MT_file_export.remove(menu_func)

Modified: trunk/blender/release/scripts/io/import_scene_3ds.py
===================================================================
--- trunk/blender/release/scripts/io/import_scene_3ds.py	2010-02-14 07:05:50 UTC (rev 26883)
+++ trunk/blender/release/scripts/io/import_scene_3ds.py	2010-02-14 11:21:21 UTC (rev 26884)
@@ -1031,11 +1031,18 @@
         wm.add_fileselect(self)
         return {'RUNNING_MODAL'}
 
-bpy.types.register(IMPORT_OT_autodesk_3ds)
 
 menu_func = lambda self, context: self.layout.operator(IMPORT_OT_autodesk_3ds.bl_idname, text="3D Studio (.3ds)...")
-bpy.types.INFO_MT_file_import.append(menu_func)
 
+
+def register():
+    bpy.types.register(IMPORT_OT_autodesk_3ds)
+    bpy.types.INFO_MT_file_export.append(menu_func)
+    
+def unregister():
+    bpy.types.unregister(IMPORT_OT_autodesk_3ds)
+    bpy.types.INFO_MT_file_export.remove(menu_func)
+
 # NOTES:
 # why add 1 extra vertex? and remove it when done? - "Answer - eekadoodle - would need to re-order UV's without this since face order isnt always what we give blender, BMesh will solve :D"
 # disabled scaling to size, this requires exposing bb (easy) and understanding how it works (needs some time)

Modified: trunk/blender/release/scripts/io/import_scene_obj.py
===================================================================
--- trunk/blender/release/scripts/io/import_scene_obj.py	2010-02-14 07:05:50 UTC (rev 26883)
+++ trunk/blender/release/scripts/io/import_scene_obj.py	2010-02-14 11:21:21 UTC (rev 26884)
@@ -1623,11 +1623,16 @@
         return {'RUNNING_MODAL'}
 
 
-bpy.types.register(IMPORT_OT_obj)
+menu_func = lambda self, context: self.layout.operator(IMPORT_OT_obj.bl_idname, text="Wavefront (.obj)...")
 
 
-menu_func = lambda self, context: self.layout.operator(IMPORT_OT_obj.bl_idname, text="Wavefront (.obj)...")
-menu_item = bpy.types.INFO_MT_file_import.append(menu_func)
+def register():
+    bpy.types.register(IMPORT_OT_obj)
+    bpy.types.INFO_MT_file_export.append(menu_func)
+    
+def unregister():
+    bpy.types.unregister(IMPORT_OT_obj)
+    bpy.types.INFO_MT_file_export.remove(menu_func)
 
 
 # NOTES (all line numbers refer to 2.4x import_obj.py, not this file)

Modified: trunk/blender/release/scripts/io/netrender/__init__.py
===================================================================
--- trunk/blender/release/scripts/io/netrender/__init__.py	2010-02-14 07:05:50 UTC (rev 26883)
+++ trunk/blender/release/scripts/io/netrender/__init__.py	2010-02-14 11:21:21 UTC (rev 26884)
@@ -35,3 +35,9 @@
 init_file = ""
 init_data = True
 init_address = True
+
+def register():
+    pass # TODO
+
+def unregister():
+    pass # TODO

Modified: trunk/blender/release/scripts/modules/bpy/utils.py
===================================================================
--- trunk/blender/release/scripts/modules/bpy/utils.py	2010-02-14 07:05:50 UTC (rev 26883)

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list