[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