common.py 823 Bytes
from configparser import ConfigParser
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from zope.sqlalchemy import register


def init(option):
    conf = ConfigParser()
    conf.read(option.conf)
    cf = dict(rekening_notes=[])
    for key, val in conf.items('main'):
        if key == 'persen_denda':
            val = float(val)
        elif key.find('rekening_') == 0:
            val = val.split()
        cf[key] = val
    module_name = cf['module']
    module = __import__('opensipkd.pad.services.' + module_name)
    db_url = cf['db_url']
    engine = create_engine(db_url)
    session_factory = sessionmaker(bind=engine)
    dbs = module.pad.services.base.DBSession = session_factory()
    register(dbs)
    services = getattr(module.pad.services, module_name)
    return cf, services