On Wed, 21 Apr 1999, Greg Ward wrote:
On 19 April 1999, Timothy Docker said:
Assuming it does, then how will this be achieved? I am presently managing this with a messy arrangement of symlinks.
That's about the only thing I can think of.
Symlinks aren't portable. I use a package which imports a subpackage based on code performed in the toplevel __init__.py file. So, for example, my Snow directory (in my sys.path): Snow/ __init__.py mknewversion.py Snow_1999_3_14 Snow_1999_3_16 ... The code in __init__.py is a bit ugly but looks something like: import sys, os, imp, string _dir = __path__[0] _listdir = os.listdir(_dir) _thisdir = os.path.basename(_dir) _instdirs = filter(lambda x: x[:len(_thisdir)+1] == _thisdir+'_', _listd def datesort(f1, f2): parts1 = string.split(f1, '_') parts1[1:] = map(int, parts1[1:]) parts2 = string.split(f2, '_') parts2[1:] = map(int, parts2[1:]) return cmp(parts1, parts2) _instdirs.sort(datesort) _latest = _instdirs[-1] _file, _pathname, _description = imp.find_module(_latest, __path__) _module = imp.load_module(_latest, _file, _pathname, _description) globals().update(_module.__dict__) This is similar to Pmw's scheme. mknewversion.py is a similar-looking script which makes copies of the current version, comes up with the directory name based on the date and existing versions, and does some platform-specific things (add symbolic links for the programmer's sake, not the user's). It's not ideal, but it's portable and customizable. --david