On 13 March 2003, Andrew Kuchling said:
> It would be two lines of code for backward compatibility, if we
> changed this. I'm +0 on changing _q_getname to _q_lookup.
>
> If we're changing names, remember that:
> _q_getname is called for names not in _q_exports, and isn't memoized.
> _q_resolve is called for names in _q_exports, and is memoized.
That clarifies things nicely, thanks! I think it even makes it clear
why we didn't munge the _q_resolve() functionality into _q_getname().
> Can we pick names that make this distinction slightly clearer?
I think the names are fine, assuming _q_getname() is changed to
_q_lookup(). ;-) Here's my thinking: if I want to make URLs like
/user/joe or /process/XYZ-B-0013/edit work, I'm using part of the URL to
lookup some object from my database. Hence, _q_lookup(). But if I have
a name in Python-space that isn't discoverable via Quixote's usual rules
(import and getattr subject to the constraints of _q_exports and
_q_access()), then I need to provide an alternate way to resolve
that name -- hence, _q_resolve(). Maybe I'm splitting semantic hairs
here, but the distinction is clear to me and I like those two names.
Greg
--
Greg Ward - software developer gward@mems-exchange.org
MEMS Exchange http://www.mems-exchange.org