Hi,

So, looking at this again, as I understand it, the main decision that
needs to be taken is if we want auto registration to be opt-in or
opt-out. The only difference would be a few standard lines at the end
of scripts. I prefer this to be opt-in personally.

Regarding the implementation, that's hard to judge for me, but I guess
that in the case we decide on opt-in and that means the implementation
can be simplified in places, then it's logical to do so.

Brecht.

On Thu, Jan 27, 2011 at 9:57 AM, Campbell Barton <ideasma...@gmail.com> wrote:
> Hi Martin,
>
> Just looked into your patch and while its improved and more flexible
> improvement its still creating an environment which is overkill IMHO.
>
> This goes back to the problem that you want to keep auto-registration
> and I'm not convinced its better then an api which gives a convenience
> registration function for script authors to access.
>
> This can simply be solved by collecting classes and having a single
> function to register them, anything more then this increases
> complexity of our internals significantly and only means we avoid a
> few lines at the end of the scripts.
>
> Updated my patch posted earlier to the ML, with minor changes.
> - Uses metaclass to collect classes as we agreed.
> - Includes line of class definition to include on registration errors
> (like you added with yours).
>
> Attached the updated patch here.
> http://projects.blender.org/tracker/index.php?func=detail&aid=25809&group_id=9&atid=127
>
> Re #[4], IDPropertyGroups can be defined like operators. Probably
> nobody did this because adding properties to existing types Scene,
> Group, Mesh etc.. cant be done this way.
>
> - Campbell
>
> On Thu, Jan 27, 2011 at 1:10 AM, Martin Poirier <the...@yahoo.com> wrote:
>> Hi,
>>
>> After talking with Campbell at length this morning (my morning), here's what 
>> was agreed upon.
>>
>> - Keep using a metaclass to build a list of extension type per module
>> - The automatic registration system should support both runtime and define 
>> time registration. [1]
>> - Turning on or off automatic registration should require *at most* a single 
>> function call at the end of a module. [2]
>>
>> The only last decision to take, as far as I understood (and I hope there 
>> wasn't a misunderstanding) is whether or not the automatic method should be 
>> opt in or opt out.
>>
>> I've made some changes to the automatic system today (patch attached) that 
>> would make it easy to support opt in or opt out painlessly. It also 
>> demonstrates how the metaclass can be used to gather more information about 
>> the types (file and line where they are defined).
>>
>> Regards,
>> Martin
>>
>>
>> Don't read the following unless you want boring details on stuff most people 
>> don't care about (and shouldn't)
>> ===============================================================
>>
>> [0] Currently, IDPropGroups are treated separately than other types. That 
>> was a work around for previous coding practices and needs to be removed.
>>
>> [1] Define time is the usual case: built in modules and addons. Runtime is 
>> both for definitions during a call to a module and for text window execution 
>> (although the later one could probably work like built-in modules).
>>
>> [2] Something like bpy.utils.manual_registration() to turn off or 
>> bpy.utils.register(__name__) to register all types in a module. This removes 
>> the need of doing shenanigans like calling the module's register method if 
>> __name__ == "main" to support text window execution and whatnot, which, IMHO 
>> is a good thing.
>>
>> [3] I also suggested we support optional register and unregister class 
>> methods in RNA types. This would help remove code entropy and make the 
>> definitions more self contained (for example, a class defining OBJ import 
>> could also contain the code to add and remove itself from menus instead of 
>> having it in the module's function). The jury is still out on whether that's 
>> a good idea or not.
>>
>> [4] We both agreed that IDPropGroups properties should be defined using the 
>> same syntax as operator properties (if possible) instead of having to add 
>> them post registration. Campbell said he'd try his hand at that later this 
>> week (IIRC).
>>
>>
>> _______________________________________________
>> Bf-committers mailing list
>> Bf-committers@blender.org
>> http://lists.blender.org/mailman/listinfo/bf-committers
>>
>>
>
>
>
> --
> - Campbell
> _______________________________________________
> Bf-committers mailing list
> Bf-committers@blender.org
> http://lists.blender.org/mailman/listinfo/bf-committers
>
_______________________________________________
Bf-committers mailing list
Bf-committers@blender.org
http://lists.blender.org/mailman/listinfo/bf-committers

Reply via email to