diff options
author | René 'Necoro' Neumann <necoro@necoro.net> | 2009-02-17 01:19:23 +0100 |
---|---|---|
committer | René 'Necoro' Neumann <necoro@necoro.net> | 2009-02-17 01:19:23 +0100 |
commit | 7bd265f8c8537d235b24db59463c505629d9c207 (patch) | |
tree | feda7a0668f71f3e2d296491ecbd690287880824 /portato/db/__init__.py | |
parent | 98105652b0e02d9c633a5e61ced64e30adb70cde (diff) | |
parent | eab7389888eb97ddcdf174acce717f45157ed079 (diff) | |
download | portato-7bd265f8c8537d235b24db59463c505629d9c207.tar.gz portato-7bd265f8c8537d235b24db59463c505629d9c207.tar.bz2 portato-7bd265f8c8537d235b24db59463c505629d9c207.zip |
Merge in DB branch (even though it does not offer the change-db-in-prefs feature)
Diffstat (limited to 'portato/db/__init__.py')
-rw-r--r-- | portato/db/__init__.py | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/portato/db/__init__.py b/portato/db/__init__.py new file mode 100644 index 0000000..05dbfcf --- /dev/null +++ b/portato/db/__init__.py @@ -0,0 +1,47 @@ +# -*- coding: utf-8 -*- +# +# File: portato/db/__init__.py +# This file is part of the Portato-Project, a graphical portage-frontend. +# +# Copyright (C) 2006-2009 René 'Necoro' Neumann +# This is free software. You may redistribute copies of it under the terms of +# the GNU General Public License version 2. +# There is NO WARRANTY, to the extent permitted by law. +# +# Written by René 'Necoro' Neumann <necoro@necoro.net> + +from __future__ import absolute_import + +from ..session import Session, SectionDict +from ..helper import debug, warning + +_SESSION = None +_TYPE = None + +def _set_type(t): + global _TYPE + _TYPE = t + +def Database(): + global _SESSION, _TYPE + + if _SESSION is None: + _SESSION = Session("db.cfg", name = "DB") + _SESSION.add_handler((["type"], _set_type, lambda: _TYPE), default = ["sql"]) + _SESSION.load() + + if _TYPE == "sql": + debug("Using SQLDatabase") + try: + from .sql import SQLDatabase + except ImportError: + warning(_("Cannot load SQLDatabase.")) + _TYPE = "dict" + return Database() + else: + return SQLDatabase(SectionDict(_SESSION, "SQL")) + + elif _TYPE == "dict": + debug("Using DictDatabase") + from .dict import DictDatabase + return DictDatabase(SectionDict(_SESSION, "dict")) |