[Zope3-dev] Why z.a.appsetup.bootstrap function do not return the actual object

Stephan Richter srichter at cosmos.phy.tufts.edu
Mon Mar 20 08:27:45 EST 2006


On Wednesday 08 March 2006 08:57, Florian Lindner wrote:
> Hello,
> I'm currently playning with the functions from zope.app.appsetup.bootstrap
> and I'm wondering why the functions that create objects
> (addConfigureUtility, addUtility, configureUtility, ensureObject,
> ensureUtility) do return the name of the object added (or None) and not the
> object itself. What is the reason for that?
>
> IMO in most cases you add a Utility you want to change some attributes of
> it afterwards. In order to do that you need the object instance. To get it
> from the name you have to perform a getUtility call. If the functions above
> would return the object you could omit the getUtility.
>
> What do you think about that?

This is a relic from the early days, when we still had context wrappers. I am 
+1 for the change, but backward-compatibility has to be provided. And since 
the return value changes, this has to be done in two steps:

1. Create a new option argument to the functions saying ``asObject=False``, 
and only if set to True the object will return. Then deprecate the string 
return value by generating a warning message.

2. After two releases, remove deprecated string value return and set 
``asObject=True`` by default. Also deprecate the asObject argument again.

Regards,
Stephan
-- 
Stephan Richter
CBU Physics & Chemistry (B.S.) / Tufts Physics (Ph.D. student)
Web2k - Web Software Design, Development and Training


More information about the Zope3-dev mailing list