[Python-Dev] advice needed: best approach to enabling "metamodules"?

Ethan Furman ethan at stoneleaf.us
Mon Dec 1 07:27:34 CET 2014


On 11/30/2014 03:41 PM, Terry Reedy wrote:
> On 11/30/2014 2:27 PM, Ethan Furman wrote:
>> On 11/30/2014 11:15 AM, Guido van Rossum wrote:
>>> On Sun, Nov 30, 2014 at 6:15 AM, Brett Cannon wrote:
>>>> On Sat, Nov 29, 2014, 21:55 Guido van Rossum wrote:
>>>>>
>>>>> All the use cases seem to be about adding some kind of getattr hook
>>>>> to modules. They all seem to involve modifying the CPython C code
>>>>> anyway. So why not tackle that problem head-on and modify module_getattro()
>>>>> to look for a global named __getattr__ and if it exists, call that instead
>>>>> of raising AttributeError?
>>>>
>>>> Not sure if anyone thought of it. :) Seems like a reasonable solution to me.
>>>> Be curious to know what the benchmark suite said the impact was.
>>>
>>> Why would there be any impact? The __getattr__ hook would be similar to the
>>> one on classes -- it's only invoked at the point where otherwise AttributeError
>>> would be raised.
>>
>> I think the bigger question is how do we support it back on 2.7?
> 
> I do not understand this question. We don't add new features to 2.7 and this definitely is one.

My understanding of one of the use-cases was being able to issue warnings about deprecated attributes, which would be
most effective if a backport could be written for current versions.

--
~Ethan~

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: OpenPGP digital signature
URL: <http://mail.python.org/pipermail/python-dev/attachments/20141130/752e9fe8/attachment.sig>


More information about the Python-Dev mailing list