[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