def before_request():
    g.config = parse_config('config.ini', 'config_local.ini')
    g.db = DB(g.config['db']['conn_url'])

    # Template settings.
    app.jinja_env.lstrip_blocks = True
    app.jinja_env.trim_blocks = True

    # Filters.
    app.jinja_env.filters['age'] = format_age
    app.jinja_env.filters['date'] = format_date
    app.jinja_env.filters['id'] = format_id
    app.jinja_env.filters['runtime'] = format_runtime
    app.jinja_env.filters['nl2br'] = nl2br
 def setUp(self):
     # To use a SQLite :memory: database, we have to specify an empty URL.
     self.db = DB('sqlite://')
try:
    # Config.
    config = parse_config('config.ini', 'config_local.ini')

    # Logging.
    setup_logging(config, os.path.basename(__file__))
    logging.info('script started (`' + ' '.join(sys.argv) + '`)')

    # Quality of Service.
    qos_enabled = config.getboolean('qos', 'enabled')
    qos_max_tries = int(config['qos']['max_tries'])
    qos_wait_time = int(config['qos']['wait_time'])

    # Database.
    db = DB(config['db']['conn_url'])
    if qos_enabled:
        db = WithQoS(db, qos_max_tries, qos_wait_time)

    # Arguments.
    args = parse_args()

    # Command runner.
    cmd_runner = CmdRunner()

    # Repository.
    retdec_repo_dir = config['daemon']['retdec_repo_dir']
    if not retdec_repo_dir:
        raise ValueError("'retdec_repo_dir' in [daemon] is not set")
    elif retdec_repo_dir == config['runner']['retdec_repo_dir']:
        raise ValueError('runner and daemon cannot share the same repository')