Brett Cannon wrote:

> The old-hands on python-dev know this is where  I plug  my import
> rewrite vaporware. It will be in 3.1, and as part of it there will be
> a new API for handling direct imports. Jacob Kaplan-Moss and I have

Sounds good. I can finally rest in peace :) . May I suggest
that you disable the hack while you are at it as well so that
people will be aware of their misdoings?

> talked about Django's need for this as PyCon so I am very aware of
> needing this API and it will be addressed in the simplest way possible
> (heck, the __import__ API might actually become a wrapper around the
> simpler API in the end).

Even better (the bracketed part).

> And since nothing can go into 3.0 anyway,
> there is no need to rush into solving this right now.

Agreed, I just wanted to get the ball rolling.

Let me know if you want me to do some gruntwork (tests,
documentation) once the improved implementation is taking shape.

---

As for the other comments, I'll try to wrap things up:

* I did get the impression from some posts that it was assumed
  to be somehow "my problem" -- although indeed seeing both
  'foo' and 'foo.' when printing sys.modules in a popular web
  framework I frequently use makes me wince in discomfort, the
  hack is present in 2000 lines in various projects as seen in
  the Google Code Search.

* runpy.run_module() is not the solution as it runs the module
  each time it is called and particularly because access to the
  submodule object is generally needed (again, look around in
  the Google Code Search results).

* changing the signature of __import__ is out of question both
  because it would break the existing __import__ replacements
  and would perpetuate the wrong assumption that it should be
  directly used (instead of the presently missing simpler
  interface).

---

It looks that the

__import__(modname)
mod = sys.modules[modname]

idiom is the clear winner for the import submodule use case.
I've updated http://bugs.python.org/issue4457 with proposed
additions to current __import__ docs. Once the simpler interface
emerges, the docs should be updated again and __import__
use should be discouraged.
_______________________________________________
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