Mercurial > p > roundup > code
diff roundup/instance.py @ 1781:c4968040459e maint-0.6
merge from HEAD
| author | Richard Jones <richard@users.sourceforge.net> |
|---|---|
| date | Thu, 04 Sep 2003 23:09:48 +0000 |
| parents | 8e318dfaf479 |
| children |
line wrap: on
line diff
--- a/roundup/instance.py Sun Aug 31 04:31:03 2003 +0000 +++ b/roundup/instance.py Thu Sep 04 23:09:48 2003 +0000 @@ -15,21 +15,46 @@ # BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE, # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. # -# $Id: instance.py,v 1.9 2002-09-20 01:20:31 richard Exp $ +# $Id: instance.py,v 1.9.4.1 2003-09-04 23:09:48 richard Exp $ __doc__ = ''' Tracker handling (open tracker). -Currently this module provides one function: open. This function opens -a tracker. Note that trackers used to be called instances. +Backwards compatibility for the old-style "imported" trackers. ''' -import imp, os +import os + +class Vars: + ''' I'm just a container ''' + +class Tracker: + def __init__(self, tracker_home): + self.tracker_home = tracker_home + self.select_db = self._load_python('select_db.py') + self.config = self._load_config('config.py') + raise NotImplemented, 'this is *so* not finished' + self.init = XXX + self.Client = XXX + self.MailGW = XXX + + def open(self): + return self._load_config('schema.py').db + self._load_config('security.py', db=db) + + + def __load_python(self, file): + file = os.path.join(tracker_home, file) + vars = Vars() + execfile(file, vars.__dict__) + return vars + class TrackerError(Exception): pass -class Opener: + +class OldStyleTrackers: def __init__(self): self.number = 0 self.trackers = {} @@ -39,6 +64,7 @@ Raise ValueError if the tracker home doesn't exist. ''' + import imp # sanity check existence of tracker home if not os.path.exists(tracker_home): raise ValueError, 'no such directory: "%s"'%tracker_home @@ -67,11 +93,12 @@ return tracker -opener = Opener() -open = opener.open +OldStyleTrackers = OldStyleTrackers() +def open(tracker_home): + if os.path.exists(os.path.join(tracker_home, 'dbinit.py')): + # user should upgrade... + return OldStyleTrackers.open(tracker_home) -del Opener -del opener - + return Tracker(tracker_home) # vim: set filetype=python ts=4 sw=4 et si
