[Bf-python] Implementing bpy.classes

Ken Hughes khughes at pacific.edu
Wed Jun 27 18:17:42 CEST 2007


Campbell Barton wrote:
> Willian Padovani Germano wrote:
>   
>> Hi Ken,
>>
>> Ken Hughes wrote:
>>     
>>> I was going to start adding the new constant handling code to the pyapi 
>>> branch, but since constants are supposed to be available through the 
>>> bpy.classes module, I need to start implementing some of that too (I 
>>> guess).  But what does this module really contains?
>>>
>>> For example, assume we have bpy.classes.Object.  Is this just the BPy 
>>> Object type?  I.e, if you write:
>>>   print bpy.classes.Object
>>> should it just say
>>>   <type 'Blender Object'>
>>>
>>> Or is "Object" a new type of BPy container which for now has constants 
>>> for that class, possibly constructors or other things later?
>>>       
>>  From what I understand, bpy.classes will only include object types. So, 
>> for Blender objects, it's only the bpy object defined in Object.c, not 
>> the Blender.Object module functions and constants (that should be moved).
>>     
>
> I had to re-read this 3 times to get it ;) - object can mean 4 things. 
> blender object, PyObject, blender object module or blender PyObject 
> object type.
>
> Agree, its only for types and not for module functions, we still need to 
> deciede where they go. Blender.Object.Duplicate() for instance.
>   

Ok, so maybe one of you will break it down for me, as I'm still confused 
about what is an object and what is an object.  Show me the *exact C 
code* we're talking about.

For what it's worth, I've tried this:

    PyObject *module = Py_InitModule3( "bpy.class", NULL, "The bpy.class 
submodule" );
    PyObject *obj = (PyObject *)&Object_Type;
    PyModule_AddObject( module, "Object", obj );

which gives me a "<type 'Blender Object'>", but haven't been able to add 
PyObjects (like constants) to obj using the standard Python C API.

Ken



More information about the Bf-python mailing list