From b4f5605505dad572f4c4ea47e03d8d678c351003 Mon Sep 17 00:00:00 2001 From: necoro <> Date: Tue, 20 Feb 2007 19:53:20 +0000 Subject: Renamed package.get_env_var to package.get_package_settings --- portato/backend/__init__.py | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) (limited to 'portato/backend/__init__.py') diff --git a/portato/backend/__init__.py b/portato/backend/__init__.py index 83ee1d6..c3de443 100644 --- a/portato/backend/__init__.py +++ b/portato/backend/__init__.py @@ -10,32 +10,47 @@ # # Written by René 'Necoro' Neumann +from exceptions import * from system_interface import SystemInterface -SYSTEM = "portage" -_sys = None +SYSTEM = "portage" # the name of the current system +_sys = None # the SystemInterface-instance class SystemWrapper (object, SystemInterface): + """This is a wrapper to the different system interfaces, allowing the direct import via C{from portato.backend import system}. + With this wrapper a change of the system is propagated to all imports.""" + def __getattribute__ (self, name): + """Just pass all attribute accesses directly to _sys.""" global _sys return eval ("_sys.%s" % name) def set_system (new_sys): + """Sets the current system to a new one. + + @param new_sys: the name of the system to take + @type new_sys: string""" + global SYSTEM SYSTEM = new_sys load_system() def load_system (): + """Loads the current chosen system. + + @raises InvalidSystemError: if an inappropriate system is set""" + global _sys if SYSTEM == "portage": from portato.backend.portage import PortageSystem _sys = PortageSystem () + else: + raise InvalidSystemError, SYSTEM system = SystemWrapper() -from exceptions import * +# import package before loading the system as some systems may depend on it being in the namespace from package import Package load_system() - -- cgit v1.2.3-54-g00ecf