1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
|
# This file is executed when the Pmw package is imported. It creates
# a lazy importer/dynamic loader for Pmw and replaces the Pmw module
# with it. Even though the loader from the most recent installed
# version of Pmw is used, the user is able to specify which version of
# Pmw megawidgets to load by using the setversion() function of the
# loader.
# This is the only file in Pmw which is not part of a particular Pmw
# release.
import sys
import os
# First get a list of all subdirectories containing versions of Pmw.
_dir = __path__[0]
_listdir = os.listdir(_dir)
_instdirs = filter(lambda x: x[:4] == 'Pmw_', _listdir)
_instdirs.sort()
_instdirs.reverse()
# Using the latest version import the dynamic loader.
_loader = 'Pmw.' + _instdirs[0] + '.lib.PmwLoader'
__import__(_loader)
_mod = sys.modules[_loader]
# Create the dynamic loader and install it into sys.modules.
sys.modules['_Pmw'] = sys.modules['Pmw']
sys.modules['Pmw'] = _mod.PmwLoader(_dir, _instdirs, _listdir)
|