Parametrized module import

Jacek Generowicz jacek.generowicz at cern.ch
Thu Jul 8 10:28:21 EDT 2004


george young <gry at ll.mit.edu> writes:

> You might look at the way pygtk does it.  I haven't peeked inside,

Here is the relevant part ...

  def require(version):
      global _pygtk_required_version
  
      if _pygtk_required_version != None:
          assert _pygtk_required_version == version, \
                 "a different version of gtk was already required"
          return
  
      assert not sys.modules.has_key('gtk'), \
             "pygtk.require() must be called before importing gtk"

      ...

> but the api is:
> 
> import pygtk
> pygtk.require('2.0') # or '1.2' or some other version
> import gtk           # uses state set by require() to load the appropriate version

Yup ... but now I'm being put under pressure to make the API thus:

 import foo
 foo.config....

which doesn't thrill me at all, for a plethora of implementation
detail related reasons which are not interesting here.

Thanks for the poniter, anyway.



More information about the Python-list mailing list