diff options
author | René 'Necoro' Neumann <necoro@necoro.net> | 2009-02-20 01:03:21 +0100 |
---|---|---|
committer | René 'Necoro' Neumann <necoro@necoro.net> | 2009-02-20 01:03:21 +0100 |
commit | 2455dc6f3ac1b4187d33173eb3d5f061a53aac9f (patch) | |
tree | a417fbbc2861be171d7843311a2fa3b435e7db95 /portato/db | |
parent | 0235295d89cf6f8f1a9e9c4005505d41690f97cb (diff) | |
parent | 9756f5649fc17b4be9b8f3f9a537ee027faabca2 (diff) | |
download | portato-2455dc6f3ac1b4187d33173eb3d5f061a53aac9f.tar.gz portato-2455dc6f3ac1b4187d33173eb3d5f061a53aac9f.tar.bz2 portato-2455dc6f3ac1b4187d33173eb3d5f061a53aac9f.zip |
Moved from libglade to GtkBuilder.
Overhauled the preference dialog. - Still no user-configs though :(
Diffstat (limited to 'portato/db')
-rw-r--r-- | portato/db/__init__.py | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/portato/db/__init__.py b/portato/db/__init__.py index 05dbfcf..5537c5e 100644 --- a/portato/db/__init__.py +++ b/portato/db/__init__.py @@ -13,24 +13,26 @@ from __future__ import absolute_import from ..session import Session, SectionDict -from ..helper import debug, warning +from ..helper import debug, warning, error + +class UnknownDatabaseTypeError (Exception): + pass _SESSION = None -_TYPE = None -def _set_type(t): - global _TYPE - _TYPE = t +types = { + "sql": (_("SQLite"), _("Uses an SQLite-database to store package information.\nMay take longer to generate at the first time, but has advantages if portato is re-started with an unchanged portage tree. Additionally it allows to use fast SQL expressions for fetching the data.")), + "dict": (_("Hashmap"), _("Uses an in-memory hashmap to store package information.\nHas been used since at least version 0.3.3, but all information has to be regenerated on each startup.")) + } -def Database(): - global _SESSION, _TYPE +def Database(type): + global _SESSION 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": + if type == "sql": debug("Using SQLDatabase") try: from .sql import SQLDatabase @@ -41,7 +43,11 @@ def Database(): else: return SQLDatabase(SectionDict(_SESSION, "SQL")) - elif _TYPE == "dict": + elif type == "dict": debug("Using DictDatabase") from .dict import DictDatabase return DictDatabase(SectionDict(_SESSION, "dict")) + + else: + error(_("Unknown database type: %s"), type) + raise UnknownDatabaseTypeError, "type" |