On Mon, Feb 23, 2009 at 04:02, Nick Coghlan <ncogh...@gmail.com> wrote:
> For example, a version that allows any number of extension modules to be
> suppressed when importing a module (defaulting to the Foo/_Foo naming):
>
>  import sys
>  def import_python_only(mod_name, *ext_names):
>    if not ext_names:
>        ext_names = (("_" + mod_name),)
>    orig_modules = {}
>    if name in sys.modules:
>      orig_modules[name] = sys.modules[name]
>      del sys.modules[name]
>    try:
>      for name in ext_names:
>        orig_modules[name] = sys.modules[name]
>        sys.modules[name] = 0
>      py_module = importlib.import_module(mod_name)
>    finally:
>      for name, module in orig_modules.items():
>        sys.modules[name] = module
>    return py_module

On Mon, Feb 23, 2009 at 11:05 AM, Brett Cannon <br...@python.org> wrote:
> Well, neither do I as your proposed approach below is what I do for
> warnings. But I think you and I, Nick, are more comfortable with mucking
> with imports than most people. =) I think some people early on in this
> thread said they didn't like the idea of screwing around with sys.modules.
> But doing that along with an import * from the extension module is probably
> the simplest solution.

+1 for something like Nick's code. No one has to know they're mucking
around with sys.modules - they just have to use the
import_python_only() function. (And I haven't seen anything in this
thread that's really any better.)

Steve
-- 
I'm not *in*-sane. Indeed, I am so far *out* of sane that you appear a
tiny blip on the distant coast of sanity.
        --- Bucky Katt, Get Fuzzy
_______________________________________________
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