view BackendFactory.py @ 155:a05719a6175e

move common functionality into an abstract backend class, have both backends inherit from it. Implement enough of the couchdb backend that reading feeds (and marking feed entries as read) is possible
author Dirk Olmes <dirk@xanthippe.ping.de>
date Sat, 27 Aug 2011 08:52:03 +0200
parents 5b131f82057d
children bb3c851b18b1
line wrap: on
line source


import argparse

SQLALCHEMY_BACKEND = "sqlalchemy"
COUCHDB_BACKEND = "couchdb"

def _parseArguments():
    parser = argparse.ArgumentParser()
    parser.add_argument("--backend", nargs="?", choices=[SQLALCHEMY_BACKEND, COUCHDB_BACKEND], 
        required=True, help="Specify the backend to use: either sqlalchemy or couchdb")
    return parser.parse_known_args()

def createBackend():
    args = _parseArguments()
    backend = args[0].backend
    if backend == SQLALCHEMY_BACKEND:
        from backend.sqlalchemy.SqlAlchemyBackend import SqlAlchemyBackend
        return SqlAlchemyBackend()
    elif backend == COUCHDB_BACKEND:
        from backend.couchdb.CouchDbBackend import CouchDbBackend
        return CouchDbBackend()
    else:
        raise Exception("no backend configured")