On 2020-03-10 19:21, Stefan Behnel wrote:
Hi Petr!
Petr Viktorin schrieb am 14.01.20 um 14:37:
It also includes a more drastic change: it removes the MRO walker from the
proposal.
Reflecting on the feedback, it became clear to me that a MRO walker, as it
was described, won't give correct results in all cases: specifically, is a
slot is overridden by setting a special method from Python code, the walker
won't be able to find module. Think something like:
c_add = Class.__add__ # where nb_add uses the MRO walker
Class.__add__ = lambda *args: "evil"
c_add(Class(), 0) # Exception: Defining type has not been found.
This can be solved, but it will need a different design and more
discussion. I'd rather defer it to the future.
Meanwhile, extension authors can use their own MRO walker if they're OK
with some surprising edge cases.
I read the last update. I can't say I'm happy about the removal since I was
seeing the MRO walker function as a way to hide internals so that extension
authors can start using it and CPython can adapt the internals later. But I
do see that there are issues with it, and I accept your choice to keep the
PEP even more minimal than it already was.
Are there any more points to discuss?
Not to my knowledge.
If not, I would soon like to accept
the PEP, so that we can focus more on the implementation and usage.
Thank you!
_______________________________________________
Python-Dev mailing list -- python-dev@python.org
To unsubscribe send an email to python-dev-le...@python.org
https://mail.python.org/mailman3/lists/python-dev.python.org/
Message archived at
https://mail.python.org/archives/list/python-dev@python.org/message/5UKDYM3JMZ4ZRDNTXRZSYGUVXLHAVBM5/
Code of Conduct: http://python.org/psf/codeofconduct/