forked from bartvdbraak/blender
py/rna api:
- bpy.context wasnt being created from the python bpy.types.Context type defined in bpy_types.py (bpy.context.copy() failed for eg.) - bpy.context.copy() was returning C defined methods like FloatProperty(), which are not useful in this case, removed.
This commit is contained in:
parent
6b21085ed5
commit
dd72ffe3ff
@ -29,10 +29,13 @@ class Context(StructRNA):
|
||||
__slots__ = ()
|
||||
|
||||
def copy(self):
|
||||
import types
|
||||
new_context = {}
|
||||
generic_keys = StructRNA.__dict__.keys()
|
||||
for item in dir(self):
|
||||
if item not in generic_keys:
|
||||
value = getattr(self, item)
|
||||
if type(value) != types.BuiltinMethodType:
|
||||
new_context[item] = getattr(self, item)
|
||||
|
||||
return new_context
|
||||
|
@ -141,6 +141,7 @@ static void bpy_import_test(char *modname)
|
||||
void BPy_init_modules( void )
|
||||
{
|
||||
extern BPy_StructRNA *bpy_context_module;
|
||||
PointerRNA ctx_ptr;
|
||||
PyObject *mod;
|
||||
|
||||
/* Needs to be first since this dir is needed for future modules */
|
||||
@ -181,9 +182,12 @@ void BPy_init_modules( void )
|
||||
PyModule_AddObject( mod, "app", BPY_app_struct() );
|
||||
|
||||
/* bpy context */
|
||||
bpy_context_module= ( BPy_StructRNA * ) PyObject_NEW( BPy_StructRNA, &pyrna_struct_Type );
|
||||
RNA_pointer_create(NULL, &RNA_Context, BPy_GetContext(), &bpy_context_module->ptr);
|
||||
bpy_context_module->freeptr= 0;
|
||||
RNA_pointer_create(NULL, &RNA_Context, BPy_GetContext(), &ctx_ptr);
|
||||
bpy_context_module= (BPy_StructRNA *)pyrna_struct_CreatePyObject(&ctx_ptr);
|
||||
/* odd that this is needed, 1 ref on creation and another for the module
|
||||
* but without we get a crash on exit */
|
||||
Py_INCREF(bpy_context_module);
|
||||
|
||||
PyModule_AddObject(mod, "context", (PyObject *)bpy_context_module);
|
||||
|
||||
/* utility func's that have nowhere else to go */
|
||||
|
Loading…
Reference in New Issue
Block a user