Guido van Rossum wrote:
from functools import partial
from new import instancemethod

def meth(name,self,*args):
   return getattr(self._sock,name)(*args)

for _m in _socketmethods:
   p = partial(meth,_m)
   p.__name__ = _m
   p.__doc__ = getattr(_realsocket,_m).__doc__
   m = instancemethod(p,None,_socketobject)
   setattr(_socketobject,_m,m)

Have I missed something or is that a suitable replacement that gets rid of
the exec nastiness?

That code in socket.py is much older that functools... I don't know if
the dependency matters, probably not.

But anyways this is moot, the bug was only about exec in a class body
*nested inside a function*.

Indeed, I just hate seeing execs and it was an interesting mental exercise to try and get rid of the above one ;-)

Assuming it breaks no tests, would there be objection to me committing the above change to the Python 3 trunk?

Chris

--
Simplistix - Content Management, Zope & Python Consulting
           - http://www.simplistix.co.uk
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to