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. @@
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to