[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [34767] trunk/blender: minor python register changes.

Campbell Barton ideasman42 at gmail.com
Fri Feb 11 01:11:18 CET 2011


Revision: 34767
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=34767
Author:   campbellbarton
Date:     2011-02-11 00:11:17 +0000 (Fri, 11 Feb 2011)
Log Message:
-----------
minor python register changes.
- KeyingSetInfo classes are now collected like Panels, Operators etc so bpy.utils.register_module() can be used.
- move bpy.types.register() to bpy.utils.register_class

Modified Paths:
--------------
    trunk/blender/release/scripts/io/netrender/ui.py
    trunk/blender/release/scripts/keyingsets/keyingsets_builtins.py
    trunk/blender/release/scripts/modules/bpy/utils.py
    trunk/blender/release/scripts/modules/bpy_types.py
    trunk/blender/release/scripts/templates/builtin_keyingset.py
    trunk/blender/source/blender/python/intern/bpy.c
    trunk/blender/source/blender/python/intern/bpy_rna.c
    trunk/blender/source/blender/python/intern/bpy_rna.h

Modified: trunk/blender/release/scripts/io/netrender/ui.py
===================================================================
--- trunk/blender/release/scripts/io/netrender/ui.py	2011-02-11 00:03:26 UTC (rev 34766)
+++ trunk/blender/release/scripts/io/netrender/ui.py	2011-02-11 00:11:17 UTC (rev 34767)
@@ -374,9 +374,9 @@
     class NetRenderJob(bpy.types.IDPropertyGroup):
         pass
 
-    bpy.types.register(NetRenderSettings)
-    bpy.types.register(NetRenderSlave)
-    bpy.types.register(NetRenderJob)
+    bpy.utils.register_class(NetRenderSettings)
+    bpy.utils.register_class(NetRenderSlave)
+    bpy.utils.register_class(NetRenderJob)
 
     from bpy.props import PointerProperty, StringProperty, BoolProperty, EnumProperty, IntProperty, CollectionProperty
     bpy.types.Scene.network_render = PointerProperty(type=NetRenderSettings, name="Network Render", description="Network Render Settings")

Modified: trunk/blender/release/scripts/keyingsets/keyingsets_builtins.py
===================================================================
--- trunk/blender/release/scripts/keyingsets/keyingsets_builtins.py	2011-02-11 00:03:26 UTC (rev 34766)
+++ trunk/blender/release/scripts/keyingsets/keyingsets_builtins.py	2011-02-11 00:11:17 UTC (rev 34767)
@@ -352,39 +352,15 @@
             # for now, just add all of 'em
             ksi.addProp(ks, bone, '["%s"]' % (prop))
 
-###############################
 
-classes = [
-    BUILTIN_KSI_Location,
-    BUILTIN_KSI_Rotation,
-    BUILTIN_KSI_Scaling,
-
-    BUILTIN_KSI_LocRot,
-    BUILTIN_KSI_LocScale,
-    BUILTIN_KSI_LocRotScale,
-    BUILTIN_KSI_RotScale,
-
-    BUILTIN_KSI_WholeCharacter,
-
-    BUILTIN_KSI_VisualLoc,
-    BUILTIN_KSI_VisualRot,
-    BUILTIN_KSI_VisualLocRot,
-
-    BUILTIN_KSI_Available,
-]
-
-
 def register():
-    register = bpy.types.register
-    for cls in classes:
-        register(cls)
+    bpy.utils.register_module(__name__)
 
 
 def unregister():
-    unregister = bpy.types.unregister
-    for cls in classes:
-        unregister(cls)
+    bpy.utils.unregister_module(__name__)
 
+
 if __name__ == "__main__":
     register()
 

Modified: trunk/blender/release/scripts/modules/bpy/utils.py
===================================================================
--- trunk/blender/release/scripts/modules/bpy/utils.py	2011-02-11 00:03:26 UTC (rev 34766)
+++ trunk/blender/release/scripts/modules/bpy/utils.py	2011-02-11 00:11:17 UTC (rev 34767)
@@ -23,6 +23,9 @@
 not assosiated with blenders internal data.
 """
 
+from _bpy import register_class
+from _bpy import unregister_class
+
 from _bpy import blend_paths
 from _bpy import script_paths as _bpy_script_paths
 from _bpy import user_resource as _user_resource
@@ -576,18 +579,14 @@
     return target_path
 
 
-_register_types = _bpy.types.Panel, _bpy.types.Operator, _bpy.types.Menu, _bpy.types.Header, _bpy.types.RenderEngine
-
-
 def register_module(module):
     import traceback
     total = 0
-    register = _bpy.types.register
     for cls, path, line in _bpy_types.TypeMap.get(module, ()):
         if not "bl_rna" in cls.__dict__:
             total += 1
             try:
-                register(cls)
+                register_class(cls)
             except:
                 print("bpy.utils.register_module(): failed to registering class '%s.%s'" % (cls.__module__, cls.__name__))
                 print("\t", path, "line", line)
@@ -599,13 +598,12 @@
 
 def unregister_module(module):
     import traceback
-    unregister = _bpy.types.unregister
     total = 0
     for cls, path, line in _bpy_types.TypeMap.get(module, ()):
         if "bl_rna" in cls.__dict__:
             total += 1
             try:
-                unregister(cls)
+                unregister_class(cls)
             except:
                 print("bpy.utils.unregister_module(): failed to unregistering class '%s.%s'" % (cls.__module__, cls.__name__))
                 print("\t", path, "line", line)

Modified: trunk/blender/release/scripts/modules/bpy_types.py
===================================================================
--- trunk/blender/release/scripts/modules/bpy_types.py	2011-02-11 00:03:26 UTC (rev 34766)
+++ trunk/blender/release/scripts/modules/bpy_types.py	2011-02-11 00:11:17 UTC (rev 34767)
@@ -641,6 +641,10 @@
     __slots__ = ()
 
 
+class KeyingSetInfo(StructRNA, metaclass=RNAMeta):
+    __slots__ = ()
+
+
 class _GenericUI:
     __slots__ = ()
 

Modified: trunk/blender/release/scripts/templates/builtin_keyingset.py
===================================================================
--- trunk/blender/release/scripts/templates/builtin_keyingset.py	2011-02-11 00:03:26 UTC (rev 34766)
+++ trunk/blender/release/scripts/templates/builtin_keyingset.py	2011-02-11 00:11:17 UTC (rev 34767)
@@ -26,4 +26,4 @@
         ks.paths.add(id_block, "show_x_ray", group_method='NONE')
 
 # manually register
-bpy.types.register(BUILTIN_KSI_hello)
+bpy.utils.register_class(BUILTIN_KSI_hello)

Modified: trunk/blender/source/blender/python/intern/bpy.c
===================================================================
--- trunk/blender/source/blender/python/intern/bpy.c	2011-02-11 00:03:26 UTC (rev 34766)
+++ trunk/blender/source/blender/python/intern/bpy.c	2011-02-11 00:11:17 UTC (rev 34767)
@@ -227,6 +227,10 @@
 	PyModule_AddObject(mod, meth_bpy_blend_paths.ml_name, (PyObject *)PyCFunction_New(&meth_bpy_blend_paths, NULL));
 	PyModule_AddObject(mod, meth_bpy_user_resource.ml_name, (PyObject *)PyCFunction_New(&meth_bpy_user_resource, NULL));
 
+	/* register funcs (bpy_rna.c) */
+	PyModule_AddObject(mod, meth_bpy_register_class.ml_name, (PyObject *)PyCFunction_New(&meth_bpy_register_class, NULL));
+	PyModule_AddObject(mod, meth_bpy_unregister_class.ml_name, (PyObject *)PyCFunction_New(&meth_bpy_unregister_class, NULL));
+
 	/* add our own modules dir, this is a python package */
 	bpy_import_test("bpy");
 }

Modified: trunk/blender/source/blender/python/intern/bpy_rna.c
===================================================================
--- trunk/blender/source/blender/python/intern/bpy_rna.c	2011-02-11 00:03:26 UTC (rev 34766)
+++ trunk/blender/source/blender/python/intern/bpy_rna.c	2011-02-11 00:11:17 UTC (rev 34767)
@@ -73,11 +73,11 @@
 			const char *pyname;
 			if(key && PyUnicode_Check(key))	pyname= _PyUnicode_AsString(key);
 			else							pyname= "<UNKNOWN>";
-	
+
 			/* make a nice string error */
 			BLI_assert(idtype != NULL);
 			PyErr_Format(PyExc_RuntimeError, "Writing to ID classes in this context is not allowed: %.200s, %.200s datablock, error setting %.200s.%.200s", id->name+2, idtype, RNA_struct_identifier(ptr->type), pyname);
-	
+
 			return TRUE;
 		}
 	}
@@ -129,16 +129,16 @@
 	BPy_PropertyRNA *self= (BPy_PropertyRNA *)bmo->cb_user;
 	if(self->prop==NULL)
 		return 0;
-	
+
 	RNA_property_float_get_array(&self->ptr, self->prop, bmo->data);
-	
+
 	/* Euler order exception */
 	if(subtype==MATHUTILS_CB_SUBTYPE_EUL) {
 		EulerObject *eul= (EulerObject *)bmo;
 		PropertyRNA *prop_eul_order= NULL;
 		eul->order= pyrna_rotation_euler_order_get(&self->ptr, &prop_eul_order, eul->order);
 	}
-	
+
 	return 1;
 }
 
@@ -195,7 +195,7 @@
 
 	if(self->prop==NULL)
 		return 0;
-	
+
 	bmo->data[index]= RNA_property_float_get_index(&self->ptr, self->prop, index);
 	return 1;
 }
@@ -206,13 +206,13 @@
 
 	if(self->prop==NULL)
 		return 0;
-	
+
 #ifdef USE_PEDANTIC_WRITE
 	if(rna_disallow_writes && rna_id_write_error(&self->ptr, NULL)) {
 		return 0;
 	}
 #endif // USE_PEDANTIC_WRITE
-	
+
 	if (!RNA_property_editable_flag(&self->ptr, self->prop)) {
 		PyErr_Format(PyExc_AttributeError, "bpy_prop \"%.200s.%.200s\" is read-only", RNA_struct_identifier(self->ptr.type), RNA_property_identifier(self->prop));
 		return 0;
@@ -254,7 +254,7 @@
 static int mathutils_rna_matrix_set(BaseMathObject *bmo, int UNUSED(subtype))
 {
 	BPy_PropertyRNA *self= (BPy_PropertyRNA *)bmo->cb_user;
-	
+
 	if(self->prop==NULL)
 		return 0;
 
@@ -268,7 +268,7 @@
 		PyErr_Format(PyExc_AttributeError, "bpy_prop \"%.200s.%.200s\" is read-only", RNA_struct_identifier(self->ptr.type), RNA_property_identifier(self->prop));
 		return 0;
 	}
-	
+
 	/* can ignore clamping here */
 	RNA_property_float_set_array(&self->ptr, self->prop, bmo->data);
 
@@ -534,7 +534,7 @@
 	ID *id= self->ptr.id.data;
 	if(id == NULL)
 		return pyrna_struct_str(self); /* fallback */
-	
+
 	if(RNA_struct_is_ID(self->ptr.type)) {
 		return PyUnicode_FromFormat( "bpy.data.%s[\"%s\"]", BKE_idcode_to_name_plural(GS(id->name)), id->name+2);
 	}
@@ -549,7 +549,7 @@
 		else { /* cant find, print something sane */
 			ret= PyUnicode_FromFormat( "bpy.data.%s[\"%s\"]...%s", BKE_idcode_to_name_plural(GS(id->name)), id->name+2, RNA_struct_identifier(self->ptr.type));
 		}
-		
+
 		return ret;
 	}
 }
@@ -604,10 +604,10 @@
 	ID *id= self->ptr.id.data;
 	PyObject *ret;
 	const char *path;
-	
+
 	if(id == NULL)
 		return pyrna_prop_str(self); /* fallback */
-	
+
 	path= RNA_path_from_ID_to_property(&self->ptr, self->prop);
 	if(path) {
 		ret= PyUnicode_FromFormat( "bpy.data.%s[\"%s\"].%s", BKE_idcode_to_name_plural(GS(id->name)), id->name+2, path);
@@ -616,7 +616,7 @@
 	else { /* cant find, print something sane */
 		ret= PyUnicode_FromFormat( "bpy.data.%s[\"%s\"]...%s", BKE_idcode_to_name_plural(GS(id->name)), id->name+2, RNA_property_identifier(self->prop));
 	}
-	
+
 	return ret;
 }
 
@@ -627,7 +627,7 @@
 
 /* from python's meth_hash v3.1.2 */
 static long pyrna_prop_hash(BPy_PropertyRNA *self)
-{	
+{
 	long x,y;
 	if (self->ptr.data == NULL)
 		x = 0;
@@ -664,7 +664,7 @@
 	EnumPropertyItem *item;
 	const char *result;
 	int free= FALSE;
-	
+
 	RNA_property_enum_items(BPy_GetContext(), ptr, prop, &item, NULL, &free);
 	if(item) {
 		result= BPy_enum_as_string(item);
@@ -672,10 +672,10 @@
 	else {
 		result= "";
 	}
-	
+
 	if(free)
 		MEM_freeN(item);
-	
+
 	return result;
 }
 
@@ -848,7 +848,7 @@
 	if (RNA_property_array_check(ptr, prop)) {
 		return pyrna_py_from_array(ptr, prop);
 	}
-	
+
 	/* see if we can coorce into a python type - PropertyType */
 	switch (type) {
 	case PROP_BOOLEAN:
@@ -904,7 +904,7 @@
 		ret = NULL;
 		break;
 	}
-	
+
 	return ret;
 }
 
@@ -972,22 +972,22 @@
 	static PyMethodDef func_meth = {"<generic rna function>", (PyCFunction)pyrna_func_call, METH_VARARGS|METH_KEYWORDS, "python rna function"};
 	PyObject *self;
 	PyObject *ret;
-	
+
 	if(func==NULL) {
 		PyErr_Format(PyExc_RuntimeError, "%.200s: type attempted to get NULL function", RNA_struct_identifier(pyrna->ptr.type));
 		return NULL;
 	}
 
 	self= PyTuple_New(2);
-	
+

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list