On Fri, Feb 20, 2009 at 12:37, Brett Cannon <br...@python.org> wrote:
> > > On Fri, Feb 20, 2009 at 12:31, Daniel Stutzbach < > dan...@stutzbachenterprises.com> wrote: > >> On Fri, Feb 20, 2009 at 1:44 PM, Brett Cannon <br...@python.org> wrote: >> >>> Now, from what I can tell, Antoine is suggesting having _pyio and a _io >>> and then io is simply: >>> >>> try: from _io import * >>> except ImportError: from _pyio import * >>> >>> That works for testing as you can then have test classes have an >>> attribute for the module to use and then create two subclasses which set >>> what module to use (kind of like how test_warnings currently does it). But >>> this only really works for complete module replacements, not modules like >>> pickle where only key portions have been rewritten (which happens more often >>> than the complete rewrite). >>> >> >> A slight change would make it work for modules where only key functions >> have been rewritten. For example, pickle.py could read: >> >> from _pypickle import * >> try: from _pickle import * >> except ImportError: pass >> > > True, although that still suffers from the problem of overwriting things > like __name__, __file__, etc. > Actually, I take that back; the IMPORT_STAR opcode doesn't pull in anything starting with an underscore. So while this alleviates the worry above, it does mean that anything that gets rewritten needs to have a name that does not lead with an underscore for this to work. Is that really an acceptable compromise for a simple solution like this? -Brett
_______________________________________________ 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